]>
Commit | Line | Data |
---|---|---|
2341e9b5 | 1 | Release Process |
2 | ==================== | |
3 | ||
4 | * update translations (ping wumpus, Diapolo or tcatm on IRC) | |
5 | * see https://github.com/bitcoin/bitcoin/blob/master/doc/translation_process.md#syncing-with-transifex | |
6 | ||
7 | * * * | |
8 | ||
9 | ###update (commit) version in sources | |
10 | ||
2341e9b5 | 11 | contrib/verifysfbinaries/verify.sh |
12 | doc/README* | |
13 | share/setup.nsi | |
14 | src/clientversion.h (change CLIENT_VERSION_IS_RELEASE to true) | |
15 | ||
16 | ###tag version in git | |
17 | ||
cc75306c | 18 | git tag -s v(new version, e.g. 0.8.0) |
2341e9b5 | 19 | |
20 | ###write release notes. git shortlog helps a lot, for example: | |
21 | ||
bb70bbfc | 22 | git shortlog --no-merges v(current version, e.g. 0.7.2)..v(new version, e.g. 0.8.0) |
2341e9b5 | 23 | |
24 | * * * | |
25 | ||
4bbbdf32 CF |
26 | ###update gitian |
27 | ||
28 | In order to take advantage of the new caching features in gitian, be sure to update to a recent version (e9741525c or higher is recommended) | |
29 | ||
9d5ad718 | 30 | ###perform gitian builds |
2341e9b5 | 31 | |
32 | From a directory containing the bitcoin source, gitian-builder and gitian.sigs | |
33 | ||
34 | export SIGNER=(your gitian key, ie bluematt, sipa, etc) | |
bb70bbfc | 35 | export VERSION=(new version, e.g. 0.8.0) |
7048443e M |
36 | pushd ./bitcoin |
37 | git checkout v${VERSION} | |
38 | popd | |
e9bfe657 | 39 | pushd ./gitian-builder |
1a97b22b | 40 | |
9d5ad718 | 41 | ###fetch and build inputs: (first time, or when dependency versions change) |
1a97b22b | 42 | |
462ad223 | 43 | mkdir -p inputs; cd inputs/ |
2341e9b5 | 44 | |
462ad223 M |
45 | Register and download the Apple SDK: (see OSX Readme for details) |
46 | ||
47 | https://developer.apple.com/downloads/download.action?path=Developer_Tools/xcode_4.6.3/xcode4630916281a.dmg | |
48 | ||
49 | Using a Mac, create a tarball for the 10.7 SDK and copy it to the inputs directory: | |
50 | ||
51 | tar -C /Volumes/Xcode/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/ -czf MacOSX10.7.sdk.tar.gz MacOSX10.7.sdk | |
2341e9b5 | 52 | |
462ad223 | 53 | Build Bitcoin Core for Linux, Windows, and OS X: |
2341e9b5 | 54 | |
f4e72bf8 | 55 | ./bin/gbuild --commit bitcoin=v${VERSION} ../bitcoin/contrib/gitian-descriptors/gitian-linux.yml |
462ad223 | 56 | ./bin/gsign --signer $SIGNER --release ${VERSION}-linux --destination ../gitian.sigs/ ../bitcoin/contrib/gitian-descriptors/gitian-linux.yml |
dfef929b | 57 | mv build/out/bitcoin-*.tar.gz build/out/src/bitcoin-*.tar.gz ../ |
f622232b WL |
58 | ./bin/gbuild --commit bitcoin=v${VERSION} ../bitcoin/contrib/gitian-descriptors/gitian-win.yml |
59 | ./bin/gsign --signer $SIGNER --release ${VERSION}-win --destination ../gitian.sigs/ ../bitcoin/contrib/gitian-descriptors/gitian-win.yml | |
dfef929b CF |
60 | mv build/out/bitcoin-*.zip build/out/bitcoin-*.exe ../ |
61 | ./bin/gbuild --commit bitcoin=v${VERSION} ../bitcoin/contrib/gitian-descriptors/gitian-osx.yml | |
7a9cf80b CF |
62 | ./bin/gsign --signer $SIGNER --release ${VERSION}-osx-unsigned --destination ../gitian.sigs/ ../bitcoin/contrib/gitian-descriptors/gitian-osx.yml |
63 | mv build/out/bitcoin-*-unsigned.tar.gz inputs | |
dfef929b | 64 | mv build/out/bitcoin-*.tar.gz build/out/bitcoin-*.dmg ../ |
2341e9b5 | 65 | popd |
7a9cf80b | 66 | bitcoin-0.9.99-osx-unsigned.tar.gz |
2341e9b5 | 67 | Build output expected: |
68 | ||
dfef929b CF |
69 | 1. source tarball (bitcoin-${VERSION}.tar.gz) |
70 | 2. linux 32-bit and 64-bit binaries dist tarballs (bitcoin-${VERSION}-linux[32|64].tar.gz) | |
71 | 3. windows 32-bit and 64-bit installers and dist zips (bitcoin-${VERSION}-win[32|64]-setup.exe, bitcoin-${VERSION}-win[32|64].zip) | |
7a9cf80b CF |
72 | 4. OSX unsigned installer (bitcoin-${VERSION}-osx-unsigned.dmg) |
73 | 5. Gitian signatures (in gitian.sigs/${VERSION}-<linux|win|osx-unsigned>/(your gitian key)/ | |
0dcb0a55 | 74 | |
2341e9b5 | 75 | ###Next steps: |
76 | ||
2341e9b5 | 77 | Commit your signature to gitian.sigs: |
78 | ||
79 | pushd gitian.sigs | |
462ad223 | 80 | git add ${VERSION}-linux/${SIGNER} |
f622232b | 81 | git add ${VERSION}-win/${SIGNER} |
7a9cf80b CF |
82 | git add ${VERSION}-osx-unsigned/${SIGNER} |
83 | git commit -a | |
84 | git push # Assuming you can push to the gitian.sigs tree | |
85 | popd | |
86 | ||
87 | Wait for OSX detached signature: | |
88 | Once the OSX build has 3 matching signatures, Gavin will sign it with the apple App-Store key. | |
89 | He will then upload a detached signature to be combined with the unsigned app to create a signed binary. | |
90 | ||
91 | Create the signed OSX binary: | |
92 | pushd ./gitian-builder | |
93 | # Fetch the signature as instructed by Gavin | |
94 | cp signature.tar.gz inputs/ | |
95 | ./bin/gbuild -i ../bitcoin/contrib/gitian-descriptors/gitian-osx-signer.yml | |
96 | ./bin/gsign --signer $SIGNER --release ${VERSION}-osx-signed --destination ../gitian.sigs/ ../bitcoin/contrib/gitian-descriptors/gitian-osx-signer.yml | |
97 | mv build/out/bitcoin-${VERSION}-osx.dmg ../ | |
98 | popd | |
99 | ||
100 | Commit your signature for the signed OSX binary: | |
101 | ||
102 | pushd gitian.sigs | |
103 | git add ${VERSION}-osx-signed/${SIGNER} | |
2341e9b5 | 104 | git commit -a |
105 | git push # Assuming you can push to the gitian.sigs tree | |
106 | popd | |
107 | ||
108 | ------------------------------------------------------------------------- | |
109 | ||
e1eb741e | 110 | ### After 3 or more people have gitian-built and their results match: |
2341e9b5 | 111 | |
e1eb741e | 112 | - Perform code-signing. |
4f99b160 | 113 | |
e1eb741e WL |
114 | - Code-sign Windows -setup.exe (in a Windows virtual machine using signtool) |
115 | ||
e1eb741e | 116 | Note: only Gavin has the code-signing keys currently. |
4f99b160 | 117 | |
a38eaea0 WL |
118 | - Create `SHA256SUMS.asc` for the builds, and GPG-sign it: |
119 | ```bash | |
120 | sha256sum * > SHA256SUMS | |
28fb5f38 | 121 | gpg --digest-algo sha256 --clearsign SHA256SUMS # outputs SHA256SUMS.asc |
a38eaea0 | 122 | rm SHA256SUMS |
e1eb741e | 123 | ``` |
28fb5f38 | 124 | (the digest algorithm is forced to sha256 to avoid confusion of the `Hash:` header that GPG adds with the SHA256 used for the files) |
e1eb741e WL |
125 | |
126 | - Upload zips and installers, as well as `SHA256SUMS.asc` from last step, to the bitcoin.org server | |
127 | ||
128 | - Update bitcoin.org version | |
129 | ||
130 | - Make a pull request to add a file named `YYYY-MM-DD-vX.Y.Z.md` with the release notes | |
131 | to https://github.com/bitcoin/bitcoin.org/tree/master/_releases | |
132 | ([Example for 0.9.2.1](https://raw.githubusercontent.com/bitcoin/bitcoin.org/master/_releases/2014-06-19-v0.9.2.1.md)). | |
133 | ||
134 | - After the pull request is merged, the website will automatically show the newest version, as well | |
135 | as update the OS download links. Ping Saivann in case anything goes wrong | |
136 | ||
137 | - Announce the release: | |
4f99b160 WL |
138 | |
139 | - Release sticky on bitcointalk: https://bitcointalk.org/index.php?board=1.0 | |
140 | ||
141 | - Bitcoin-development mailing list | |
142 | ||
e1eb741e WL |
143 | - Update title of #bitcoin on Freenode IRC |
144 | ||
145 | - Optionally reddit /r/Bitcoin, ... but this will usually sort out itself | |
146 | ||
147 | - Notify BlueMatt so that he can start building [https://launchpad.net/~bitcoin/+archive/ubuntu/bitcoin](the PPAs) | |
148 | ||
149 | - Add release notes for the new version to the directory `doc/release-notes` in git master | |
4f99b160 | 150 | |
bb70bbfc | 151 | - Celebrate |