Skip to content

Release v2023‐12‐18

paolino edited this page Dec 21, 2023 · 1 revision

Prepare the release process

Prepare the release

  • Setup your variables in the shell

    export NEW_GIT_COMMIT="4f86f5d962e1e1d669b1de3ea39f191ace8868f1"
    
    export NEW_GIT_TAG="v2023-12-18"
    export NEW_CABAL_VERSION="2023.12.7"
    
    export OLD_CABAL_VERSION="2023.7.18"
    export OLD_GIT_TAG="v2023-07-18"
    
    export CARDANO_NODE_TAG="8.1.2"
    
  • Fetch the selected commit:

    Go to a clean directory and run:

    git clone https://github.com/cardano-foundation/cardano-wallet.git
    cd cardano-wallet
    git checkout $NEW_GIT_COMMIT
  • Create a new branch for the release:

    git checkout -b release-candidate/$NEW_GIT_TAG
  • update swagger.yaml with

    sed -i "s|version: .*|version: $NEW_GIT_TAG|" specifications/api/swagger.yaml
    git commit -m "Update wallet version in swagger.yaml" specifications/api/swagger.yaml
  • update cardano-wallet version number in *.cabal files

    git ls-files  '*.cabal' | xargs sed -i "s/$OLD_CABAL_VERSION/$NEW_CABAL_VERSION/"
    git commit -m "Update cardano-wallet version in *.cabal files" $(git ls-files  '*.cabal')
  • update cardano-wallet version number in docker-compose.yml

    sed -i "s/cardano-wallet:$OLD_CABAL_VERSION/cardano-wallet:$NEW_CABAL_VERSION/" docker-compose.yml
    git commit -m "Update cardano-wallet version in docker-compose.yml" docker-compose.yml
  • update the latest releases table inside the README.md

    # update the latest releases table inside the README.md by hand
    git commit -m "Prepend new record to the releases table" README.md
  • check the old version number is not mentioned somewhere new

    git grep $OLD_CABAL_VERSION
  • Push the release-candidate branch

    git push origin HEAD
  • Take note of the pushed commit as this is the rc-latest tag (6130be741a412e503fa1b83432d11a049a03a3bc)[https://github.com/cardano-foundation/cardano-wallet/commit/6130be741a412e503fa1b83432d11a049a03a3bc]

    export RELEASE_GIT_COMMIT="6130be741a412e503fa1b83432d11a049a03a3bc"
  • Make sure the release-candidate cardano-wallet is green (link)[https://buildkite.com/cardano-foundation/cardano-wallet/builds/2533]

  • Make sure the rc-latest is green, take note of build 2542 as the artifacts source (link)[https://buildkite.com/cardano-foundation/cardano-wallet/builds/2542]

  • Make sure the docker image for rc-latest was pushed link

  • Run Linux E2E tests on rc-latest artifacts (look for the 2542 build) link

  • Run Windows E2E tests on rc-latest artifacts (look for the 2542 build) link

  • Run MacOS E2E tests on rc-latest artifacts (look for the 2542 build) link

  • Run Docker E2E tests on the rc-latest and node 8.1.2 (look for rc-latest in the start wallet) link

  • Run Windows unit tests on rc-latest artifacts (look for the 2542 build) link

  • Run benchmarks on rc-release commit link

  • Run docker-compose for Linux on rc-latest image link

  • Get the release-candidate branch merged to master

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

    git tag --sign -m $NEW_GIT_TAG $NEW_GIT_TAG $RELEASE_GIT_COMMIT
    git push origin $NEW_GIT_TAG

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
 git push origin gh-pages

Manual ad-hoc verifications

Publication

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

  • Remember to leave this checklist in an up-to-date status for the next releaser