|
20 | 20 |
|
21 | 21 | ### Create the Release
|
22 | 22 | - [ ] Create Github release page: https://github.com/ethereum/solidity/releases/new
|
23 |
| - - [ ] On the release page, select the ``release`` branch as new target and set tag to the new version (e.g. `v0.5.4`) (make sure you only `SAVE DRAFT` instead of `PUBLISH RELEASE` before the actual release) |
24 |
| - - [ ] Thank voluntary contributors in the Github release page (use ``git shortlog -s -n -e origin/release..origin/develop``). |
25 |
| - - [ ] Create a pull request from ``develop`` to ``release``, wait for the tests, then merge it. |
| 23 | + - [ ] On the release page, select the ``develop`` branch as new target and set tag to the new version (e.g. `v0.5.4`) (make sure you only `SAVE DRAFT` instead of `PUBLISH RELEASE` before the actual release) |
| 24 | + - [ ] Thank voluntary contributors in the Github release page (use ``git shortlog -s -n -e v0.5.3..origin/develop``). |
26 | 25 | - [ ] Make a final check that there are no platform-dependency issues in the ``solidity-test-bytecode`` repository.
|
27 |
| - - [ ] Wait for the tests for the commit on ``release``, create a release in Github, creating the tag (click the `PUBLISH RELEASE` button on the release page.) |
28 |
| - - [ ] Wait for the CI runs on the tag itself (travis should push artifacts onto the Github release page). |
| 26 | + - [ ] Check that all tests on the latest commit in ``develop`` are green. |
| 27 | + - [ ] Click the `PUBLISH RELEASE` button on the release page, creating the tag. |
| 28 | + - [ ] Wait for the CI runs on the tag itself (travis will push the source archive and the static linux binary onto the Github release page). |
| 29 | + |
| 30 | +### Download Binaries |
29 | 31 | - [ ] 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``.
|
30 |
| - - [ ] Run ``scripts/create_source_tarball.sh`` while being on the tag to create the source tarball. Make sure to create ``prerelease.txt`` before: (``echo -n > prerelease.txt``). This will create the tarball in a directory called ``upload``. |
31 |
| - - [ ] Take the tarball from the upload directory (its name should be ``solidity_x.x.x.tar.gz``, otherwise ``prerelease.txt`` was missing in the step before) and upload the source tarball to the release page. |
| 32 | + - [ ] 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``. |
| 33 | + - [ ] If not done by travis: 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``. |
| 34 | + |
| 35 | +### Update [solc-bin](https://github.com/ethereum/solc-bin/) |
| 36 | + - [ ] Copy ``soljson.js`` to ``solc-bin/bin/soljson-v$VERSION+commit.$COMMIT.js`` |
| 37 | + - [ ] Copy ``solc-static-linux`` from the release page to ``solc-bin/linux-amd64/solc-linux-amd64-v$VERSION+commit.$COMMIT`` |
| 38 | + - [ ] Make it executable. |
| 39 | + - [ ] Copy ``solc-macos`` from the release page to ``solc-bin/macosx-amd64/solc-macosx-amd64-v$VERSION+commit.$COMMIT`` |
| 40 | + - [ ] Make it executable. |
| 41 | + - [ ] Copy ``solc-windows.exe`` from the release page to ``solc-bin/windows-amd64/solc-windows-amd64-v$VERSION+commit.$COMMIT.exe`` |
| 42 | + - [ ] 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/``. |
| 43 | + - [ ] Create a pull request and merge. |
32 | 44 |
|
33 | 45 | ### Homebrew and MacOS
|
34 |
| - - [ ] Update the version and the hash (``sha256sum solidity_x.x.x.tar.gz``) in https://github.com/Homebrew/homebrew-core/blob/master/Formula/solidity.rb |
35 |
| - - [ ] Update the version and the hash (``sha256sum solidity_x.x.x.tar.gz``) in https://github.com/ethereum/homebrew-ethereum/blob/master/solidity.rb |
36 |
| - - [ ] Take the binary from the ``b_osx`` run of the released commit in circle-ci and add it to the release page as ``solc-macos``. |
| 46 | + - [ ] Update the version and the hash (``sha256sum solidity_$VERSION.tar.gz``) in https://github.com/Homebrew/homebrew-core/blob/master/Formula/solidity.rb |
| 47 | + - [ ] Update the version and the hash (``sha256sum solidity_$VERSION.tar.gz``) in https://github.com/ethereum/homebrew-ethereum/blob/master/solidity.rb |
37 | 48 |
|
38 |
| -### Update solc-bin |
39 |
| - - [ ] Copy ``soljson.js`` from the release page to ``solc-bin/bin/soljson-v<version>+commit.<commit>.js`` |
40 |
| - - [ ] Copy ``solc-static-linux`` from the release page to ``solc-bin/linux-amd64/solc-linux-amd64-v<version>+commit.<commit>`` |
41 |
| - - [ ] Copy ``solc-macos`` from the release page to ``solc-bin/macos-amd64/solc-macos-amd64-v<version>+commit.<commit>`` |
42 |
| - - [ ] Copy ``solc-windows.zip`` from the release page to ``solc-bin/windows-amd64/solc-windows-amd64-v<version>+commit.<commit>.zip`` |
43 |
| - - [ ] Make the linux and the macos binaries executable. |
44 |
| - - [ ] Run ``./update`` 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/``. |
45 |
| - - [ ] Create a pull request and merge. |
| 49 | +### Docker |
| 50 | + - [ ] Run ``./scripts/docker_deploy_manual.sh v$VERSION``). |
46 | 51 |
|
47 | 52 | ### PPA
|
48 | 53 | - [ ] Change ``scripts/release_ppa.sh`` to match your key's email and key id.
|
49 |
| - - [ ] Run ``scripts/release_ppa.sh release`` to create the PPA release (you need the relevant openssl key). |
| 54 | + - [ ] Run ``scripts/release_ppa.sh v$VERSION`` to create the PPA release (you need the relevant openssl key). |
50 | 55 | - [ ] 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`` and ``Xenial`` while selecting ``Copy existing binaries``.
|
51 | 56 |
|
52 |
| -### Docker |
53 |
| - - [ ] 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``). |
54 |
| - |
55 | 57 | ### Documentation
|
56 |
| - - [ ] Build the new version on https://readthedocs.org/projects/solidity/ (select `latest` on the bottom of the page and click `BUILD`) |
| 58 | + - [ ] Build the new version on https://readthedocs.org/projects/solidity/ (select `latest` at the bottom of the page and click `BUILD`) |
57 | 59 | - [ ] In the admin panel, select `Versions` in the menu and set the default version to the released one.
|
58 | 60 |
|
59 | 61 | ### Release solc-js
|
| 62 | + - [ ] Wait until solc-bin was properly deployed. You can test this via remix - a test run through remix is advisable anyway. |
60 | 63 | - [ ] Increment the version number, create a pull request for that, merge it after tests succeeded.
|
61 | 64 | - [ ] Run ``npm publish`` in the updated ``solc-js`` repository.
|
62 |
| - - [ ] Make sure to push the tag ``npm publish`` created with ``git push --tags``. |
| 65 | + - [ ] Create a tag using ``git tag --annotate v$VERSION`` and push it with ``git push --tags``. |
63 | 66 |
|
64 | 67 | ### Post-release
|
65 | 68 | - [ ] Publish the blog post.
|
66 | 69 | - [ ] Create a commit to increase the version number on ``develop`` in ``CMakeLists.txt`` and add a new skeleton changelog entry.
|
67 |
| - - [ ] Merge ``release`` back into ``develop``. |
68 | 70 | - [ ] Announce on Twitter and Reddit.
|
69 | 71 | - [ ] Lean back, wait for bug reports and repeat from step 1 :)
|
0 commit comments