-
Notifications
You must be signed in to change notification settings - Fork 325
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
create a more automated release process #1169
Comments
I'm generally pro-automation. Our releases at MNE-Python are even slower/more manual, so I'm interested in these ideas and am happy to field-test / guinea-pig them here. Also interested in whether @jarrodmillman and @choldgraf have other release automation practices they want to stump for? |
I'm definitely a fan of automation, though in my experience, enforcing things like "conventional commits" is hard to do in an open source community that doesn't have highly-aligned workflows, and can be a source of tension when people don't follow the process. It's also a barrier to contributions if people have to download and learn a new tool to make a commit. E.g., the GIF in the Where do you think is the biggest pain point of our technical release process right now? To summarize it from my perspective, these are the essentials:
In our process, we do also require adding a Either way I also suggest that we make our release guidelines be more based on "time" than "significance". E.g.:
|
small update on this very topic:
agreed |
FWIW, I'm happy to give something a shot and see if it makes people's lives easier! |
+1 to switch to calendar-based (not feature-based) releases. FWIW MNE-Python has a 4-month release cadence, matplotlib has 6-month cadence. IMO anything less than 3 is crazy unless releases are very automated. |
I played a bit with github actions triggers and I think I converged to a working workflow. I created a test repository here: https://github.com/12rambau/test_autogithubrelease to make a new release I do the following:
the only missing piece is the "back to dev" commit. according to this thread: commitizen-tools/commitizen#662 you still need to have at least 1 commit before bump the "dev". advantages:
what do you think ? |
At the moment the release process is not very automated and quite slow. looking at the release name I realize we always end up creating minor increments (0.11 -> 0.12 -> 0.13) and very few patches even though we put lots of efforts correcting bugs and unexpected behavior.
I want to know if it's desirable to use a more robust and automatic release process to speed up our release pace.
In the libs I maintain (sepal-ui, pygadm, qutree, opensartoolkit among others), I respect the conventional commits which makes it possible to use the commitizen-tools pre-commit hooks and ensure a very fast releasing process.
With this tools the process would be the following:
cz bump
. cz will detect the increment based on the commit types and update version value everywhere specified in the conf. finally it creates a tag.bonus: it can create an up to date changelog file at each bump.
if a commit is not using a conventional commit, it's simply ignored from increment detection and changelog.md
The text was updated successfully, but these errors were encountered: