-
Notifications
You must be signed in to change notification settings - Fork 249
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
Document & improve release process #608
Comments
I'd done some work on translations in #559. |
Release PR created, and draft release prepared. I ended up writing the release message only on github, not in the NEWS file, but I did include the full changelist from NEWS in the release message. I noticed one inconsistency in the current release strategy: If you build from a git tag, the version will be set to e.g. |
We might want to consider creating annotated tags, rather than lightweight tags, for releases. These have some extra information (e.g. we could add the release notes in them), but also store a date and author, for a bit more traceability, and can optionally be gpg-signed (which is probably a good idea). Also, the Debian packaging tool I use (git-buildpackage) only considers annotated tags. |
We do already signed commits. AFAIK a "signed tag" implies that it is annotated, too. |
Do we? Not for this repo, I think?
Yes, but none of the tags are currently signed AFAICS? |
I thought we did. But I confused that with the GNOME extension repo I guess. Sorry. IIRC we have not made it a strict policy. @elbenfreund had originally suggested it in the "heap of gratitude" thread but then reverted because there'd been some resistance to the idea to have to sign every commit. I, too, would prefer to have to sign merges and tags (and perhaps the topmost commit of PRs) only. |
I had another look at the version number stuff, and (ignoring bumpversion) there are two places that currently list a version number:
This means that in both cases, the hardcoded version number is only used as a fallback - if running from a git checkout, it is never used, only when running from a tarball. So, I suggest we remove these version from git master altogether - when running a development version, the The only case where a hardcoded version makes sense is the release tarball. I also think that putting the version number in 1 place instead of 2 would be preferred, so maybe just a plain file called For the release tarballs, I can see two routes:
Option 1 is what has been done in the past (except the version was never removed, so was kept in git master until the next release). I'm not quite sure which of these options is better. I like option 2, because it eliminates noise, duplication and manual work. The only place in the workflow where a version is put is in the git tag (though in practice also in the changelog/NEWS file), and everything is generated from that. The downside is that the release tarball must be generated and is not identical to the git repo contents for the tag, which is inelegant (but also quite common for projects, I think). @DirkHoffmann @mwilck @GeraldJansen @rhertzog, Any opinions or suggestions? |
@matthijskooijman You have clearly analyzed this thoroughly. I suggest a VERSION file (for use as fallback only) always be included in the repo. It would normally contain "hamster-master" and for the short time of releasing it would contain the value of the release tag. However, I'm happy with whatever solution you land on. |
I'm currently working on the 3.0.2 release.
The full release process should be documented somewhere. For now, I'll use this issue to keep notes, this should probably move into the repo somewhere (CONTRIBUTING.md? Or a separate file? In a subdir to keep things clean? Or the wiki?).
I'm basing on #588 (comment) and https://github.com/projecthamster/hamster/projects/1#card-27399663.
Here's the steps I am going through:
.bumpversion.cfg
file in the repo. I tried bumpversion (and also bump2version a more up-to-date fork) which indeed behaved a bit surprising. It might be useful, but for now I just updated the version manually insrc/hamster/__init__.py
,wscript
and.bumpversion.cfg
(based on the bumpversion config and earlier bump commits).For the future, maybe we can put the version number just in one place somehow? Maybe even not put the version number in git (so always detect the git version when installing from git), and write the version number (based on the git tag) into the source tarball at release time (automated using a script, maybe even run from a github action).
I'm out of time for now, but I'll create a PR with the NEWS and version changes soon. Once that is reviewed and merged, a tag and release must be created, which probably be done at the same time through github.
The text was updated successfully, but these errors were encountered: