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