-
Notifications
You must be signed in to change notification settings - Fork 6.3k
Closed
Description
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
Documentation check
- Run
make linkcheckfrom withindocs/and fix any broken links it finds. Ignore false positives caused byhrefanchors and dummy links not meant to work.
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. (Set the release date and updated bugs_by_version.json #11784)
Create the Release
- Create Github release page: https://github.com/ethereum/solidity/releases/new (https://github.com/ethereum/solidity/releases/tag/untagged-bb8472b69f96d0c0f2d8)
- On the release page, select the
developbranch as new target and set tag to the new version (e.g.v0.8.5) (make sure you onlySAVE DRAFTinstead ofPUBLISH RELEASEbefore the actual release) - Thank voluntary contributors in the Github release page (use
git shortlog -s -n -e v0.5.3..origin/develop). - Check that all tests on the latest commit in
developare green. - Click the
PUBLISH RELEASEbutton on the release page, creating the tag. - Wait for the CI runs on the tag itself.
Download Binaries
- Take the
solc.exebinary from theb_win_releaserun of the released commit in circle-ci and add it to the release page assolc-windows.exe. - Take the
solcbinary from theb_osxrun of the released commit in circle-ci and add it to the release page assolc-macos. - Take the
solcbinary from theb_ubu_staticrun of the released commit in circle-ci and add it to the release page assolc-static-linux. - Take the
soljson.jsbinary from theb_emsrun of the released commit in circle-ci and add it to the release page assoljson.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-hashesinsolc-binand verify that the script has updatedlist.js,list.txtandlist.jsonfiles correctly and that symlinks to the new release have been added insolc-bin/wasm/andsolc-bin/emscripten-wasm32/. - Create a pull request and merge. (Solidity 0.8.7 solc-bin#96)
Homebrew and MacOS
- Update the version and the hash (
sha256sum solidity_$VERSION.tar.gz) in https://github.com/Homebrew/homebrew-core/blob/master/Formula/solidity.rb (Solidity 0.8.7 Homebrew/homebrew-core#83103) - Update the version and the hash (
sha256sum solidity_$VERSION.tar.gz) in https://github.com/ethereum/homebrew-ethereum/blob/master/solidity.rb (Update for solidity 0.8.7 ethereum/homebrew-ethereum#297)
Docker (@ekpyron)
- Run
./scripts/docker_deploy_manual.sh v$VERSION).
PPA (@ekpyron)
- Change
scripts/release_ppa.shto match your key's email and key id. - Run
scripts/release_ppa.sh v$VERSIONto 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 seriesTrusty,XenialandBionicwhile selectingCopy existing binaries.
Documentation (@franzihei)
- Build the new version on https://readthedocs.org/projects/solidity/ (select
latestat 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 (@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 publishin the updatedsolc-jsrepository. - Create a tag using
git tag --annotate v$VERSIONand push it withgit push --tags.
Post-release
- Publish the blog post. (https://blog.soliditylang.org/2021/08/11/solidity-0.8.7-release-announcement/)
- Create a commit to increase the version number on
developinCMakeLists.txtand add a new skeleton changelog entry. - Announce on Twitter, including links to the release and the blog post.
- Share announcement on Reddit and Solidity forum.
- Update the release information section on soliditylang.org.
- Lean back, wait for bug reports and repeat from step 1 :)
franzihei
Metadata
Metadata
Assignees
Labels
No labels