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