Skip to content

Release Checklist

Georgiy Komarov edited this page Feb 1, 2023 · 23 revisions
  1. Update the following files on a branch prerel-v3.2.1:

    Major Release

    1. Dockerfile
    2. Dockerfile.slim
    3. Syntax.ml

    Minor Release

    1. Syntax.ml
  2. Create a pull-request on GitHub and merge it into master.

  3. Create a release branch release-v3.2.1 from master and tag an alpha release v3.2.1-alpha.0.

  $git checkout master # Checkout master
  $git pull  # Get and merge the latest master from the repo
  $git checkout -b release-v3.2.1 master # Create a new release branch
  $git push origin release-v3.2.1 # Push the release branch to the repo
  $git tag v3.2.1-alpha.0
  $git push origin v3.2.1-alpha.0
    • Thoroughly test v3.2.1-alpha.0, including end-to-end testing with the blockchain.
    • Clear Travis-CI cache before these tests, to ensure that latest opam packages are fetched and our code is tested against that.
    • No new features are to be allowed into a release branch, hot-fixes only. To push a hot-fix to a release branch, create a PR against the release branch (not master). Test the PR with the same rigor as in (4) above.
    • If applicable, cherry-pick or merge each hot-fix to master.
    • Create more alpha releases if needed.
  1. Once the release branch is ready, create a new release on GitHub against the tip of the branch, tagging it as v3.2.1. Add release notes if applicable.

  2. Since GitHub does not pack git submodules, tarballs containing the dependencies need to be manually created and uploaded as (binary) assets. One way to create those tarballs would be to copy the Scilla root directory, checkout the tag to be released, execute

    • git clean -dfx; rm -rf _opam _build .git deps/libff/{build,install}
    • zip scilla-<tag>.zip -r scilla-<tag>
    • tar cfz scilla-<tag>.tar.gz scilla-<tag>