Changelogs #
For any non-trivial code, it is worth maintaining a Changelog. This is valuable as it is a record of changes from the perspective of users (rather than git commit messages which are often only meaningful to the developers involved). A recommended format for Changelog files is given at Keep a changelog. All notable changes to a project should be documented in this file.
Semantic Versioning #
A related concept is semantic versioning. In most cases, semantic versioning is recommended. You should state explicitly whether or not you are using semantic versioning in both your project’s README and CHANGELOG files.