ReleaseProcess: Difference between revisions

From GNU Radio
Jump to navigation Jump to search
(Created page with "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 ==...")
 
Line 65: Line 65:
* Github creates a tar.gz and a zip
* Github creates a tar.gz and a zip
* Download these files immediately
* Download these files immediately
* For 3.8, create a variant with a -with-volk suffix
** Check out volk using <code>git submodule update --init</code>
** Create tar.gz and zip files


=== Sign tag ===
=== Sign tag ===

Revision as of 10:55, 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

Sign tag

TBD

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.

Email

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