source: installer/resources/checklist.md @ 471ff5b9

Last change on this file since 471ff5b9 was 471ff5b9, checked in by zzz <zzz@…>, 4 years ago

Fix distclean for deb builds
Deb build doc updates
Checklist updates
Deb 8 changelog

  • Property mode set to 100644
File size: 7.6 KB
Line 
1# Release checklist
2
3## One week before
4
5- Announce string freeze on #i2p-dev
6- Update local English po files: `ant poupdate`
7- Revert non-English changes if any
8- Push to Transifex: `tx push -s`
9- Make announcement on Transifex with checkin deadline
10
11
12## A day or two before
13
141. Write the release announcement and push to Transifex:
15
16  - Checkout i2p.newsxml branch
17    - See README for setup
18  - `./create_new_entry.sh`
19    - Entry href should be the in-net link to the release blog post
20  - `tx push -s`
21  - `mtn ci`
22
232. Write the draft blog post and push to Transifex:
24
25  - Checkout i2p.www branch
26  - Write draft release announcement - see i2p2www/blog/README for instructions
27    - Top content should be the same as the news entry
28  - `tx push -s`
29  - `mtn ci`
30
313. Make announcement on Transifex asking for news translation
32
33
34## On release day
35
36### Preparation
37
381. Ensure all translation updates are imported from Transifex
39
40  - Look for newly translated languages and resources on Transifex
41  - Add any new ones to .tx/config (use your own judgement on which to include
42    based on minimum translated percentage)
43  - `tx pull`
44  - `ant testcripts` to verify that all updated translations are valid
45  - For any invalid that break the test, fix up the po file manually, or fix on
46    tx and pull again, or (if new) comment out in .tx/config (add a comment why)
47    and delete the po file
48  - `mtn add` for any new po files
49  - `mtn ci` all changed po files, and .tx/config if changed
50
512. Sync with mtn.i2p2.i2p
52
533. Start with a clean checkout:
54
55    ```
56    mtn -d i2p.mtn co --branch=i2p.i2p /path/to/releasedir
57    ```
58
59  - You must build with Java 7 or higher, but ensure you also have the Java 6 JRE installed for the bootclasspath.
60    If you build with Java 8 or higher, you must also have the Java 7 JRE installed for the bootclasspath.
61
624. Create override.properties with (adjust as necessary):
63
64    ```
65    release.privkey.su3=/path/to/su3keystore.ks
66    release.gpg.keyid=0xnnnnnnnn
67    release.signer.su3=xxx@mail.i2p
68    build.built-by=xxx
69    javac.compilerargs=-bootclasspath /usr/lib/jvm/java-6-openjdk-amd64/jre/lib/rt.jar:/usr/lib/jvm/java-6-openjdk-amd64/jre/lib/jce.jar
70    javac.compilerargs7=-bootclasspath /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/rt.jar:/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/jce.jar
71    ```
72
735. Copy latest trust list _MTN/monotonerc from website or some other workspace
74
756. Change revision in:
76  - `history.txt`
77  - `installer/install.xml`
78  - `core/java/src/net/i2p/CoreVersion.java`
79  - `router/java/src/net/i2p/router/RouterVersion.java`
80    - (change to BUILD = 0 and EXTRA = "")
81
827. `mtn ci`
83
848. Review the complete diff from the last release:
85
86    ```
87    mtn diff -r t:i2p-0.9.(xx-1) > out.diff
88    vi out.diff
89    ```
90
919. Verify that no untrusted revisions were inadvertently blessed by a trusted party:
92
93    ```
94    mtn log --brief --no-graph --to t:i2p-0.9.(xx-1) | cut -d ' ' -f 2 | sort | uniq -c
95    ```
96
97### Build and test
98
991. `ant release`
100
101    > NOTE: These tasks are now automated by `ant release`
102    >
103    > Build and tag:
104    >
105    >     ant pkg
106    >
107    > Create signed update files with:
108    >
109    >     export I2P=~/i2p
110    >     java -cp $I2P/lib/i2p.jar net.i2p.crypto.TrustedUpdate sign i2pupdate.zip i2pupdate.sud /path/to/private.key 0.x.xx
111    >     java -cp $I2P/lib/i2p.jar net.i2p.crypto.TrustedUpdate sign i2pupdate200.zip i2pupdate.su2 /path/to/private.key 0.x.xx
112    >
113    > Verify signed update files with:
114    >
115    >     java -cp $I2P/lib/i2p.jar net.i2p.crypto.TrustedUpdate showversion i2pupdate.sud
116    >     java -cp $I2P/lib/i2p.jar net.i2p.crypto.TrustedUpdate verifysig i2pupdate.sud
117    >
118    > Make the source tarball:
119    >
120    >     Start with a clean checkout mtn -d i2p.mtn co --branch=i2p.i2p i2p-0.x.xx
121    >     Double-check trust list
122    >     tar cjf i2psource-0.x.xx.tar.bz2 --exclude i2p-0.x.xx/_MTN i2p-0.x.xx
123    >     mv i2p-0.x.xx.tar.bz2 i2p.i2p
124    >
125    > Rename some files:
126    >
127    >     mv i2pinstall.exe i2pinstall-0.x.xx.exe
128    >     mv i2pupdate.zip i2pupdate-0.x.xx.zip
129    >
130    > Generate hashes:
131    >
132    >     sha256sum i2p*0.x.xx.*
133    >     sha256sum i2pupdate.sud
134    >     sha256sum i2pupdate.su2
135    >
136    > Generate PGP signatures:
137    >
138    >     gpg -b i2pinstall-0.x xx.exe
139    >     gpg -b i2psource-0.x.xx.tar.bz2
140    >     gpg -b i2pupdate-0.x.xx.zip
141    >     gpg -b i2pupdate.sud
142    >     gpg -b i2pupdate.su2
143    >
144    > (end of tasks automated by 'ant release')
145
1462. Now test:
147  - Save the output about checksums, sizes, and torrents to a file
148    (traditionally `shasums.txt`)
149    - (edit timestamps to UTC if you care)
150  - Copy all the release files somewhere, make sure you have the same ones as last release
151  - Verify sha256sums for release files
152  - Check file sizes vs. previous release, shouldn't be smaller
153    - If the update includes GeoIP, it will be about 1MB bigger
154  - Unzip or list files from `i2pupdate.zip`, see if it looks right
155  - For either windows or linux installer: (probably should do both the first time)
156    - Rename any existing config dir (e.g. mv .i2p .i2p-save)
157    - Run installer, install to temp dir
158    - Look in temp dir, see if all the files are there
159    - Unplug ethernet / turn off wifi so RI doesn't leak
160    - `i2prouter start`
161    - Verify release number in console
162    - Verify welcome news
163    - Click through all the app, status, eepsite, and config pages, see if they look right
164    - Click through each of the translations, see if /console looks right
165    - Look for errors in /log (other than can't reseed errors)
166    - Look in config dir, see if all the files are there
167    - Shutdown
168    - Delete config dir
169    - Move saved config dir back
170    - Reconnect ethernet / turn wifi back on
171  - Load torrents in i2psnark on your production router, verify infohashes
172
1733. If all goes well, tag and push the release:
174
175    ```
176    mtn tag h: i2p-0.x.xx
177    mtn cert t:i2p-0.x.xx branch i2p.i2p.release
178    mtn push
179    ```
180
181### Distribute updates
182
1831. Update news with new version:
184  - Add magnet links, change release dates and release number in to old-format
185    news.xml, and distribute to news hosts (no longer necessary)
186  - In the i2p.newsxml branch, edit magnet links, release dates and release
187    number in data/releases.json, check in and push
188
1892. Add i2pupdate-0.9.xx.su3 torrent to tracker2.postman.i2p and start seeding
190
1913. Notify the following people:
192  - All in-network update hosts
193  - PPA maintainer
194  - news.xml maintainer
195  - backup news.xml maintainer
196  - website files maintainer
197
1984. Update Trac:
199  - Add milestone and version dates
200  - Increment milestone and version defaults
201
2025. Wait for a few update hosts to be ready
203
2046. Tell news hosts to flip the switch
205
2067. Monitor torrent for activity to verify that the new news is now live
207
208
209### Notify release
210
2111. Upload files to launchpad release (download mirror)
212   (see debian-alt/doc/launchpad.txt for instructions)
213
2142. Wait for files to be updated on download server
215   Verify at http://download.i2p2.no/releases/
216
2173. Website files to change:
218  - Sync with mtn.i2p-projekt.i2p
219  - `i2p2www/static/hosts.txt` if it changed (copy from i2p.i2p mtn branch)
220  - `i2p2www/__init__.py` (release number)
221  - `i2p2www/pages/downloads/list.html` (release signer, if changed)
222  - `i2p2www/pages/downloads/macros` (checksums)
223  - `i2p2www/static/news/news.xml` (no longer necessary)
224  - Sync with mtn.i2p-projekt.i2p
225
2264. Announce on:
227  - #i2p, #i2p-dev (also on Freenode side)
228  - forum.i2p
229  - Twitter
230
2315. Launchpad builds
232   (see debian-alt/doc/launchpad.txt for instructions)
233
2346. Debian builds
235   (see debian-alt/doc/debian-build.txt for instructions)
236
2377. Announce Launchpad and Debian builds on Twitter
238
2398. Notify Tails that new Debian builds are available
Note: See TracBrowser for help on using the repository browser.