aboutsummaryrefslogtreecommitdiff
path: root/doc/release-process.txt
blob: ceff72483de790aa5d7f654dfb455db3051bc4bd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
* update (commit) version in sources
  src/serialize.h
  share/setup.nsi

* update (commit) version in OSX app bundle
 contrib/Bitcoin.app/Contents/Info.plist

  * CFBundleShortVersionString should have value like 0.5.0
  * CFBundleVersion should have value like 500

* tag version in git

  $ git tag -a v0.5.0

* write release notes.  git shortlog helps a lot:

  $ git shortlog --no-merges v0.4.0..

* create source-only archive

  $ git archive --format=tar --prefix=bitcoin-0.5.0/ HEAD | \
  	gzip -9c > ~/tmp/bitcoin-0.5.0-src.tar.gz 

* perform gitian builds

  * From a directory containing the bitcoin source, gitian-builder and gitian.sigs
  $ export VERSION=0.5.0
  $ cd ./gitian-builder
  $ ./bin/gbuild --commit bitcoin=v$VERSION ../bitcoin/contrib/gitian-descriptors/gitian.yml
  $ ./bin/gsign --signer (your gitian key, ie bluematt, sipa, etc) --release $VERSION --destination ../gitian.sigs/ ../bitcoin/contrib/gitian-descriptors/gitian.yml
  $ cd build/out
  $ zip bitcoin-$VERSION-linux-gitian.zip *
  $ mv bitcoin-$VERSION-linux-gitian.zip ../../

  * NOTE: gitian cross-compiled builds for Windows is broken, we are building
    Windows binaries using a public Amazon AWS instance for this release.

  Build output expected:
  1. linux 32-bit and 64-bit binaries + source (bitcoin-$VERSION-linux-gitian.zip)
  2. Gitian signatures (in gitian.sigs/$VERSION[-win32]/(your gitian key)/

* repackage gitian builds for release as stand-alone zip/tar/installer exe

  * Linux .tar.gz:
  $ mkdir bitcoin-$VERSION-linux
  $ cd bitcoin-$VERSION-linux
  $ unzip bitcoin-$VERSION-linux-gitian.zip
  $ cd ..; tar czvf bitcoin-$VERSION-linux.tar.gz bitcoin-$VERSION-linux

* Compile Windows .zip and setup.exe on Amazon EC2 instance
  TODO: document process

* perform Mac build
  TODO: document process

* upload source and builds to SourceForge

* create SHA1SUMS for builds, and PGP-sign it

* update bitcoin.org version

* update forum version

* update wiki

* update wiki download links

* release gitian-signed gitian archives

  * Collect enough gitian signatures to meet minimum_weight (see contrib/gitian-downloader/*-download-config)

  * From a directory containing bitcoin source, gitian.sigs and gitian zips
  $ export VERSION=0.5.0
  $ mkdir bitcoin-$VERSION-linux-gitian; cd bitcoin-$VERSION-linux-gitian
  $ unzip ../bitcoin-$VERSION-linux-gitian.zip
  $ mkdir gitian
  $ cp ../bitcoin/contrib/gitian-downloader/*.pgp ./gitian/
  $ for file in `ls ../gitian.sigs/$VERSION/`; do
  $   cp ../gitian.sigs/$VERSION/$file/bitcoin-build.assert ./gitian/$file-build.assert
  $   cp ../gitian.sigs/$VERSION/$file/bitcoin-build.assert.sig ./gitian/$file-build.assert.sig
  $ done
  $ zip bitcoin-$VERSION-linux-gitian.zip *
  $ cp bitcoin-$VERSION-linux-gitian.zip ../

  * Upload gitian zips to SourceForge