A changelog (also spelled change log[1]) is a log or record of all notable changes made to a project. The project is often a website or software project, and the changelog usually includes records of changes such as bug fixes, new features, etc. Some open-source projects include a changelog as one of the top-level files in their distribution.
A changelog has historically included all changes made to a project. The "Keep a Changelog" site instead advocates that a changelog not include all changes, but that it should instead contain "a curated, chronologically ordered list of notable changes for each version of a project" and should not be a "dump" of a git log "because this helps nobody".[2]
Although the GNU (Automake) canonical naming convention for the file is ChangeLog,[3] it is sometimes alternatively named as CHANGES or HISTORY (NEWS is usually a different file reflecting changes between releases, not between the commits). Another convention is to call it a CHANGELOG.[2] Some project maintainers will append a .txt suffix to the file name if the changelog is plain text, a .md suffix if it is in Markdown, or a .rst suffix if it is in reStructuredText.
Some revision control systems are able to generate the relevant information for a changelog, if the goal is to include all changes.[4]