summaryrefslogtreecommitdiff
path: root/docs/release_checklist.wiki
blob: 7c9dae65bc9b2cf558e7173cfddba1e6ea057fcc (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
88
89
= Bitmask Release Checklist =

  == CI check ==
  * [ ] Check that all tests are passing!
  * [ ] Fix any broken tests.

  == Version bumps and Tagging ==
  * [ ] Update pkg/next-release
  * [ ] Update release-notes.rst in leap.bitmask if needed.
  * [ ] Update version in bitmask_client/pkg/linux/bitmask-root if needed.
  
  * [ ] Tag everything. Should be done for the following packages, in order:
      * [ ] 1. leap.common
      * [ ] 2. leap.keymanager
      * [ ] 3. leap.soledad
      * [ ] 4. leap.mail
      * [ ] 5. leap.bitmask
      * [ ] 6. leap.mx

    * NOTE: It's assumed that origin is the leap.se repo
     
    * [ ] export version: export RELEASE=0.9.0
    * [ ] git fetch origin
    * [ ] git tag -l, and see the latest tagged version (unless it's not a minor version bump, in which case, just bump to it)
    * [ ] git checkout `release/0.9.x`
	- NOTE: the release branch is created when the first release candidate
	  is tagged, after that the bugfixes and features that are meant to be
	  shipped with the specific version that we are targetting are merged in that branch
    * [ ] git checkout -b release/$RELEASE
 	* [ ] (maybe) cherry-pick specific commits
	* [ ] (maybe) add special fixes for this release

    * [ ] Review pkg/requirements.pip for everything, update if needed (that's why the order).
          - See whatever has been introduced in changes/VERSION_COMPAT
          - Reset changes/VERSION_COMPAT
    * [ ] git commit -am "Update requirements file."

    * [ ] Fold in changes files into the CHANGELOG
          - NOTE: For leap.soledad, the CHANGELOG entries should be divided per package (common, client, server). See older releases for reference.
          - Helper bash line: for i in $(ls changes); do cat changes/$i; echo; done
    * [ ] git rm changes/feature*; git rm changes/bug*
    * [ ] git commit -m "Fold in changes."

    * [ ] git tag --sign $RELEASE -m "Tag leap.bitmask version $RELEASE"

    * If everything went ok, push the changes, and merge back into master&develop:
    	* [ ] git push origin release/0.9.x
        * [ ] git push origin $RELEASE
    	* [ ] git checkout master && git pull origin master && git merge --no-ff $RELEASE --no-edit
    	* [ ] git checkout develop && git merge $RELEASE && git push origin develop

  == Bundles ==
  * [ ] Build and upload bundles
    * [ ] Use 'make pyinst-linux' to build bundles.
    * [ ] Sign: make pyinst-sign
    * [ ] Upload bundle and signature to downloads.leap.se/client/<os>/Bitmask-<os>-<ver>.(tar.bz2,dmg,zip)
      * [ ] make pyinst-upload
    * [ ] Update symbolic link for latest upload and signature:
    	* [ ] ~/public/client/Bitmask-<os>-latest
    	* [ ] ~/public/client/Bitmask-<os>-latest.asc

    === TUF: Relese candidate bundles: RC# (skipped for now) ===
	* [ ] Upload the TUF unstable repo
	* [ ] Upload bundle to staging for release-candidate
	* [ ] Sign the bundles, move it to client downloads (micah)
	* [ ] Update symlinks for -latest
	* [ ] Fix all show stoppers

    === TUF: Stable bundles (skipped for now) ===
	* [ ] Upload the TUF Stable Repo to staging
	* [ ] Upload bundle to staging for stable
	* [ ] move and sign the TUF repo (kwadro)
	* [ ] Sign the bundles, move it to client downloads (micah)
	* [ ] Update symlinks for -latest
  
  == Debian packages ==
  * TBD...
  
  == Pypi upload ==
  * [ ]  python setup.py sdist upload --sign -i kali@leap.se -r pypi

  == Announcing ==
  * [ ] Announce (use release-notes.rst)
    * [ ] Mail leap@lists.riseup.net
    * [ ] Twitter
    * [ ] Gnusocial
    * [ ] Post in leap.se
    * [ ] reddit
    * [ ] hackernews