altoslib: create eeprom download thread before telling monitor about it
[fw/altos] / Releasing
1 These are Bdale's notes on how to do a release.
2
3         - make sure there's a suitable ARM Cortex toolchain in /opt/cortex!
4
5         git checkout master
6
7         - make sure there is a doc/release-notes-<version>.xsl
8         - make sure that doc/altusmetrum.xsl has the right copyright year,
9           and add release to the revision history at the front (release notes
10           will be pulled in automatically)
11
12         - update the version in configure.ac
13         git log > ChangeLog
14         git commit -a
15         - make absolutely sure checked-out tree is "clean" 
16         - if this is an x.y release, then:
17                 git checkout -b branch-<version>
18                 git tag -a <version>
19         - if this is an x.y.z release, then:
20                 git checkout branch-<version>           # the x.y parts only
21                 git merge master
22                 git tag -a <version>                    # full x.y.z version
23
24         - edit .git/gbp.conf to use branch-<version> as upstream if needed
25
26         git checkout debian
27         git merge branch-<version>
28
29         - verify debian/changelog is "clean" ending in last release version
30         - craft a suitable debian/changelog entry, possibly using:
31         git-dch --release --new-version=<version>-1 --multimaint-merge
32
33         git commit -n debian/changelog -m "update changelog for Debian build"
34
35         - if this is a -1 release, then
36                 git-buildpackage --git-no-pristine-tar 
37                 pristine-tar commit \
38                         ../build-area/altos/altos_<version>.orig.tar.gz \
39                         branch-<version>
40           else if this is not a -1 release
41                 git-buildpackage
42
43         git tag debian/<version>
44
45         - at this point we have packages in ~/debian/build-area/altos, now
46           we move on to the non-Debian part of the release process
47
48         make distclean
49
50         ./autogen.sh --with-fat-dir=/home/bdale/web/altusmetrum/AltOS/releases
51         make && make fat
52
53                 this pushes packages for each platform to web site
54
55         - copy the relevant release notes file from doc/ to 
56             /home/bdale/web/altusmetrum/AltOS/releases/<rev>
57
58         - go edit ~/web/altusmetrum/AltOS/releases/<rev>.mdwn to include
59           release date and explicit ref to dir contents so the AltOS page
60           shows versioned links, commit and push
61
62         (cd doc ; make publish)
63
64                 this pushes fresh documents to the web site
65
66         sudo debian/rules clean
67         git push origin master branch-1.1 debian
68         git push --tags
69
70                 push commits and leave the build tree in an uncluttered state
71
72 Testing before a release
73
74         To verify that a build works, the following need to be checked
75         on each platform:
76
77         1) Install package
78
79         2) Connect TM *and* TD devices. Verify that you can Monitor
80            Flight from the TD and Configure Telemetrum from the TM.
81
82         3) Replay Flight, using your favorite .eeprom file. Check
83            each tab, especially the 'Site Map' tab. Make sure the
84            sound works.
85
86         4) Graph Data. Graph a favorite .eeprom file. Make sure you
87            can zoom in on some region of the graph.