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