]>
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 | ||
11 | ||
12 | bitcoin-qt.pro | |
13 | contrib/verifysfbinaries/verify.sh | |
14 | doc/README* | |
15 | share/setup.nsi | |
16 | src/clientversion.h (change CLIENT_VERSION_IS_RELEASE to true) | |
17 | ||
18 | ###tag version in git | |
19 | ||
20 | git tag -a v0.8.0 | |
21 | ||
22 | ###write release notes. git shortlog helps a lot, for example: | |
23 | ||
24 | git shortlog --no-merges v0.7.2..v0.8.0 | |
25 | ||
26 | * * * | |
27 | ||
28 | ##perform gitian builds | |
29 | ||
30 | From a directory containing the bitcoin source, gitian-builder and gitian.sigs | |
31 | ||
32 | export SIGNER=(your gitian key, ie bluematt, sipa, etc) | |
33 | export VERSION=0.8.0 | |
34 | cd ./gitian-builder | |
35 | ||
36 | Fetch and build inputs: (first time, or when dependency versions change) | |
37 | ||
38 | mkdir -p inputs; cd inputs/ | |
39 | wget 'http://miniupnp.free.fr/files/download.php?file=miniupnpc-1.6.tar.gz' -O miniupnpc-1.6.tar.gz | |
40 | wget 'http://www.openssl.org/source/openssl-1.0.1c.tar.gz' | |
41 | wget 'http://download.oracle.com/berkeley-db/db-4.8.30.NC.tar.gz' | |
42 | wget 'http://zlib.net/zlib-1.2.6.tar.gz' | |
43 | wget 'ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng-1.5.9.tar.gz' | |
44 | wget 'http://fukuchi.org/works/qrencode/qrencode-3.2.0.tar.bz2' | |
45 | wget 'http://downloads.sourceforge.net/project/boost/boost/1.50.0/boost_1_50_0.tar.bz2' | |
46 | wget 'http://releases.qt-project.org/qt4/source/qt-everywhere-opensource-src-4.8.3.tar.gz' | |
47 | cd .. | |
48 | ./bin/gbuild ../bitcoin/contrib/gitian-descriptors/boost-win32.yml | |
49 | mv build/out/boost-win32-1.50.0-gitian2.zip inputs/ | |
50 | ./bin/gbuild ../bitcoin/contrib/gitian-descriptors/qt-win32.yml | |
51 | mv build/out/qt-win32-4.8.3-gitian-r1.zip inputs/ | |
52 | ./bin/gbuild ../bitcoin/contrib/gitian-descriptors/deps-win32.yml | |
53 | mv build/out/bitcoin-deps-0.0.5.zip inputs/ | |
54 | ||
55 | Build bitcoind and bitcoin-qt on Linux32, Linux64, and Win32: | |
56 | ||
57 | ./bin/gbuild --commit bitcoin=v${VERSION} ../bitcoin/contrib/gitian-descriptors/gitian.yml | |
58 | ./bin/gsign --signer $SIGNER --release ${VERSION} --destination ../gitian.sigs/ ../bitcoin/contrib/gitian-descriptors/gitian.yml | |
59 | pushd build/out | |
60 | zip -r bitcoin-${VERSION}-linux-gitian.zip * | |
61 | mv bitcoin-${VERSION}-linux-gitian.zip ../../ | |
62 | popd | |
63 | ./bin/gbuild --commit bitcoin=v${VERSION} ../bitcoin/contrib/gitian-descriptors/gitian-win32.yml | |
64 | ./bin/gsign --signer $SIGNER --release ${VERSION}-win32 --destination ../gitian.sigs/ ../bitcoin/contrib/gitian-descriptors/gitian-win32.yml | |
65 | pushd build/out | |
66 | zip -r bitcoin-${VERSION}-win32-gitian.zip * | |
67 | mv bitcoin-${VERSION}-win32-gitian.zip ../../ | |
68 | popd | |
69 | ||
70 | Build output expected: | |
71 | ||
72 | 1. linux 32-bit and 64-bit binaries + source (bitcoin-${VERSION}-linux-gitian.zip) | |
73 | 2. windows 32-bit binary, installer + source (bitcoin-${VERSION}-win32-gitian.zip) | |
74 | 3. Gitian signatures (in gitian.sigs/${VERSION}[-win32]/(your gitian key)/ | |
75 | ||
76 | repackage gitian builds for release as stand-alone zip/tar/installer exe | |
77 | ||
78 | **Linux .tar.gz:** | |
79 | ||
80 | unzip bitcoin-${VERSION}-linux-gitian.zip -d bitcoin-${VERSION}-linux | |
81 | tar czvf bitcoin-${VERSION}-linux.tar.gz bitcoin-${VERSION}-linux | |
82 | rm -rf bitcoin-${VERSION}-linux | |
83 | ||
84 | **Windows .zip and setup.exe:** | |
85 | ||
86 | unzip bitcoin-${VERSION}-win32-gitian.zip -d bitcoin-${VERSION}-win32 | |
87 | mv bitcoin-${VERSION}-win32/bitcoin-*-setup.exe . | |
88 | zip -r bitcoin-${VERSION}-win32.zip bitcoin-${VERSION}-win32 | |
89 | rm -rf bitcoin-${VERSION}-win32 | |
90 | ||
91 | **Perform Mac build:** | |
92 | ||
93 | OSX binaries are created by Gavin Andresen on a 32-bit, OSX 10.6 machine. | |
94 | ||
95 | qmake RELEASE=1 USE_UPNP=1 USE_QRCODE=1 bitcoin-qt.pro | |
96 | make | |
97 | export QTDIR=/opt/local/share/qt4 # needed to find translations/qt_*.qm files | |
98 | T=$(contrib/qt_translations.py $QTDIR/translations src/qt/locale) | |
99 | python2.7 share/qt/clean_mac_info_plist.py | |
100 | python2.7 contrib/macdeploy/macdeployqtplus Bitcoin-Qt.app -add-qt-tr $T -dmg -fancy contrib/macdeploy/fancy.plist | |
101 | ||
102 | Build output expected: Bitcoin-Qt.dmg | |
103 | ||
104 | ###Next steps: | |
105 | ||
106 | * Code-sign Windows -setup.exe (in a Windows virtual machine) and | |
107 | OSX Bitcoin-Qt.app (Note: only Gavin has the code-signing keys currently) | |
108 | ||
109 | * upload builds to SourceForge | |
110 | ||
111 | * create SHA256SUMS for builds, and PGP-sign it | |
112 | ||
113 | * update bitcoin.org version | |
114 | make sure all OS download links go to the right versions | |
115 | ||
116 | * update forum version | |
117 | ||
118 | * update wiki download links | |
119 | ||
120 | * update wiki changelog: [https://en.bitcoin.it/wiki/Changelog](https://en.bitcoin.it/wiki/Changelog) | |
121 | ||
122 | Commit your signature to gitian.sigs: | |
123 | ||
124 | pushd gitian.sigs | |
125 | git add ${VERSION}/${SIGNER} | |
126 | git add ${VERSION}-win32/${SIGNER} | |
127 | git commit -a | |
128 | git push # Assuming you can push to the gitian.sigs tree | |
129 | popd | |
130 | ||
131 | ------------------------------------------------------------------------- | |
132 | ||
133 | ### After 3 or more people have gitian-built, repackage gitian-signed zips: | |
134 | ||
135 | From a directory containing bitcoin source, gitian.sigs and gitian zips | |
136 | ||
137 | export VERSION=0.5.1 | |
138 | mkdir bitcoin-${VERSION}-linux-gitian | |
139 | pushd bitcoin-${VERSION}-linux-gitian | |
140 | unzip ../bitcoin-${VERSION}-linux-gitian.zip | |
141 | mkdir gitian | |
142 | cp ../bitcoin/contrib/gitian-downloader/*.pgp ./gitian/ | |
143 | for signer in $(ls ../gitian.sigs/${VERSION}/); do | |
144 | cp ../gitian.sigs/${VERSION}/${signer}/bitcoin-build.assert ./gitian/${signer}-build.assert | |
145 | cp ../gitian.sigs/${VERSION}/${signer}/bitcoin-build.assert.sig ./gitian/${signer}-build.assert.sig | |
146 | done | |
147 | zip -r bitcoin-${VERSION}-linux-gitian.zip * | |
148 | cp bitcoin-${VERSION}-linux-gitian.zip ../ | |
149 | popd | |
150 | mkdir bitcoin-${VERSION}-win32-gitian | |
151 | pushd bitcoin-${VERSION}-win32-gitian | |
152 | unzip ../bitcoin-${VERSION}-win32-gitian.zip | |
153 | mkdir gitian | |
154 | cp ../bitcoin/contrib/gitian-downloader/*.pgp ./gitian/ | |
155 | for signer in $(ls ../gitian.sigs/${VERSION}-win32/); do | |
156 | cp ../gitian.sigs/${VERSION}-win32/${signer}/bitcoin-build.assert ./gitian/${signer}-build.assert | |
157 | cp ../gitian.sigs/${VERSION}-win32/${signer}/bitcoin-build.assert.sig ./gitian/${signer}-build.assert.sig | |
158 | done | |
159 | zip -r bitcoin-${VERSION}-win32-gitian.zip * | |
160 | cp bitcoin-${VERSION}-win32-gitian.zip ../ | |
161 | popd | |
162 | ||
163 | - Upload gitian zips to SourceForge | |
164 | - Celebrate |