2013-05-19 21:30:00 -07:00
|
|
|
Release Process
|
|
|
|
====================
|
|
|
|
|
2016-04-12 16:54:43 -07:00
|
|
|
### Define the release version as:
|
2013-05-19 21:30:00 -07:00
|
|
|
|
2016-04-12 16:54:43 -07:00
|
|
|
$ ZCASH_RELEASE=${UPSTREAM_VERSION}.z${ZCASH_RELEASE_COUNTER}
|
2013-05-19 21:30:00 -07:00
|
|
|
|
2016-04-12 16:54:43 -07:00
|
|
|
Example:
|
2013-05-19 21:30:00 -07:00
|
|
|
|
2016-04-12 16:54:43 -07:00
|
|
|
$ ZCASH_RELEASE=0.11.2.z2
|
2013-05-19 21:30:00 -07:00
|
|
|
|
2016-04-12 16:54:43 -07:00
|
|
|
Also, the following commands use the ZCASH_RELEASE_PREV bash variable
|
|
|
|
for the previous release:
|
2013-05-19 21:30:00 -07:00
|
|
|
|
2016-04-12 16:54:43 -07:00
|
|
|
$ ZCASH_RELEASE_PREV=0.11.2.z1
|
2013-05-19 21:30:00 -07:00
|
|
|
|
2016-04-12 16:54:43 -07:00
|
|
|
### update (commit) version in sources
|
2013-05-19 21:30:00 -07:00
|
|
|
|
2016-04-12 16:54:43 -07:00
|
|
|
doc/README.md
|
|
|
|
src/clientversion.h
|
2013-05-19 21:30:00 -07:00
|
|
|
|
2016-04-12 16:54:43 -07:00
|
|
|
In clientverion.h change CLIENT_VERSION_IS_RELEASE to false while Zcash
|
|
|
|
is in alpha-test phase.
|
2013-05-19 21:30:00 -07:00
|
|
|
|
2016-04-12 16:54:43 -07:00
|
|
|
### write release notes
|
2014-08-12 16:24:05 -07:00
|
|
|
|
2016-04-12 16:54:43 -07:00
|
|
|
git shortlog helps a lot, for example:
|
2014-08-12 16:24:05 -07:00
|
|
|
|
2016-04-12 16:54:43 -07:00
|
|
|
$ git shortlog --no-merges v${ZCASH_RELEASE_PREV}..HEAD \
|
|
|
|
> ./doc/release-notes/release-notes-${ZCASH_RELEASE}.md
|
2013-05-19 21:30:00 -07:00
|
|
|
|
2016-04-12 16:54:43 -07:00
|
|
|
### merge the previous changes
|
2014-05-13 16:23:22 -07:00
|
|
|
|
2016-04-12 16:54:43 -07:00
|
|
|
Do the normal pull-request, review, testing process.
|
2015-10-17 03:10:45 -07:00
|
|
|
|
2016-04-12 16:54:43 -07:00
|
|
|
### make tags / release-branch for the newly merged result
|
2013-05-19 21:30:00 -07:00
|
|
|
|
2016-04-12 16:54:43 -07:00
|
|
|
In this example, we ensure zc.v0.11.2.latest is up to date with the
|
|
|
|
previous merged PR, then:
|
2015-10-17 03:10:45 -07:00
|
|
|
|
2016-04-12 16:54:43 -07:00
|
|
|
$ git tag v${ZCASH_RELEASE}
|
|
|
|
$ git branch zc.v${ZCASH_RELEASE}
|
|
|
|
$ git push origin v${ZCASH_RELEASE}
|
|
|
|
$ git push origin zc.v${ZCASH_RELEASE}
|
2015-10-17 03:10:45 -07:00
|
|
|
|
2016-04-12 16:54:43 -07:00
|
|
|
### update github default branch to this new release branch
|
2015-10-17 03:10:45 -07:00
|
|
|
|
2016-04-12 16:54:43 -07:00
|
|
|
### write / publish a release announcement
|
2013-05-19 21:30:00 -07:00
|
|
|
|
2016-04-12 16:54:43 -07:00
|
|
|
### celebrate
|
2014-12-11 15:53:24 -08:00
|
|
|
|
2016-04-12 16:54:43 -07:00
|
|
|
### missing steps
|
2014-12-11 15:53:24 -08:00
|
|
|
|
2016-04-12 16:54:43 -07:00
|
|
|
Zcash still needs:
|
2014-12-11 15:53:24 -08:00
|
|
|
|
2016-04-12 16:54:43 -07:00
|
|
|
a. deterministic build
|
|
|
|
b. signatured tags
|
|
|
|
c. thorough pre-release testing (presumably more thorough than standard PR tests)
|
|
|
|
d. release deployment steps (eg: updating build-depends mirror, deploying testnet, etc...)
|
|
|
|
e. proper zcash-specific versions and names in software and documentation.
|