Recently, I had to contribute to the project, namely a node module, that belongs to the other team. I did what I wanted, asked my peer to review, and then he merged. I asked, "Can you, please, release it? Or how shall I do this?". His answer was, "You don't need to, it will be released automatically".
The gist is, that their project setup is done in a way, that each merge to the main trunk (
main branch in their case) might be released through the CI step. Ok, this is not new. Everyone releases using CI. But in their case, they use the semantic release tool. This tool analyses commits, understands which release is it going to be (major, minor, patch), updates the
CHANGELOG.md based on the commit messages and then does two things — releases the module and pushes back changes to the repository.I need to say that I liked what I saw. Before this point, I was rejecting the idea that
CI has the right to write into my repositories. Now I might change my mind. Yes,
CI can break your repo or git history, but so can I or my colleagues. But if CI does release, this may remove another portion of the cognitive load from the developer and also force the team to write clear commit messages in the unified format.⬛️ Perhaps it's time to let CI write into your projects. Let's run the questionary, maybe most of you are already doing that.