altos: Add stm-vga demo project
[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            ~/altusmetrumllc/Binaries/
81         cp src/easymega-v1.0/flash-loader/*.elf \
82            src/easymini-v1.0/flash-loader/*.elf \
83            src/telebt-v3.0/flash-loader/*.elf \
84            src/teledongle-v3.0/flash-loader/*.elf \
85            src/telegps-v1.0/flash-loader/*.elf \
86            src/telemega-v1.0/flash-loader/*.elf \
87            src/telemega-v2.0/flash-loader/*.elf \
88            src/telemetrum-v2.0/flash-loader/*.elf \
89            ~/altusmetrumllc/Binaries/loaders/
90         (cd ~/altusmetrumllc ; git add Binaries ; git commit -a) 
91         (cd ~/altusmetrumllc ; git push) 
92
93         - copy the relevant release notes .html file from doc/ to 
94             /home/bdale/web/altusmetrum/AltOS/releases/<rev>
95
96         (cd ~/web/altusmetrum/AltOS/releases/<rev> ; rm *.tar.bz2)
97
98         - create /home/bdale/web/altusmetrum/MicroPeak/releases/<rev>,
99           and move the MicroPeak installers from AltOS/releases to there
100                 
101         - create /home/bdale/web/altusmetrum/TeleGPS/releases/<rev>,
102           and move the TeleGPS installers from AltOS/releases to there
103                 
104         - go edit ~/web/altusmetrum/AltOS/releases/<rev>.mdwn, 
105           /home/bdale/web/altusmetrum/MicroPeak/releases/<rev>.mdwn, and
106           /home/bdale/web/altusmetrum/TeleGPS/releases/<rev>.mdwn
107
108                 - make sure the Windows stuff is like 1-4-1, not 1.4.1!
109
110         (cd doc ; make publish)
111
112                 this pushes fresh documents to the web site
113
114         sudo debian/rules clean
115         git push origin master branch-<version> debian pristine-tar
116         git push --tags
117
118                 push commits and leave the build tree in an uncluttered state
119
120 Testing before a release
121
122         To verify that a build works, the following need to be checked
123         on each platform:
124
125         1) Install package
126
127         2) Connect TM *and* TD devices. Verify that you can Monitor
128            Flight from the TD and Configure Telemetrum from the TM.
129
130         3) Replay Flight, using your favorite .eeprom file. Check
131            each tab, especially the 'Site Map' tab. Make sure the
132            sound works.
133
134         4) Graph Data. Graph a favorite .eeprom file. Make sure you
135            can zoom in on some region of the graph.