mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
3.9 KiB
3.9 KiB
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.orgcreated and uploaded - Readthedocs account, access to the Solidity project
- Write access to https://github.com/ethereum/homebrew-ethereum
Blog Post
- Create a post on https://github.com/ethereum/solidity-blog and explain some of the new features or concepts.
Changelog
- Sort the changelog entries alphabetically and correct any errors you notice.
- Create a commit on a new branch that updates the
Changelogto include a release date. - Run
./scripts/tests.shto update the bug list. - Create a pull request and wait for the tests, merge it.
Create the Release
- Create Github release page: https://github.com/ethereum/solidity/releases/new
- On the release page, select the
releasebranch as new target and set tag to the new version (e.g.v0.5.4) (make sure you onlySAVE DRAFTinstead ofPUBLISH RELEASEbefore the actual release) - Thank voluntary contributors in the Github release page (use
git shortlog -s -n -e origin/release..origin/develop). - Create a pull request from
developtorelease, wait for the tests, then merge it. - Make a final check that there are no platform-dependency issues in the
solidity-test-bytecoderepository. - Wait for the tests for the commit on
release, create a release in Github, creating the tag (click thePUBLISH RELEASEbutton on the release page.) - Wait for the CI runs on the tag itself (travis and appveyor should push artifacts onto the Github release page).
- Run
scripts/create_source_tarball.shwhile being on the tag to create the source tarball. Make sure to createprerelease.txtbefore: (echo -n > prerelease.txt). This will create the tarball in a directory calledupload. - Take the tarball from the upload directory (its name should be
solidity_x.x.x.tar.gz, otherwiseprerelease.txtwas missing in the step before) and upload the source tarball to the release page.
PPA
- Change
scripts/release_ppa.shto match your key's email and key id. - Run
scripts/release_ppa.sh releaseto create the PPA release (you need the relevant openssl key). - Wait for the
~ethereum/ubuntu/ethereum-staticPPA 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/ethereumPPA for the destination seriesTrustyandXenialwhile selectingCopy existing binaries. - Check that the Docker release was pushed to Docker Hub (this still seems to have problems, run
./scripts/docker_deploy_manual.sh v0.x.x).
Homebrew and MacOS
- Update the version and the hash (
sha256sum solidity_x.x.x.tar.gz) in https://github.com/ethereum/homebrew-ethereum/blob/master/solidity.rb - Take the binary from the
b_osxrun of the released commit in circle-ci and add it to the release page assolc-macos.
Documentation
- Build the new version on https://readthedocs.org/projects/solidity/ (select
lateston the bottom of the page and clickBUILD) - In the admin panel, select
Versionsin the menu and set the default version to the released one.
Release solc-js
- Increment the version number, create a pull request for that, merge it after tests succeeded.
- Run
npm publishin the updatedsolc-jsrepository. - Make sure to push the tag
npm publishcreated withgit push --tags.
Post-release
- Create a commit to increase the version number on
developinCMakeLists.txtand add a new skeleton changelog entry. - Merge
releaseback intodevelop. - Announce on Twitter and Reddit.
- Lean back, wait for bug reports and repeat from step 1 :)