conda / infrastructure

A repo to report issues and have discussions about the conda infrastructure
BSD 3-Clause "New" or "Revised" License
12 stars 15 forks source link

Alternatives to rever for releases #556

Open kenodegard opened 2 years ago

kenodegard commented 2 years ago

Description

We previously documented our process for releasing conda and conda-build with rever (see #541). Both repos have been configured to work the same way (both expect Markdown news files).

Tasks

kenodegard commented 2 years ago

Alternative tools

Tool News Snippets Format Git Mailmap Release PR
rever RST
towncrier Agnostic
proclamation Agnostic
release-please MD
changine MD
nextrelease MD
scriv Agnostic
blurb
setuptools-changelog
gitchangelog
Chronicler
fastrelease
release-drafter
reno

Thoughts

After researching and looking around, the solution I want to see would be most similar to Google's release-please. There will always be a continuously updated release PR outlining all of the unreleased commits, the updated mailmap, updated changelog derived from news snippets, etc. This process would work great for all regular and optional releases (YY.M.0) but we will need to offer a special process for hotfixes. Hotfixes could perhaps be a manual workflow where we specify the branch name (e.g. v22.7.X) triggering a hotfix release that increments the patch version?

borchero commented 8 months ago

release-drafter has been serving our team very well to organize releases in various projects. With appropriate GitHub Actions in place, it maintains a draft PR with appropriate version and the changelog of all changes since the last release and updates this draft PR after every merge to main. It also supports grouping changes by labels (which can automatically be derived from commit messages via release-drafter as well).

There are two major benefits to this process:

A publicly available implementation of this process can be found in this repo.