-
Notifications
You must be signed in to change notification settings - Fork 52
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
Release workflow #70
Release workflow #70
Conversation
using: - Python package bump2version (active fork of bumpversion) - Github actions - and shell magic This commit also removes now redundant release-check.yml workflow.
- Use --follow-tags option in all push commands. It combines the former git push && git push --tags into one single push commands. - Improve retag.sh: - Remote name has to be passed always ($2): Makes sure tags are deleted and recreated on the correct end. - Optional push options moved to $3 - release.txt: Fix howto according to changes.
Seemed to work fine for me. |
- bump.sh: Sanity check bump2version package installed. - Rename release.sh to pypi.sh to clarify what it does. - Move release.txt content into script release_workflow.sh and elaborate workflow. No auto-execution of steps/other scripts, just a checklist. - Rename release.txt to release_troubleshooting.txt - it now only keeps retag.sh/troubleshooting notes.
Hi, please review my changes in the latest commit. I added a guidance script named release_workflow.sh. In the end I decided that it shouldn't execute anything by itself. Error handling would have been a lot of work to do and IMHO not easily possible at all. It just spits out what the "releasing person" has to do as a checklist. Error handling should be done by a human if you want it that way ;-) I didn't test the steps through again but wrote it by heart. Hope I didn't forget anything. Please play it through again! There might be things that could be explained better. Tell me! |
Sorry, forgot about this. I tested the process again and added some comments in review. |
This implements a semi-automatic release workflkow.
It should help us to:
I wrote the original versions of these scripts for https://github.com/JOJ0/synadm and have been using them for quite some time now already. We basically can assume they are tried and tested. I added some better documentation/commenting and also improved tiny things in their code here and there. So a little testing needs to be done here again. I did test everything as good as I can but please I need you @AnssiAhola and @alifhughes to do the following:
Something like this:
So the next time we would put out a real release (will be 2.3.13), the one who is doing it would do:
So you see that we don't even have to type the version number ourselves, bump2version does that for us. Alternatively if we want to increase the middle number (.3.) we would do:
./bump.sh minor doit
and get a new version v2.4.0.Also nice: If, for some reason, a release named v2.3.13 is already existing on joalla/discogs_client, it would not be created a double but connected to the new tag v2.3.13 we are pushing!
release.sh
is safe to try out as well, it builds a wheel and just uploads to Test-PyPI. The upload to Production PyPI is only suggested by printing the command that needs to be executed to do it.