nvim-cmp icon indicating copy to clipboard operation
nvim-cmp copied to clipboard

Releases and release automation

Open gegoune opened this issue 3 years ago • 0 comments

I would like to discuss acceptable approaches for automating releases.

If you want I can come up with PR for couple of GitHub action workflows automating creation of releases.

Release automation

One solution immediately coming to mind is release-please-action. Should we go with that action all new commits would have to follow conventional commit specification. It's very simple, powerful and widely adopted. There are actions like conventional-pr-title-action ensuring no wrongly titled PR make its way to main branch. Also git hooks can be used to enforce that.

way forward

The way it would work is that at some point you cut the release, whatever version you feel like nvim-cmp is at the moment, be it v0.1.0, v1.0.0 - up to you. From that point onwards conventional commits will serve as a way to build future versions and changelogs. Once please-release notices valid commits in main branch it will create release PR for you and nothing else will happen. You can continue pushing to main and release PR will get updated with new commits (changelog and version of new release).

  • if only fix type of commits appear after previous release release-please will bump patch version
  • if you include any feat commits then minor version will be bumped
  • if feat!, fix!, or BREAKING CHANGE in commit message, commits are present then minor version will be bumped and generated changelog will include big-fat section pointing to breaking commit

At this point you are free close/ignore any complaints about breaking changes on main as users would be expected to live with them or pin nvim-cmp to latest release.

Whenever you are happy with state of main you can simply just merge release-please PR and it will create new release for you.

I am very happy to help you out with that, can create PR if you want me to.

Have a good day!

gegoune avatar Apr 14 '22 13:04 gegoune