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