Although most things are automated there are a couple of manual steps. I thought I would write those down, so others can also create a release.
- Pre-release, go over any pending patches or recently updated bugs making sure there isn't anything urgent (or note those as known issues in the release notes). https://patchwork.sourceware.org/project/elfutils/list/ https://sourceware.org/bugzilla/buglist.cgi?bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=SUSPENDED&bug_status=WAITING&bug_status=REOPENED&&order=Last%20Changed&product=elfutils&query_format=advanced - Make sure the buildbot CI is all green https://builder.sourceware.org/buildbot/#/builders?tags=elfutils Also check the build-only builders (currently only sparc) https://builder.sourceware.org/buildbot/#/builders?tags=elfutils-build And the snapshots (currently only coverage) https://builder.sourceware.org/buildbot/#/builders?tags=elfutils-snapshots The actual latest coverage results can be found at: https://snapshots.sourceware.org/elfutils/coverage/latest/ You can compare with the coverage of the last release: https://sourceware.org/elfutils/coverage/ - Create the last "prepare" commit. - Edit NEWS to include any noteworthy new items come up with a "release name" - Update version in configure.ac Check/update AC_COPYRIGHT year. Check/update lib/printversion.c year. - Update po files and config/elfutils.spec.in by running: autoreconf -f -v -i && \ ./configure --enable-maintainer-mode && \ make distcheck -j12 after making the above updates. (This will also check that a dist can be created and a build and check can be done from that). - Double check the config/elfutils.spec.in changelog entry (often needs to be hand edited to adjust whitespace) - commit the NEWS, configure.ac, regenerated po and config/elfutils.spec.in - push - Good to wait for buildbots to do one last check. - tag and sign the last commit: git tag --sign elfutils-0.1xx -m "elfutils 0.1xx release" - git push --tags (Note that this might also push annotated tags you might have imported from other remotes, so check with git push --tags -n first) - Create and upload the release. Requires having sourceware scp access. - config/upload-release.sh 0.1xx This will do a new checkout using the given tag, verifies the tag signature, does a make dist, signs the dist tar ball and uploads dist and sig files. - Update the latest coverage in the website. checkout elfutils-htdocs.git ./update-coverage.sh 0.1xx This does a fresh checkout and runs make coverage Generating a new diff to commit. Check with git show then git push. - Sent out a "elfutils 0.1xx released" announcement to elfutils-devel@sourceware.org (preferably pgp signed) include URLs to download the NEWS section git shortlog elfutils-0.1xx-1.. | sed -e 's/ //' - Add release (notes) to website. Find release announcement permalink on https://inbox.sourceware.org/elfutils-devel/ in elfutils-htdocs add it under "release notes" in index.html git commit -a -m "Add 0.1xx release notes" && git push - Update the #elfutils irc.libera.chat channel topic revealing the new version and "code name".