Merge branch 'master' of ssh://git.gag.com/scm/git/fw/altos
[fw/altos] / Releasing
1 These are Bdale's notes on how to do a release.
2
3         git checkout master
4
5         - make sure the Google Maps API key is in the build chroot
6                 mkdir -p /var/cache/pbuilder/base.cow/opt/google
7                 cp ~/altusmetrumllc/google-maps-api-key \
8                         /var/cache/pbuilder/base.cow/opt/google/maps-api-key
9         - make sure there is a doc/release-notes-<version>.xsl
10         - make sure that doc/altusmetrum.xsl has the right copyright year,
11           and add release to the revision history at the front (release notes
12           will be pulled in automatically)
13
14         - get a Google Maps API key and install it in
15           ~/altusmetrumllc/google-maps-api-key. If you don't have a
16           key, the app will still work, but downloading map tiles will
17           be slow, and you will only be able to download a limited
18           number per day.
19
20         - update the version in configure.ac
21         git log > ChangeLog
22         git commit -a
23
24         - make absolutely sure checked-out tree is "clean" 
25         - make absolutely sure the pdclib/ submodule is on the master branch,
26           up to date, and "clean"
27
28         - if this is an x.y release, then:
29                 git checkout -b branch-<version>
30                 git tag -a <version>
31                 - edit .git/gbp.conf to use branch-<version> as upstream
32
33         - if this is an x.y.z release, then:
34                 git checkout branch-<version>           # the x.y parts only
35                 git merge master
36                 git tag -a <version>                    # full x.y.z version
37
38         git checkout debian
39         git merge branch-<version>
40
41         - verify debian/changelog is "clean" ending in last release version
42         - craft a suitable debian/changelog entry, possibly using:
43         git-dch --release --new-version=<version>-1 --multimaint-merge
44
45         git commit -n debian/changelog -m "update changelog for Debian build"
46
47         - if this is a -1 release, then
48                 git-buildpackage --git-no-pristine-tar --git-submodules \
49                         --git-upstream-branch=branch-<version> \ # eg 1.3
50                         --git-upstream-tag=<version>             # eg 1.3.1
51                 pristine-tar commit \
52                         ../build-area/altos_<version>.orig.tar.gz \
53                         branch-<version>
54           else if this is not a -1 release
55                 git-buildpackage --git-submodules
56
57         git tag debian/<version>
58
59         - at this point we have packages in ~/debian/build-area/altos, now
60           we move on to the non-Debian part of the release process
61
62         make distclean
63
64         ./autogen.sh --with-fat-dir=/home/bdale/web/altusmetrum/AltOS/releases
65         make && make fat
66
67                 this pushes packages for each platform to web site
68
69         # store a stable copy of ARM binaries for production use
70         cp src/easymini-v1.0/*.elf \
71            src/telegps-v1.0/*.elf \
72            src/telemega-v1.0/*.elf \
73            src/telemetrum-v2.0/*.elf \
74            ~/altusmetrumllc/Binaries/
75         cp src/easymini-v1.0/flash-loader/*.elf \
76            src/telegps-v1.0/flash-loader/*.elf \
77            src/telemega-v1.0/flash-loader/*.elf \
78            src/telemetrum-v2.0/flash-loader/*.elf \
79            ~/altusmetrumllc/Binaries/loaders/
80         (cd ~/altusmetrumllc ; git add Binaries ; git commit -a) 
81
82         - copy the relevant release notes file from doc/ to 
83             /home/bdale/web/altusmetrum/AltOS/releases/<rev>
84
85         - create /home/bdale/web/altusmetrum/MicroPeak/releases/<rev>,
86           and move the MicroPeak installers from AltOS/releases to there
87                 
88         - create /home/bdale/web/altusmetrum/TeleGPS/releases/<rev>,
89           and move the MicroPeak installers from AltOS/releases to there
90                 
91         - go edit ~/web/altusmetrum/AltOS/releases/<rev>.mdwn, 
92           /home/bdale/web/altusmetrum/MicroPeak/releases/<rev>.mdwn, and
93           /home/bdale/web/altusmetrum/TeleGPS/releases/<rev>.mdwn, to 
94           include release date and explicit ref to dir contents so the 
95           web pages shows versioned links, commit and push
96
97         (cd doc ; make publish)
98
99                 this pushes fresh documents to the web site
100
101         sudo debian/rules clean
102         git push origin master branch-<version> debian pristine-tar
103         git push --tags
104
105                 push commits and leave the build tree in an uncluttered state
106
107 Testing before a release
108
109         To verify that a build works, the following need to be checked
110         on each platform:
111
112         1) Install package
113
114         2) Connect TM *and* TD devices. Verify that you can Monitor
115            Flight from the TD and Configure Telemetrum from the TM.
116
117         3) Replay Flight, using your favorite .eeprom file. Check
118            each tab, especially the 'Site Map' tab. Make sure the
119            sound works.
120
121         4) Graph Data. Graph a favorite .eeprom file. Make sure you
122            can zoom in on some region of the graph.