Skip to content

0.8.7 release checklist #11786

@hrkrshnn

Description

@hrkrshnn

Checklist for making a release:

Requirements

  • Lauchpad (Ubuntu One) account
  • gnupg key (has to be version 1, gpg2 won't work) for your-name@ethereum.org created and uploaded
  • Readthedocs account, access to the Solidity project
  • Write access to https://github.com/ethereum/homebrew-ethereum

Documentation check

  • Run make linkcheck from within docs/ and fix any broken links it finds. Ignore false positives caused by href anchors and dummy links not meant to work.

Blog Post

Changelog

  • Sort the changelog entries alphabetically and correct any errors you notice.
  • Create a commit on a new branch that updates the Changelog to include a release date.
  • Run ./scripts/tests.sh to update the bug list.
  • Create a pull request and wait for the tests, merge it. (Set the release date and updated bugs_by_version.json #11784)

Create the Release

Download Binaries

  • Take the solc.exe binary from the b_win_release run of the released commit in circle-ci and add it to the release page as solc-windows.exe.
  • Take the solc binary from the b_osx run of the released commit in circle-ci and add it to the release page as solc-macos.
  • Take the solc binary from the b_ubu_static run of the released commit in circle-ci and add it to the release page as solc-static-linux.
  • Take the soljson.js binary from the b_ems run of the released commit in circle-ci and add it to the release page as soljson.js.

Update solc-bin

  • Copy files to solc-bin:
    VERSION=0.8.4
    COMMIT="c7e474f2"
    SOLC_BIN="/home/me/solc-bin"
    chmod +x solc-static-linux solc-macos
    cp soljson.js $SOLC_BIN/bin/soljson-v$VERSION+commit.$COMMIT.js
    cp solc-static-linux $SOLC_BIN/linux-amd64/solc-linux-amd64-v$VERSION+commit.$COMMIT
    cp solc-macos $SOLC_BIN/macosx-amd64/solc-macosx-amd64-v$VERSION+commit.$COMMIT
    cp solc-windows.exe $SOLC_BIN/windows-amd64/solc-windows-amd64-v$VERSION+commit.$COMMIT.exe
  • Run ./update --reuse-hashes in solc-bin and verify that the script has updated list.js, list.txt and list.json files correctly and that symlinks to the new release have been added in solc-bin/wasm/ and solc-bin/emscripten-wasm32/.
  • Create a pull request and merge. (Solidity 0.8.7 solc-bin#96)

Homebrew and MacOS

Docker (@ekpyron)

  • Run ./scripts/docker_deploy_manual.sh v$VERSION).

PPA (@ekpyron)

  • Change scripts/release_ppa.sh to match your key's email and key id.
  • Run scripts/release_ppa.sh v$VERSION to create the PPA release (you need the relevant openssl key).
  • Wait for the ~ethereum/ubuntu/ethereum-static PPA build to be finished and published for all platforms. SERIOUSLY: DO NOT PROCEED EARLIER!!! After the static builds are published, copy the static package to the ~ethereum/ubuntu/ethereum PPA for the destination series Trusty, Xenial and Bionic while selecting Copy existing binaries.

Documentation (@franzihei)

  • Build the new version on https://readthedocs.org/projects/solidity/ (select latest at the bottom of the page and click BUILD).
  • In the admin panel, select Versions in the menu and set the default version to the released one.

Release solc-js (@hrkrshnn)

  • Wait until solc-bin was properly deployed. You can test this via remix - a test run through remix is advisable anyway.
  • Increment the version number, create a pull request for that, merge it after tests succeeded. (Set version to 0.8.7 solc-js#539)
  • Run npm publish in the updated solc-js repository.
  • Create a tag using git tag --annotate v$VERSION and push it with git push --tags.

Post-release

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions