Skip to content

Commit 06b707d

Browse files
committed
Documentation: release-process.md
1 parent f7d619b commit 06b707d

File tree

1 file changed

+94
-96
lines changed

1 file changed

+94
-96
lines changed

doc/release-process.md

Lines changed: 94 additions & 96 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,38 @@
1-
Release Process
1+
Release Process "DMS Core"
22
====================
33

4-
* Update translations, see [translation_process.md](https://github.com/dashpay/dash/blob/master/doc/translation_process.md#synchronising-translations).
5-
6-
* Update manpages, see [gen-manpages.sh](https://github.com/dashpay/dash/blob/master/contrib/devtools/README.md#gen-manpagessh).
7-
84
Before every minor and major release:
95

6+
* Update translations, see [translation_process.md](https://github.com/Krekeler/documentchain/blob/master/doc/translation_process.md#synchronising-translations)
107
* Update [bips.md](bips.md) to account for changes since the last release.
11-
* Update version in `configure.ac` (don't forget to set `CLIENT_VERSION_IS_RELEASE` to `true`)
8+
* Update version in sources (see below)
129
* Write release notes (see below)
1310
* Update `src/chainparams.cpp` nMinimumChainWork with information from the getblockchaininfo rpc.
11+
* Update `src/chainparams.cpp` chainTxData with statistics about the transaction count and rate. Use the output of the RPC `getchaintxstats`, see
12+
[this pull request](https://github.com/bitcoin/bitcoin/pull/12270) for an example. Reviewers can verify the results by running `getchaintxstats <window_block_count> <window_last_block_hash>` with the `window_block_count` and `window_last_block_hash` from your output.
1413
* Update `src/chainparams.cpp` defaultAssumeValid with information from the getblockhash rpc.
1514
- The selected value must not be orphaned so it may be useful to set the value two blocks back from the tip.
1615
- Testnet should be set some tens of thousands back from the tip due to reorgs there.
1716
- This update should be reviewed with a reindex-chainstate with assumevalid=0 to catch any defect
1817
that causes rejection of blocks in the past history.
18+
* Update hardcoded [seeds](/contrib/seeds/README.md).
19+
* Update `src/qt/&intro.cpp` BLOCK_CHAIN_SIZE to the current size plus some overhead.
1920

20-
Before every major release:
2121

22-
* Update hardcoded [seeds](/contrib/seeds/README.md). TODO: Give example PR for Dash
23-
* Update [`BLOCK_CHAIN_SIZE`](/src/qt/intro.cpp) to the current size plus some overhead.
24-
* Update `src/chainparams.cpp` chainTxData with statistics about the transaction count and rate. Use the output of the RPC `getchaintxstats`, see
25-
[this pull request](https://github.com/bitcoin/bitcoin/pull/12270) for an example. Reviewers can verify the results by running `getchaintxstats <window_block_count> <window_last_block_hash>` with the `window_block_count` and `window_last_block_hash` from your output.
26-
* Update version of `contrib/gitian-descriptors/*.yml`: usually one'd want to do this on master after branching off the release - but be sure to at least do it before a new major release
22+
### Update version in sources
23+
24+
Client version
25+
26+
- `configure.ac`:
27+
- `_CLIENT_VERSION_MAJOR`
28+
- `_CLIENT_VERSION_MINOR`
29+
- `_CLIENT_VERSION_REVISION`
30+
- `_CLIENT_VERSION_BUILD`
31+
- Set `_CLIENT_VERSION_IS_RELEASE` to `true`
32+
- `_COPYRIGHT_YEAR`
33+
- `src/clientversion.h: RELEASE_CODE_NAME` **A**lice, **B**ob, **C**arol etc.
34+
- `src/rpc/misc.cpp: devgetinfo` return release
35+
- `contrib/gitian-descriptors/*.yml`: documentchain-win-0.17
2736

2837
### First time / New builders
2938

@@ -32,34 +41,34 @@ If you're using the automated script (found in [contrib/gitian-build.py](/contri
3241
Check out the source code in the following directory hierarchy.
3342

3443
cd /path/to/your/toplevel/build
35-
git clone https://github.com/dashpay/gitian.sigs.git
36-
git clone https://github.com/dashpay/dash-detached-sigs.git
44+
TODO : git clone https://github.com/dashpay/gitian.sigs.git
45+
git clone https://github.com/Krekeler/documentchain-detached-sigs.git
3746
git clone https://github.com/devrandom/gitian-builder.git
38-
git clone https://github.com/dashpay/dash.git
47+
git clone https://github.com/Krekeler/documentchain.git
3948

40-
### Dash Core maintainers/release engineers, suggestion for writing release notes
49+
### DMS Core maintainers/release engineers, suggestion for writing release notes
4150

4251
Write release notes. git shortlog helps a lot, for example:
4352

44-
git shortlog --no-merges v(current version, e.g. 0.12.2)..v(new version, e.g. 0.12.3)
53+
git shortlog --no-merges v(current version, e.g. 0.13.3)..v(new version, e.g. 0.13.4)
4554

4655
Generate list of authors:
4756

48-
git log --format='- %aN' v(current version, e.g. 0.16.0)..v(new version, e.g. 0.16.1) | sort -fiu
57+
git log --format='- %aN' v(current version, e.g. 0.13.3)..v(new version, e.g. 0.13.4) | sort -fiu
4958

5059
Tag version (or release candidate) in git
5160

52-
git tag -s v(new version, e.g. 0.12.3)
61+
git tag -s v(new version, e.g. 0.13.4)
5362

5463
### Setup and perform Gitian builds
5564

5665
If you're using the automated script (found in [contrib/gitian-build.py](/contrib/gitian-build.py)), then at this point you should run it with the "--build" command. Otherwise ignore this.
5766

5867
Setup Gitian descriptors:
5968

60-
pushd ./dash
61-
export SIGNER="(your Gitian key, ie UdjinM6, Pasta, etc)"
62-
export VERSION=(new version, e.g. 0.12.3)
69+
pushd ./documentchain
70+
export SIGNER="(your Gitian key)"
71+
export VERSION=(new version, e.g. 0.13.4)
6372
git fetch
6473
git checkout v${VERSION}
6574
popd
@@ -85,67 +94,67 @@ Ensure gitian-builder is up-to-date:
8594
echo '5a60e0a4b3e0b4d655317b2f12a810211c50242138322b16e7e01c6fbb89d92f inputs/osslsigncode-2.0.tar.gz' | sha256sum -c
8695
popd
8796

88-
Create the OS X SDK tarball, see the [OS X readme](README_osx.md) for details, and copy it into the inputs directory.
97+
Create the macOS SDK tarball, see the [OS X readme](README_osx.md) for details, and copy it into the inputs directory.
8998

9099
### Optional: Seed the Gitian sources cache and offline git repositories
91100

92101
NOTE: Gitian is sometimes unable to download files. If you have errors, try the step below.
93102

94-
By default, Gitian will fetch source files as needed. To cache them ahead of time, make sure you have checked out the tag you want to build in dash, then:
103+
By default, Gitian will fetch source files as needed. To cache them ahead of time, make sure you have checked out the tag you want to build in documentchain, then:
95104

96105
pushd ./gitian-builder
97-
make -C ../dash/depends download SOURCES_PATH=`pwd`/cache/common
106+
make -C ../documentchain/depends download SOURCES_PATH=`pwd`/cache/common
98107
popd
99108

100109
Only missing files will be fetched, so this is safe to re-run for each build.
101110

102111
NOTE: Offline builds must use the --url flag to ensure Gitian fetches only from local URLs. For example:
103112

104113
pushd ./gitian-builder
105-
./bin/gbuild --url dash=/path/to/dash,signature=/path/to/sigs {rest of arguments}
114+
./bin/gbuild --url documentchain=/path/to/documentchain,signature=/path/to/sigs {rest of arguments}
106115
popd
107116

108117
The gbuild invocations below <b>DO NOT DO THIS</b> by default.
109118

110-
### Build and sign Dash Core for Linux, Windows, and OS X:
119+
### Build and sign DMS Core for Linux, Windows, and macOS:
111120

112121
pushd ./gitian-builder
113-
./bin/gbuild --num-make 2 --memory 3000 --commit dash=v${VERSION} ../dash/contrib/gitian-descriptors/gitian-linux.yml
114-
./bin/gsign --signer "$SIGNER" --release ${VERSION}-linux --destination ../gitian.sigs/ ../dash/contrib/gitian-descriptors/gitian-linux.yml
115-
mv build/out/dash-*.tar.gz build/out/src/dash-*.tar.gz ../
116-
117-
./bin/gbuild --num-make 2 --memory 3000 --commit dash=v${VERSION} ../dash/contrib/gitian-descriptors/gitian-win.yml
118-
./bin/gsign --signer "$SIGNER" --release ${VERSION}-win-unsigned --destination ../gitian.sigs/ ../dash/contrib/gitian-descriptors/gitian-win.yml
119-
mv build/out/dash-*-win-unsigned.tar.gz inputs/dash-win-unsigned.tar.gz
120-
mv build/out/dash-*.zip build/out/dash-*.exe ../
121-
122-
./bin/gbuild --num-make 2 --memory 3000 --commit dash=v${VERSION} ../dash/contrib/gitian-descriptors/gitian-osx.yml
123-
./bin/gsign --signer "$SIGNER" --release ${VERSION}-osx-unsigned --destination ../gitian.sigs/ ../dash/contrib/gitian-descriptors/gitian-osx.yml
124-
mv build/out/dash-*-osx-unsigned.tar.gz inputs/dash-osx-unsigned.tar.gz
125-
mv build/out/dash-*.tar.gz build/out/dash-*.dmg ../
122+
./bin/gbuild --num-make 2 --memory 3000 --commit documentchain=v${VERSION} ../documentchain/contrib/gitian-descriptors/gitian-linux.yml
123+
./bin/gsign --signer "$SIGNER" --release ${VERSION}-linux --destination ../gitian.sigs/ ../documentchain/contrib/gitian-descriptors/gitian-linux.yml
124+
mv build/out/dms-*.tar.gz build/out/src/dms-*.tar.gz ../
125+
126+
./bin/gbuild --num-make 2 --memory 3000 --commit documentchain=v${VERSION} ../documentchain/contrib/gitian-descriptors/gitian-win.yml
127+
./bin/gsign --signer "$SIGNER" --release ${VERSION}-win-unsigned --destination ../gitian.sigs/ ../documentchain/contrib/gitian-descriptors/gitian-win.yml
128+
mv build/out/dms-*-win-unsigned.tar.gz inputs/dms-win-unsigned.tar.gz
129+
mv build/out/dms-*.zip build/out/dms-*.exe ../
130+
131+
./bin/gbuild --num-make 2 --memory 3000 --commit documentchain=v${VERSION} ../documentchain/contrib/gitian-descriptors/gitian-osx.yml
132+
./bin/gsign --signer "$SIGNER" --release ${VERSION}-osx-unsigned --destination ../gitian.sigs/ ../documentchain/contrib/gitian-descriptors/gitian-osx.yml
133+
mv build/out/dms-*-osx-unsigned.tar.gz inputs/dms-osx-unsigned.tar.gz
134+
mv build/out/dms-*.tar.gz build/out/dms-*.dmg ../
126135
popd
127136

128137
Build output expected:
129138

130-
1. source tarball (`dash-${VERSION}.tar.gz`)
131-
2. linux 32-bit and 64-bit dist tarballs (`dash-${VERSION}-linux[32|64].tar.gz`)
132-
3. windows 32-bit and 64-bit unsigned installers and dist zips (`dash-${VERSION}-win[32|64]-setup-unsigned.exe`, `dash-${VERSION}-win[32|64].zip`)
133-
4. OS X unsigned installer and dist tarball (`dash-${VERSION}-osx-unsigned.dmg`, `dash-${VERSION}-osx64.tar.gz`)
139+
1. source tarball (`dms-${VERSION}.tar.gz`)
140+
2. linux 32-bit and 64-bit dist tarballs (`dms-${VERSION}-linux[32|64].tar.gz`)
141+
3. windows 32-bit and 64-bit unsigned installers and dist zips (`dms-${VERSION}-win[32|64]-setup-unsigned.exe`, `dms-${VERSION}-win[32|64].zip`)
142+
4. macOS unsigned installer and dist tarball (`dms-${VERSION}-osx-unsigned.dmg`, `dms-${VERSION}-osx64.tar.gz`)
134143
5. Gitian signatures (in `gitian.sigs/${VERSION}-<linux|{win,osx}-unsigned>/(your Gitian key)/`)
135144

136145
### Verify other gitian builders signatures to your own. (Optional)
137146

138147
Add other gitian builders keys to your gpg keyring, and/or refresh keys.
139148

140-
gpg --import dash/contrib/gitian-keys/*.pgp
149+
gpg --import documentchain/contrib/gitian-keys/*.pgp
141150
gpg --refresh-keys
142151

143152
Verify the signatures
144153

145154
pushd ./gitian-builder
146-
./bin/gverify -v -d ../gitian.sigs/ -r ${VERSION}-linux ../dash/contrib/gitian-descriptors/gitian-linux.yml
147-
./bin/gverify -v -d ../gitian.sigs/ -r ${VERSION}-win-unsigned ../dash/contrib/gitian-descriptors/gitian-win.yml
148-
./bin/gverify -v -d ../gitian.sigs/ -r ${VERSION}-osx-unsigned ../dash/contrib/gitian-descriptors/gitian-osx.yml
155+
./bin/gverify -v -d ../gitian.sigs/ -r ${VERSION}-linux ../documentchain/contrib/gitian-descriptors/gitian-linux.yml
156+
./bin/gverify -v -d ../gitian.sigs/ -r ${VERSION}-win-unsigned ../documentchain/contrib/gitian-descriptors/gitian-win.yml
157+
./bin/gverify -v -d ../gitian.sigs/ -r ${VERSION}-osx-unsigned ../documentchain/contrib/gitian-descriptors/gitian-osx.yml
149158
popd
150159

151160
### Next steps:
@@ -160,28 +169,28 @@ Commit your signature to gitian.sigs:
160169
git push # Assuming you can push to the gitian.sigs tree
161170
popd
162171

163-
Codesigner only: Create Windows/OS X detached signatures:
172+
Codesigner only: Create Windows/macOS detached signatures:
164173
- Only one person handles codesigning. Everyone else should skip to the next step.
165-
- Only once the Windows/OS X builds each have 3 matching signatures may they be signed with their respective release keys.
174+
- Only once the Windows/macOS builds each have 3 matching signatures may they be signed with their respective release keys.
166175

167176
Codesigner only: Sign the osx binary:
168177

169-
transfer dashcore-osx-unsigned.tar.gz to osx for signing
170-
tar xf dashcore-osx-unsigned.tar.gz
178+
transfer dmscore-osx-unsigned.tar.gz to osx for signing
179+
tar xf dmscore-osx-unsigned.tar.gz
171180
./detached-sig-create.sh -s "Key ID" -o runtime
172181
Enter the keychain password and authorize the signature
173182
Move signature-osx.tar.gz back to the gitian host
174183

175184
Codesigner only: Sign the windows binaries:
176185

177-
tar xf dashcore-win-unsigned.tar.gz
186+
tar xf dmscore-win-unsigned.tar.gz
178187
./detached-sig-create.sh -key /path/to/codesign.key
179188
Enter the passphrase for the key when prompted
180189
signature-win.tar.gz will be created
181190

182191
Codesigner only: Commit the detached codesign payloads:
183192

184-
cd ~/dashcore-detached-sigs
193+
cd ~/documentchain-detached-sigs
185194
checkout the appropriate branch for this release series
186195
rm -rf *
187196
tar xf signature-osx.tar.gz
@@ -191,31 +200,31 @@ Codesigner only: Commit the detached codesign payloads:
191200
git tag -s v${VERSION} HEAD
192201
git push the current branch and new tag
193202

194-
Non-codesigners: wait for Windows/OS X detached signatures:
203+
Non-codesigners: wait for Windows/macOS detached signatures:
195204

196-
- Once the Windows/OS X builds each have 3 matching signatures, they will be signed with their respective release keys.
197-
- Detached signatures will then be committed to the [dash-detached-sigs](https://github.com/dashpay/dash-detached-sigs) repository, which can be combined with the unsigned apps to create signed binaries.
205+
- Once the Windows/macOS builds each have 3 matching signatures, they will be signed with their respective release keys.
206+
- Detached signatures will then be committed to the [documentchain-detached-sigs](https://github.com/Krekeler/documentchain-detached-sigs) repository, which can be combined with the unsigned apps to create signed binaries.
198207

199-
Create (and optionally verify) the signed OS X binary:
208+
Create (and optionally verify) the signed macOS binary:
200209

201210
pushd ./gitian-builder
202-
./bin/gbuild -i --commit signature=v${VERSION} ../dash/contrib/gitian-descriptors/gitian-osx-signer.yml
203-
./bin/gsign --signer "$SIGNER" --release ${VERSION}-osx-signed --destination ../gitian.sigs/ ../dash/contrib/gitian-descriptors/gitian-osx-signer.yml
204-
./bin/gverify -v -d ../gitian.sigs/ -r ${VERSION}-osx-signed ../dash/contrib/gitian-descriptors/gitian-osx-signer.yml
205-
mv build/out/dash-osx-signed.dmg ../dash-${VERSION}-osx.dmg
211+
./bin/gbuild -i --commit signature=v${VERSION} ../documentchain/contrib/gitian-descriptors/gitian-osx-signer.yml
212+
./bin/gsign --signer "$SIGNER" --release ${VERSION}-osx-signed --destination ../gitian.sigs/ ../documentchain/contrib/gitian-descriptors/gitian-osx-signer.yml
213+
./bin/gverify -v -d ../gitian.sigs/ -r ${VERSION}-osx-signed ../documentchain/contrib/gitian-descriptors/gitian-osx-signer.yml
214+
mv build/out/dms-osx-signed.dmg ../dms-${VERSION}-osx.dmg
206215
popd
207216

208217
Create (and optionally verify) the signed Windows binaries:
209218

210219
pushd ./gitian-builder
211-
./bin/gbuild -i --commit signature=v${VERSION} ../dash/contrib/gitian-descriptors/gitian-win-signer.yml
212-
./bin/gsign --signer "$SIGNER" --release ${VERSION}-win-signed --destination ../gitian.sigs/ ../dash/contrib/gitian-descriptors/gitian-win-signer.yml
213-
./bin/gverify -v -d ../gitian.sigs/ -r ${VERSION}-win-signed ../dash/contrib/gitian-descriptors/gitian-win-signer.yml
214-
mv build/out/dash-*win64-setup.exe ../dash-${VERSION}-win64-setup.exe
215-
mv build/out/dash-*win32-setup.exe ../dash-${VERSION}-win32-setup.exe
220+
./bin/gbuild -i --commit signature=v${VERSION} ../documentchain/contrib/gitian-descriptors/gitian-win-signer.yml
221+
./bin/gsign --signer "$SIGNER" --release ${VERSION}-win-signed --destination ../gitian.sigs/ ../documentchain/contrib/gitian-descriptors/gitian-win-signer.yml
222+
./bin/gverify -v -d ../gitian.sigs/ -r ${VERSION}-win-signed ../documentchain/contrib/gitian-descriptors/gitian-win-signer.yml
223+
mv build/out/dms-*win64-setup.exe ../dms-${VERSION}-win64-setup.exe
224+
mv build/out/dms-*win32-setup.exe ../dms-${VERSION}-win32-setup.exe
216225
popd
217226

218-
Commit your signature for the signed OS X/Windows binaries:
227+
Commit your signature for the signed macOS/Windows binaries:
219228

220229
pushd gitian.sigs
221230
git add ${VERSION}-osx-signed/"${SIGNER}"
@@ -234,23 +243,23 @@ sha256sum * > SHA256SUMS
234243

235244
The list of files should be:
236245
```
237-
dash-${VERSION}-aarch64-linux-gnu.tar.gz
238-
dash-${VERSION}-arm-linux-gnueabihf.tar.gz
239-
dash-${VERSION}-i686-pc-linux-gnu.tar.gz
240-
dash-${VERSION}-x86_64-linux-gnu.tar.gz
241-
dash-${VERSION}-osx64.tar.gz
242-
dash-${VERSION}-osx.dmg
243-
dash-${VERSION}.tar.gz
244-
dash-${VERSION}-win32-setup.exe
245-
dash-${VERSION}-win32.zip
246-
dash-${VERSION}-win64-setup.exe
247-
dash-${VERSION}-win64.zip
246+
dms-${VERSION}-aarch64-linux-gnu.tar.gz
247+
dms-${VERSION}-arm-linux-gnueabihf.tar.gz
248+
dms-${VERSION}-i686-pc-linux-gnu.tar.gz
249+
dms-${VERSION}-x86_64-linux-gnu.tar.gz
250+
dms-${VERSION}-osx64.tar.gz
251+
dms-${VERSION}-osx.dmg
252+
dms-${VERSION}.tar.gz
253+
dms-${VERSION}-win32-setup.exe
254+
dms-${VERSION}-win32.zip
255+
dms-${VERSION}-win64-setup.exe
256+
dms-${VERSION}-win64.zip
248257
```
249258
The `*-debug*` files generated by the Gitian build contain debug symbols
250259
for troubleshooting by developers. It is assumed that anyone that is interested
251260
in debugging can run Gitian to generate the files for themselves. To avoid
252261
end-user confusion about which file to pick, as well as save storage
253-
space *do not upload these to the dash.org server*.
262+
space *do not upload these to the documentchain.org server*.
254263

255264
- GPG-sign it, delete the unsigned file:
256265
```
@@ -260,20 +269,9 @@ rm SHA256SUMS
260269
(the digest algorithm is forced to sha256 to avoid confusion of the `Hash:` header that GPG adds with the SHA256 used for the files)
261270
Note: check that SHA256SUMS itself doesn't end up in SHA256SUMS, which is a spurious/nonsensical entry.
262271

263-
- Upload zips and installers, as well as `SHA256SUMS.asc` from last step, to the dash.org server
264-
265-
- Update dash.org
266-
267-
- Announce the release:
268-
269-
- Release on Dash forum: https://www.dash.org/forum/topic/official-announcements.54/
270-
271-
- Optionally Discord, twitter, reddit /r/Dashpay, ... but this will usually sort out itself
272-
273-
- Notify flare so that he can start building [the PPAs](https://launchpad.net/~dash.org/+archive/ubuntu/dash)
274-
275-
- Archive release notes for the new version to `doc/release-notes/` (branch `master` and branch of the release)
276-
277-
- Create a [new GitHub release](https://github.com/dashpay/dash/releases/new) with a link to the archived release notes.
272+
### Announce the release:
278273

279-
- Celebrate
274+
* Update news and timeline on documentchain.org
275+
* Archive release notes for the new version to `doc/release-notes/dms/` (branch `master` and branch of the release)
276+
* Create a [new GitHub release](https://github.com/Krekeler/documentchain/releases/new) with a link to the archived release notes
277+
* Discord, twitter, press report, ...

0 commit comments

Comments
 (0)