Update release-process.txt with gitian release instructions.
[novacoin.git] / doc / release-process.txt
1 * update (commit) version in sources
2   src/serialize.h
3   share/setup.nsi
4
5 * update (commit) version in OSX app bundle
6  contrib/Bitcoin.app/Contents/Info.plist
7
8   * CFBundleShortVersionString should have value like 0.3.23
9   * CFBundleVersion should have value like 323
10
11 * tag version in git
12
13   $ git tag -a v0.3.23
14
15 * write release notes.  git shortlog helps a lot:
16
17   $ git shortlog --no-merges v0.3.22..
18
19 * create source-only archive
20
21   $ git archive --format=tar --prefix=bitcoin-0.3.23/ HEAD | \
22         gzip -9c > ~/tmp/bitcoin-0.3.23-src.tar.gz 
23
24 * perform gitian builds
25
26   * From a directory containing the bitcoin source, gitian-builder and bitcoin-gitian-sigs
27   $ export VERSION=0.3.23
28   $ cd ./gitian-builder
29   $ ./bin/gbuild --commit bitcoin=v$VERSION ../bitcoin/contrib/gitian-descriptors/gitian.yml
30   $ ./bin/gsign --signer (your gitian key, ie bluematt, sipa, etc) --release $VERSION --destination ../bitcoin-gitian-sigs/ ../bitcoin/contrib/gitian-descriptors/gitian.yml
31   $ cd build/out
32   $ zip bitcoin-$VERSION-linux-gitian.zip *
33   $ mv bitcoin-$VERSION-linux-gitian.zip ../../
34   $ ./bin/gbuild --commit bitcoin=v$VERSION ../bitcoin/contrib/gitian-descriptors/gitian-win32.yml
35   $ ./bin/gsign --signer (your gitian key, ie bluematt, sipa, etc) --release $VERSION-win32 --destination ../bitcoin-gitian-sigs/ ../bitcoin/contrib/gitian-descriptors/gitian-win32.yml
36   $ cd build/out
37   $ zip bitcoin-$VERSION-win32-gitian.zip *
38   $ mv bitcoin-$VERSION-win32-gitian.zip ../../
39  
40   Build output expected:
41   1. linux 32-bit and 64-bit binaries + source (bitcoin-$VERSION-linux-gitian.zip)
42   2. windows 32-bit binary, installer + source (bitcoin-$VERSION-win32-gitian.zip)
43   3. Gitian signatures (in bitcoin-gitian-sigs/$VERSION[-win32]/(your gitian key)/
44
45 * repackage gitian builds for release as stand-alone zip/tar/installer exe
46
47   * Windows .zip and setup.exe:
48   $ mkdir bitcoin-$VERSION-win32
49   $ cd bitcoin-$VERSION-win32
50   $ unzip bitcoin-$VERSION-win32-gitian.zip
51   $ mv bitcoin-$VERSION-win32-setup.exe ..
52   $ cd ..; zip bitcoin-$VERSION-win32.zip bitcoin-$VERSION-win32
53
54   * Linux .tar.gz:
55   $ mkdir bitcoin-$VERSION-linux
56   $ cd bitcoin-$VERSION-linux
57   $ unzip bitcoin-$VERSION-linux-gitian.zip
58   $ cd ..; tar czvf bitcoin-$VERSION-linux.tar.gz bitcoin-$VERSION-linux
59
60 * perform Mac build
61   * From the bitcoin source dir
62   $ cd contrib
63   $ ./create_osx_dmg.sh
64   $ mv Bitcoin.dmg bitcoin-$VERSION-macosx.dmg
65
66 * upload source and builds to SF
67
68 * create SHA1SUMS for builds, and PGP-sign it
69
70 * update bitcoin.org version
71
72 * update forum version
73
74 * update wiki
75
76 * update wiki download links
77
78 * release gitian-signed gitian archives
79
80   * Collect enough gitian signatures to meet minimum_weight (see contrib/gitian-downloader/*-download-config)
81
82   * From a directory containing bitcoin source, bitcoin-gitian-sigs and gitian zips
83   $ export VERSION=0.3.23
84   $ mkdir bitcoin-$VERSION-win32-gitian; cd bitcoin-$VERSION-win32-gitian
85   $ unzip ../bitcoin-$VERSION-win32-gitian.zip
86   $ mkdir gitian
87   $ cp ../bitcoin/contrib/gitian-downloader/*.pgp ./gitian/
88   $ for file in `ls ../bitcoin-gitian-sigs/$VERSION-win32/`; do
89   $   cp ../bitcoin-gitian-sigs/$VERSION-win32/$file/bitcoin-build.assert ./gitian/$file-build.assert
90   $   cp ../bitcoin-gitian-sigs/$VERSION-win32/$file/bitcoin-build.assert.sig ./gitian/$file-build.assert.sig
91   $ done
92   $ zip bitcoin-$VERSION-win32-gitian.zip *
93   $ cp bitcoin-$VERSION-win32-gitian.zip ../
94   $ cd ..
95   $ mkdir bitcoin-$VERSION-linux-gitian; cd bitcoin-$VERSION-linux-gitian
96   $ unzip ../bitcoin-$VERSION-linux-gitian.zip
97   $ mkdir gitian
98   $ cp ../bitcoin/contrib/gitian-downloader/*.pgp ./gitian/
99   $ for file in `ls ../bitcoin-gitian-sigs/$VERSION/`; do
100   $   cp ../bitcoin-gitian-sigs/$VERSION/$file/bitcoin-build.assert ./gitian/$file-build.assert
101   $   cp ../bitcoin-gitian-sigs/$VERSION/$file/bitcoin-build.assert.sig ./gitian/$file-build.assert.sig
102   $ done
103   $ zip bitcoin-$VERSION-linux-gitian.zip *
104   $ cp bitcoin-$VERSION-linux-gitian.zip ../
105
106   * Upload gitian zips to SF
107
108