Changelog

An extensive changelog is available here.

Only user-visible changes are documented there.

Changelog Generation

The changelog is automatically generated from the files in the changelog folder at release time. Direct editing of the changelog file is discouraged as it often creates merge conflicts (pretty much every PR would modify this file and this used to be quite the annoyance in the past). One can create new changelog entries like this:

$ bundle exec rake changelog:new
$ bundle exec rake changelog:fix
$ bundle exec rake changelog:change

Those commands correspond to "new feature", "bug-fix" and "changed" entries in the changelog. To update the changelog file you can run:

$ bundle exec rake changelog:merge
Typically only the RuboCop maintainers would need to do this.

Background

Our CHANGELOG.md file was previously updated manually by each contributor that felt their change warranted an entry. When two merge requests added their own entries at the same spot in the list, it created a merge conflict in one as soon as the other was merged. When we had dozens of merge requests fighting for the same changelog entry location, this quickly became a major source of merge conflicts and delays in development.

Eventually we adopted GitLab’s solution to this common problem, that they discussed here.

Release Notes

You can also peruse the release notes for individual release over at GitHub.