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