- [x] 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 - [x] Verify that the latest E2E tests are fine (See "E2E \*" workflows on https://github.com/cardano-foundation/cardano-wallet/actions). - [x] Verify latest [buildkite nightly](https://buildkite.com/cardano-foundation/cardano-wallet-nightly) and make sure the results are fine. [Benchmark charts](http://ec2-44-197-192-237.compute-1.amazonaws.com:5555) may be helpful in analysis. - [ ] ~Verify that recent Hydra builds on macOS pass tests. This is to rule out the unlikely event that a cardano-wallet contains a bug that is specific to the macOS (UNIX) platform and not already caught by the Linux tests. ([Link to all Hydra jobs](https://hydra.iohk.io/jobset/Cardano/cardano-wallet#tabs-jobs))~ ## Prepare the release - [x] Make sure `cardano-wallet` points to correct revisions of dependent low-level libs in [`cabal.project`](https://github.com/cardano-foundation/cardano-wallet/blob/master/cabal.project). Use `cardano-node` as guidance. - [x] Verify that target repositories point to appopriate revisions for `persistent`, `cardano-addresses`, `bech32`, ...) - [x] ~If you have updated `cabal.project`, execute~ not updated ``` ./nix/regenerate.sh --cache=/dev/null # This will fetch and update the sha256 hashes. ``` - [x] Fetch the tip of `master`: ```shell $ git checkout master $ git pull ``` - [x] Create a new branch for the release: ```shell $ git checkout -b your-name/bump-release/YYYY-MM-DD ``` - [x] From the **root** of the repository, run: ```shell $ ./scripts/make_release.sh ``` This will bump the version in `.cabal` and `.nix` files, and the swagger spec files, and generate release notes. > :bulb: 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](https://github.com/settings/tokens). > No scope is required for this token, only public access (as it > is simply used to read publicly available data from the Github > API). - [x] Verify that the script modified the compatibility matrix in README.md correctly. - [x] Open a pull request to submit the modified files - [x] Get it merged - [x] Trigger a release build on CI (GitHub Actions) and wait for the build artifacts to be published on the GitHub release page. ```shell $ 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 - [x] Write release notes in the [release page](https://github.com/cardano-foundation/cardano-wallet/releases) based on [Next Release Notes](https://docs.google.com/document/d/1bdYNI44dc0Waunf1GIIuSJ2UuP02Tv0f6ESUNPAe5AM/edit?usp=sharing) ## Verify release artifacts - [x] Verify that the documentations have been correctly exported on [gh-pages](https://github.com/cardano-foundation/cardano-wallet/tree/gh-pages) - [x] Make a commit with redirects to the documentation for the release like [this one](https://github.com/cardano-foundation/cardano-wallet/commit/3abd8d3fe86bcf279d91d5745b7360892fad1cd4). ``` git checkout gh-pages git pull origin gh-pages cd releases ./make_redirects.sh vYYYY-MM-DD ## push changes to gh-pages after ``` - [x] Make sure the [Command-Line Interface](https://github.com/cardano-foundation/cardano-wallet/wiki/Wallet-command-line-interface) manual is up to date. ## Manual ad-hoc verifications - [x] Execute all [manual scenarios](https://github.com/cardano-foundation/cardano-wallet/tree/master/test/manual) on the binaries to be released. https://docs.google.com/spreadsheets/d/1fCCI9TcbS2_pTjGJfw2umMFczhYDjLux5rz-65UkEUw/edit#gid=415901212 - [x] Verify that sensitive fields listed in [Cardano/Wallet/Api/Server](https://github.com/cardano-foundation/cardano-wallet/blob/master/lib/wallet/api/http/Cardano/Wallet/Api/Http/Shelley/Server.hs#L695) 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](https://github.com/cardano-foundation/cardano-wallet/blob/9c869dbdca8d601b5ddd4edfe865b186c64f87e8/nix/migration-tests.nix#L44-L61) (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](https://github.com/cardano-foundation/cardano-wallet/wiki/Release-Checklist).