]> Git Repo - VerusCoin.git/blame - doc/release-process.md
Moves zcash-fetch-params to /usr/bin
[VerusCoin.git] / doc / release-process.md
CommitLineData
2341e9b5 1Release Process
2====================
a6770caa 3Meta: There should always be a single release engineer to disambiguate responsibility.
2341e9b5 4
3fe431db
JG
5## Pre-release
6
7Check all of the following:
8
9- All dependencies have been updated as appropriate:
10 - BDB
11 - Boost
12 - ccache
13 - libgmp
4c2b2541 14 - libsnark (upstream of our fork)
3fe431db
JG
15 - libsodium
16 - miniupnpc
17 - OpenSSL
18
a6770caa 19## A. Define the release version as:
2341e9b5 20
1fa852f7
JG
21 $ ZCASH_RELEASE=MAJOR.MINOR.REVISION(-BUILD_STRING)
22
525a3b92 23Example:
2341e9b5 24
1fa852f7
JG
25 $ ZCASH_RELEASE=1.0.0-beta2
26
27Also, the following commands use the `ZCASH_RELEASE_PREV` bash variable for the
28previous release:
2341e9b5 29
1fa852f7 30 $ ZCASH_RELEASE_PREV=1.0.0-beta1
a6770caa
SB
31
32## B. create a new release branch / github PR
33### B1. update (commit) version in sources
2341e9b5 34
a6770caa 35 doc/README.md
bbf75f9f
TH
36 src/clientversion.h
37 configure.ac
a6770caa 38
1fa852f7
JG
39In `configure.ac` and `clientversion.h`:
40
41- Increment `CLIENT_VERSION_BUILD` according to the following schema:
42
43 - 0-24: `1.0.0-beta1`-`1.0.0-beta25`
5428c6ca 44 - 25-49: `1.0.0-rc1`-`1.0.0-rc25`
1fa852f7
JG
45 - 50: `1.0.0`
46 - 51-99: `1.0.0-1`-`1.0.0-49`
47 - (`CLIENT_VERSION_REVISION` rolls over)
48 - 0-24: `1.0.1-beta1`-`1.0.1-beta25`
49
50- Change `CLIENT_VERSION_IS_RELEASE` to false while Zcash is in beta-test phase.
2341e9b5 51
a6770caa 52### B2. write release notes
4bbbdf32 53
525a3b92 54git shortlog helps a lot, for example:
4bbbdf32 55
525a3b92
NW
56 $ git shortlog --no-merges v${ZCASH_RELEASE_PREV}..HEAD \
57 > ./doc/release-notes/release-notes-${ZCASH_RELEASE}.md
1ea8b009
TH
58
59### B3. change the network magics
60
61If this release breaks backwards compatibility, change the network magic
62numbers. Set the four `pchMessageStart` in `CTestNetParams` in `chainparams.cpp`
63to random values.
a6770caa 64
1ea8b009 65### B4. merge the previous changes
a6770caa
SB
66
67Do the normal pull-request, review, testing process for this release PR.
2341e9b5 68
a6770caa 69## C. Verify code artifact hosting
1a97b22b 70
a6770caa 71### C1. Ensure depends tree is working
4fbfebea 72
d94ce512 73https://ci.z.cash/builders/depends-sources
a6770caa
SB
74
75### C2. Ensure public parameters work
76
77Run `./fetch-params.sh`.
78
ece30654 79## D. make tag for the newly merged result
2341e9b5 80
ece30654 81In this example, we ensure master is up to date with the
525a3b92 82previous merged PR, then:
4fbfebea 83
ece30654 84 $ git tag -s v${ZCASH_RELEASE}
525a3b92 85 $ git push origin v${ZCASH_RELEASE}
e7f12c20
DH
86
87## E. deploy testnet
d94ce512
KG
88
89Notify the Zcash DevOps engineer/sysadmin that the release has been tagged. They update some variables in the company's automation code and then run an Ansible playbook, which:
90
91* builds Zcash based on the specified branch
92* deploys it as a public service (e.g. betatestnet.z.cash, mainnet.z.cash)
93* often the same server can be re-used, and the role idempotently handles upgrades, but if not then they also need to update DNS records
94* possible manual steps: blowing away the `testnet3` dir, deleting old parameters, restarting DNS seeder
13f9b4ba
KG
95
96Then, verify that nodes can connect to the testnet server, and update the guide on the wiki to ensure the correct hostname is listed in the recommended zcash.conf.
d94ce512 97
e7f12c20
DH
98## F. publish the release announcement (blog, zcash-dev, slack)
99## G. celebrate
a6770caa 100## missing steps
a6770caa 101Zcash still needs:
4fbfebea 102
d94ce512 103* deterministic or reproducible builds
2341e9b5 104
a6770caa 105* thorough pre-release testing (presumably more thorough than standard PR tests)
e27d7cb2 106
a6770caa 107* release deployment steps (eg: updating build-depends mirror, deploying testnet, etc...)
e27d7cb2 108
d94ce512 109* proper Zcash-specific versions and names in software and documentation.
This page took 0.106133 seconds and 4 git commands to generate.