altos: Add config values for tracker start motion limits
[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         - update the version in configure.ac
11         git log > ChangeLog
12         git commit -a
13
14         - make absolutely sure checked-out tree is "clean" 
15         - make absolutely sure the pdclib/ submodule is on the master branch,
16           up to date, and "clean"
17
18         - if this is an x.y release, then:
19                 git checkout -b branch-<version>
20                 git tag -a <version>
21                 - edit .git/gbp.conf to use branch-<version> as upstream
22
23         - if this is an x.y.z release, then:
24                 git checkout branch-<version>           # the x.y parts only
25                 git merge master
26                 git tag -a <version>                    # full x.y.z version
27
28         git checkout debian
29         git merge branch-<version>
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 --git-submodules \
39                         --git-upstream-branch=branch-<version> \ # eg 1.3
40                         --git-upstream-tag=<version>             # eg 1.3.1
41                 pristine-tar commit \
42                         ../build-area/altos_<version>.orig.tar.gz \
43                         branch-<version>
44           else if this is not a -1 release
45                 git-buildpackage --git-submodules
46
47         git tag debian/<version>
48
49         - at this point we have packages in ~/debian/build-area/altos, now
50           we move on to the non-Debian part of the release process
51
52         make distclean
53
54         ./autogen.sh --with-fat-dir=/home/bdale/web/altusmetrum/AltOS/releases
55         make && make fat
56
57                 this pushes packages for each platform to web site
58
59         # store a stable copy of ARM binaries for production use
60         cp src/easymini-v1.0/*.elf \
61            src/telemega-v1.0/*.elf \
62            src/telemetrum-v2.0/*.elf \
63            ~/altusmetrumllc/Binaries/
64         cp src/easymini-v1.0/flash-loader/*.elf \
65            src/telemega-v1.0/flash-loader/*.elf \
66            src/telemetrum-v2.0/flash-loader/*.elf \
67            ~/altusmetrumllc/Binaries/loaders/
68         (cd ~/altusmetrumllc ; git commit -a) 
69
70         - copy the relevant release notes file from doc/ to 
71             /home/bdale/web/altusmetrum/AltOS/releases/<rev>
72
73         - create /home/bdale/web/altusmetrum/MicroPeak/releases/<rev>,
74           and move the MicroPeak installers from AltOS/releases to there
75                 
76         - go edit ~/web/altusmetrum/AltOS/releases/<rev>.mdwn and 
77           /home/bdale/web/altusmetrum/MicroPeak/releases/<rev>.mdwn, to 
78           include release date and explicit ref to dir contents so the 
79           web pages shows versioned links, commit and push
80
81         (cd doc ; make publish)
82
83                 this pushes fresh documents to the web site
84
85         sudo debian/rules clean
86         git push origin master branch-<version> debian pristine-tar
87         git push --tags
88
89                 push commits and leave the build tree in an uncluttered state
90
91 Testing before a release
92
93         To verify that a build works, the following need to be checked
94         on each platform:
95
96         1) Install package
97
98         2) Connect TM *and* TD devices. Verify that you can Monitor
99            Flight from the TD and Configure Telemetrum from the TM.
100
101         3) Replay Flight, using your favorite .eeprom file. Check
102            each tab, especially the 'Site Map' tab. Make sure the
103            sound works.
104
105         4) Graph Data. Graph a favorite .eeprom file. Make sure you
106            can zoom in on some region of the graph.