Skip to content

Release v2022 12 14

Jonathan Knowles edited this page Dec 15, 2022 · 8 revisions
  • Make a copy of this Release Checklist Template document as a new page on cardano-wallet's wiki called Release vYYYY-MM-DD. Follow all the next steps using that newly created document as a "status tracker".

Check additional automated tests

Prepare the release

  • Make sure cardano-wallet points to correct revisions of dependent low-level libs in cabal.project. Use cardano-node as guidance.

    • Verify that target repositories point to appopriate revisions for persistent, cardano-addresses, bech32, ...)

    • If you have updated cabala.project, execute not updated

    ./nix/regenerate.sh --cache=/dev/null
    # This will fetch and update the sha256 hashes.
    
  • Fetch the tip of master:

    $ git checkout master
    $ git pull
  • Create a new branch for the release:

    $ git checkout -b your-name/bump-release/YYYY-MM-DD
  • From the root of the repository, run:

    $ ./scripts/make_release.sh

    This will bump the version in .cabal and .nix files, and the swagger spec files, and generate release notes.

    💡 Note: If you get GitHub API rate limit errors, you can set the GITHUB_API_TOKEN environment variable. To create a personal access token, go to your Github Settings. No scope is required for this token, only public access (as it is simply used to read publicly available data from the Github API).

  • Verify that the script modified the compatibility matrix in README.md correctly.

  • Open a pull request to submit the modified files

  • Get it merged

  • Trigger a release build on CI (GitHub Actions) and wait for the build artifacts to be published on the GitHub release page.

    $ git checkout master
    $ git pull
    $ git tag --sign -m "vYYYY-MM-DD" vYYYY-MM-DD
    $ git push origin vYYYY-MM-DD

    Where YYYY-MM-DD should be replaced by the actual date of the release.

Create the release notes

Verify release artifacts

  • Verify that the documentations have been correctly exported on gh-pages

    • Make a commit with redirects to the documentation for the release like this one.
     git checkout gh-pages
     git pull origin gh-pages
     cd releases
     ./make_redirects.sh vYYYY-MM-DD
     ## push changes to gh-pages after
    
  • Make sure the Command-Line Interface manual is up to date.

Manual ad-hoc verifications

  • Execute all manual scenarios on the binaries to be released.

  • Verify that sensitive fields listed in Cardano/Wallet/Api/Server are still accurate and aren't missing any new ones.

    sensitive =
        [ "passphrase"
        , "old_passphrase"
        , "new_passphrase"
        , "mnemonic_sentence"
        , "mnemonic_second_factor"
        ]
    

Publication

  • Once everyone has signed off (i.e. Tech lead, QA & Release manager), publish the release draft.

  • Add the release to the automated migration tests (keep only the last 10 versions). See the header of the file as to how to generate the SHA256 hashes.

  • If there are any changes to the release checklist update the Release Checklist template.

Clone this wiki locally