|
1 | | -## Checklist for making a Solidity release |
| 1 | +# Checklist for making a Solidity release |
2 | 2 |
|
3 | | -### Requirements |
| 3 | +## Requirements |
4 | 4 | - [ ] GitHub account with access to [solidity](https://github.com/argotorg/solidity), [solc-js](https://github.com/argotorg/solc-js), |
5 | 5 | [solc-bin](https://github.com/argotorg/solc-bin), [solidity-website](https://github.com/argotorg/solidity-website). |
6 | 6 | - [ ] DockerHub account with push rights to the [`solc` image](https://hub.docker.com/r/ethereum/solc). |
|
12 | 12 | - [ ] Access to the [solidity_lang Twitter account](https://twitter.com/solidity_lang). |
13 | 13 | - [ ] [Reddit](https://www.reddit.com) account that is at least 10 days old with a minimum of 20 comment karma (`/r/ethereum` requirements). |
14 | 14 |
|
| 15 | +## Full release |
| 16 | + |
15 | 17 | ### Pre-flight checks |
16 | 18 | At least a day before the release: |
17 | 19 | - [ ] Run `make linkcheck` from within `docs/` and fix any broken links it finds. |
@@ -121,3 +123,32 @@ At least a day before the release: |
121 | 123 | - [ ] If anything went wrong this time, mention it in [Learning from Past Releases](https://notes.argot.org/@solidity-release-mistakes). |
122 | 124 | - [ ] Bump vendored dependencies. |
123 | 125 | - [ ] Lean back, wait for bug reports and repeat from step 1 :). |
| 126 | + |
| 127 | +## Prerelease |
| 128 | +- [ ] Check that all tests on the latest commit on `develop` or `breaking` branch (whichever was chosen for the prerelease) are green. |
| 129 | +- [ ] Create a [release on GitHub](https://github.com/argotorg/solidity/releases/new). |
| 130 | + - Set the target to the `develop` or `breaking` branch and the tag to the new version with a prerelease suffix, e.g. `v0.8.5-pre.6`. |
| 131 | + Version matches the next release (`develop`) or the next breaking release (`breaking`). |
| 132 | + The prerelease number in the suffix is 1-based, sequential, resets after a full release and is counted separately for `develop` and `breaking`. |
| 133 | + - Include the following warning: `**The release is still in progress. You may see broken links and binaries may not yet be available from all sources.**`. |
| 134 | + - Include the current, incomplete changelog. |
| 135 | + - Check the `Set as a pre-release` box. |
| 136 | + - Click the `Publish release` button on the release page, creating the tag. |
| 137 | +- [ ] Wait for the CI runs on the tag itself. |
| 138 | +- [ ] Switch to the tag that archives have to be created for. |
| 139 | +- [ ] Create the `prerelease.txt` file: `scripts/prerelease_suffix.sh pre "$(git describe --tags --exact-match)" > prerelease.txt`. |
| 140 | +- [ ] Run `scripts/create_source_tarball.sh` to create the source tarball. This will create the tarball in a directory called `upload`. |
| 141 | +- [ ] Take the tarball from the upload directory (its name should be `solidity_x.x.x-pre.N.tar.gz`, if `prerelease.txt` was created correctly) and upload it to the release page. |
| 142 | +- [ ] Take the `github-binaries.tar` tarball from `c_release_binaries` run of the tagged commit on Circle CI and add all binaries from it to the release page. |
| 143 | + Make sure it contains four binaries: `solc-windows.exe`, `solc-macos`, `solc-static-linux` and `soljson.js`. |
| 144 | +- [ ] Take the `solc-bin-binaries.tar` tarball from `c_release_binaries` run of the tagged commit on Circle CI and add all binaries from it to solc-bin. |
| 145 | +- [ ] Run `npm install` if you've got a clean checkout of the solc-bin repo. |
| 146 | +- [ ] Run `npm 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/`. |
| 147 | +- [ ] Create a pull request in solc-bin and merge. |
| 148 | +- [ ] Remove "still in progress" warning from the [release notes](https://github.com/argotorg/solidity/releases). |
| 149 | +- [ ] Mention it on [Twitter](https://twitter.com/solidity_lang). |
| 150 | +- [ ] Mention it on [Fosstodon](https://fosstodon.org/@solidity/). |
| 151 | +- [ ] Mention it on [`#solidity` channel on Matrix](https://matrix.to/#/#ethereum_solidity:gitter.im). |
| 152 | +- [ ] Mention it on [`#solc-tooling`](https://matrix.to/#/#solc-tooling:matrix.org). |
| 153 | +- [ ] If anything went wrong this time, mention it in [Learning from Past Releases](https://notes.argot.org/@solidity-release-mistakes). |
| 154 | +- [ ] Lean back, wait for bug reports and repeat from step 1 :). |
0 commit comments