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