ReleaseProcess: Difference between revisions
m (→Release) |
m (→Sign tag) |
||
Line 70: | Line 70: | ||
=== Sign tag === | === Sign tag === | ||
Tagging is done against a git clone of <code>git@github.com:gnuradio/gnuradio.git</code>. Recommend keeping this in a separate directory, to avoid inadvertent pushes directly to the gnuradio repo. | |||
git checkout <branch_name> | |||
git tag -u info@gnuradio.org <tag_name> -m '<tag_name>' | |||
git tag -v <tag_name> | |||
git push origin <tag_name> | |||
This will use the latest signing key associated with info@gnuradio.org. | |||
== Software signing == | == Software signing == |
Revision as of 11:09, 3 June 2021
This page is a work in progress.
Manual Release Process Notes
Documenting the steps taken todo a release manually, in hopes that it can be automated.
Backporting
Criteria
Cross-referencing
Change freeze
Announce
Slow down changes
RC plan
Around one week unless problems are found.
Changelog
Maintain
Sync/deconflict with other branches
Author credits
Testing
CI
Manual
Version change for release
Changelog
Date and version
Release commit
- Change CMakeLists.txt to MAJOR.API.ABI.PATCH. If a release candidate, PATCH `-rc0`format to help with sort order. For final version, PATCH is `0`
- Create PR with this change, title formatted like "Release v3.8.3.0-rc1"
- Merge release PR
- Sync local checkout for later comparison step
Version change for continuation
Skip if this is a RC version. The branch will stay linear until the final version is released.
CMakeLists.txt
Change CMakeLists.txt to MAJOR.API.ABI.git
Changelog
Unreleased version number?
Github release
Release
- In Github, go to code, branch, and then release list (or tags, then hit releases)
- Draft a new release
- Select branch and enter release version from commit as a tag
- Title same as commit: "Release v..."
- Publish
- Github creates a tar.gz and a zip
- Download these files immediately
- For 3.8, create a variant with a -with-volk suffix
- Check out volk using
git submodule update --init
- Create tar.gz and zip files
- Check out volk using
Sign tag
Tagging is done against a git clone of git@github.com:gnuradio/gnuradio.git
. Recommend keeping this in a separate directory, to avoid inadvertent pushes directly to the gnuradio repo.
git checkout <branch_name> git tag -u info@gnuradio.org <tag_name> -m '<tag_name>' git tag -v <tag_name> git push origin <tag_name>
This will use the latest signing key associated with info@gnuradio.org.
Software signing
Verify or create valid signing key
Download tarball and zip
If not done in release step
Verify tarballs
- Unpack each archive
- Diff against existing git checkout to verify, e.g., with meld. Expect minor differences due to git ignored files (e.g., `__pycache__`, `.vscode`)
- Keep the tar and zip files locally for a little while in case something comes up
Sign tarballs
- Create detacted signatures: `gpg --detach-sign --armor -u info@gnuradio.org filename`
- Verify signatures: `gpg --verify filename.asc`
- Keep the signatures locally for a little while in case something comes up
Upload signatures and public key
- On Github release page, edit release
- Click "attach binaries" or drag/drop files
- ...tar.gz.asc
- ...zip.asc
- gnuradio-software-signing-key.asc
- Note that the signing key should also be somewhere else where people can verify it
Notification
Github
Takes care of itself.
Point to releases page, changelog page, ask for problem reports via email or issue tracker.
Wiki
TBD
Web site
TBD
Distros and other packagers
TBD