-
-
Notifications
You must be signed in to change notification settings - Fork 87
Description
Our current release process is entirely manual. It often involves a lot of time spent digging through git logs, manually writing and formatting the changelog, and remembering a sequence of git commands to tag and release a new version. This process can be time-consuming and creates friction that can discourage us from making frequent releases.
The Proposal
To make this easier and faster, We can use a helper script to automate the most repetitive parts of making a release. The goal wouldn't be to remove humans from the loop. A manual review is still essential, but to handle the tedious, error-prone tasks for us.
Proposed Core Functionality
@nemesifier and I put some thought into what a first version of this script could do. The main focus would be on perfecting the changelog generation. As discussed, it should be able to:
- Automatically scan git history since the last release tag.
- Understand our commit conventions, like [feature] etc.
- Handle breaking changes by looking for a ! (i.e., [change!]).
- Group commits into logical sections: Features, Changes (Backward incompatible changes, Other changes), Dependencies and Bugfixes.
- Be smart about dependencies, showing only the latest version of a package if it was updated multiple times.
- Allow to skip commits from the changelog by using a flag like [skip changelog] on commit description.