Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Alternatives to rever for releases #556

Open
2 tasks
kenodegard opened this issue Jun 1, 2022 · 2 comments
Open
2 tasks

Alternatives to rever for releases #556

kenodegard opened this issue Jun 1, 2022 · 2 comments
Labels
backlog issue has been triaged but has not been earmarked for any upcoming release source::anaconda created by members of Anaconda, Inc. type::task indicates a change that doesn't pertain to the code itself, e.g. updating CI/CQ, rebuilding package type::tech-debt identifies or resolves some technical debt

Comments

@kenodegard
Copy link
Contributor

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

  • Collect a list of alternative tools.
  • Identify the strengths and weaknesses of each alternative tool.
    • Pay special attention to how OS-agnostic the tools are.
    • The simpler the tool, [probably] the better.
@kenodegard kenodegard added type::tech-debt identifies or resolves some technical debt type::task indicates a change that doesn't pertain to the code itself, e.g. updating CI/CQ, rebuilding package source::anaconda created by members of Anaconda, Inc. labels Jun 1, 2022
@kenodegard kenodegard added the backlog issue has been triaged but has not been earmarked for any upcoming release label Jun 1, 2022
@kenodegard
Copy link
Contributor Author

kenodegard commented Jul 22, 2022

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?

@ForgottenProgramme ForgottenProgramme added in-progress issue is actively being worked on and removed in-progress issue is actively being worked on labels Dec 14, 2022
@beeankha beeankha removed their assignment Oct 25, 2023
@borchero
Copy link

borchero commented Feb 20, 2024

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:

  • The next release version can automatically be determined from labels (e.g. a breaking label in any commit to main bumps the major version), allowing everyone to release without thinking about the appropriate next version.
  • Prior to actually making a release, the changelog in the draft PR can be manually edited, adding summaries, highlights, ...

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backlog issue has been triaged but has not been earmarked for any upcoming release source::anaconda created by members of Anaconda, Inc. type::task indicates a change that doesn't pertain to the code itself, e.g. updating CI/CQ, rebuilding package type::tech-debt identifies or resolves some technical debt
Projects
Status: No status
Development

No branches or pull requests

4 participants