Release Checklist
-
Make a copy of this
Release Checklist Template
document as a new page on cardano-wallet's wiki calledRelease vYYYY-MM-DD
. Follow all the next steps using that newly created document as a "status tracker".
Check additional automated tests
- Verify that the latest E2E tests are fine (See "E2E *" workflows on https://github.com/cardano-foundation/cardano-wallet/actions).
- Verify latest buildkite nightly and make sure the results are fine. Benchmark charts may be helpful in analysis.
Prepare the release
-
Make sure
cardano-wallet
points to correct revisions of dependent low-level libs incabal.project
. Usecardano-node
as guidance.-
Verify that target repositories point to appopriate revisions for
persistent
,cardano-addresses
,bech32
, ...) -
If you have updated
cabala.project
, execute
./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.
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
- Write release notes in the release page based on Next 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.
-
If there are any changes to the release checklist update this document.