A changelog is a log or record of changes made to a project, such as a website or software project, usually including such records as bug fixes, new features, etc. Most open source projects include a changelog as one of the top level files in their distribution.
Although the canonical naming convention for the file is ChangeLog, it is sometimes alternatively named as CHANGES or HISTORY (NEWS is usually a different file reflecting changes between releases, not between the commits). Some project maintainers will append a .txt suffix to the file name.
Some revision control systems are able to generate the relevant information that is suited as a changelog.


Format

Changelog files are organized by paragraphs, which define a unique change within a function or file. Most changelog files follow the following format, note that there are 2 spaces between date and name and again between the name and the email address:

YYYY-MM-DD John Doe

* myfile.ext (myfunction): my changes made
additional changes

* myfile.ext (unrelated_change): my changes made
to myfile.ext but completely unrelated to the above

* anotherfile.ext (somefunction): more changes