https://github.com/aeon-php/automation
I made this tool to reduce manual work with keeping up to date, unified changelog files across all projects I’m working on. I wanted to follow the https://keepachangelog.com/ convention but also to detect https://www.conventionalcommits.org/
It’s still in the early phase, I’m looking for feedback, can you think about something that this tool could automate in your release process?
I would have to become a lot more mature in how I log my commits 😀
That’s something I can’t expect from people who decided to contribute into my open source projects. That’s is also a reason why Automation looks for changes description not only in commits but also in pull requests description/title.
Good luck maintaining this. I’m sure it will be useful for your team.
To me the whole point of keepachangelog.com is to not do what you’re trying to do.
No matter how beautifully automated it could be.
Because you will always want to write more human readable description of the changes for the marketing team for instance.
A good example of this is when we call an entity ‘X’ on the backend, but ‘Y’ on the frontend.
Among the dev team, all of commit messages will talk about X.
But the CHANGELOG should really use ‘Y’ for the product team and explain very tricky changes happening on the backend into something very user friendly (and short).
It’s a bit the difference between a tech changelog and a product changelog.
The first one will have 30 lines of ‘updated algorithm X’, the second will have a single line ‘This feature Z will now allow user to do this magic’.
And nobody ever care about the tech changelog. The product changelog however is a good internal communication tool. It’s also good to go back in time and see in a single line which migration or feature change might have caused this nasty bug we just found in production.
Very interesting point of view, might I ask what makes you think that I’m focused on marketing/business changelogs? It is actually not my intention so I wonder what I can I change in the project description to makes it clear that the main focus is on technical changelogs?
I’m maintaining (mostly alone) multiple small open source libraries, and this is the place where I want to use Automation mostly. I prefer to follow keep a changelog format and I wanted to simplify the process as much as possible by creating unified pull request template from which this tool will take changes and their types. This way if contributor would not find time/patience to properly describe the changes I can always override pull request description or detect changes from commits.
This tool can generate technical changelogs similar to those you can find in most popular open source libraries/frameworks, not necessarily in keep a changelog format which is simply a theme.
We introduced https://github.com/semantic-release/semantic-release last year to our projects. Works pretty well.
Looks interesting, do you have to run the full set of tools/process or can I cherry pick and only run select tools/processes? example: I only want to run the tools to generate/update the change log and notify users