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