Adding a product to the release Make sure the firmware and loader get built by default in src/Makefile Add the firmware to altosui/Makefile.am Add the firmware to altosui/altos-windows.nsi.in Add the firmware to telegps/Makefile.am Add the firmware to telegps/telegps-windows.nsi.in Add the firmware to Releasing These are Keith's notes on how to do a release - update the version and date in configure.ac if Bdale hasn't already - follow instructions in doc/RELNOTES - make sure there is a doc/release-notes-.inc - make sure doc/release-notes.inc points at that - make sure doc/Makefile points at that too - make sure that doc/altusmetrum-docinfo.xml has the right copyright year, and add release to the revision history at the front (release notes will be pulled in by release-notes.inc) These are Bdale's notes on how to do a release. - make sure build environment is up to date sudo cowbuilder --update - ensure i386 build support is available, and we have tools to build installers for Windows and Mac OS X sudo dpkg --add-architecture i386 sudo apt update sudo apt install gcc-multilib genisoimage nsis (need some mingw packages too, but not sure which offhand) - make sure ~/web/altusmetrum has no pending pullable commits git checkout master - update the version in configure.ac if Keith hasn't already - if this is an x.y release, then: git checkout -b branch- - if this is an x.y.z release, then: git checkout branch- # the x.y parts only - cherry-pick or merge appropriate content from master - make sure there is a doc/release-notes-.inc - make sure that doc/altusmetrum-docinfo.xml has the right copyright year, and add release to the revision history at the front (release notes will be pulled in automatically) - make absolutely sure checked-out tree is "clean" - make absolutely sure the pdclib/ submodule is on the master branch, up to date, and "clean" git log > ChangeLog git commit -a git tag -a # full x.y.z version - make sure .git/gbp.conf set to use branch- as upstream git checkout debian git merge branch- - verify debian/changelog is "clean" ending in last release version - craft a suitable debian/changelog entry, possibly using: gbp dch --release --multimaint-merge --new-version=-1 git commit -n debian/changelog -m "update changelog for Debian build" - if this is a -1 release, then gbp buildpackage --git-no-pristine-tar --git-submodules \ --git-upstream-branch=branch- \ # eg 1.3 --git-upstream-tag= # eg 1.3.1 pristine-tar commit \ ../build-area/altos_.orig.tar.gz \ branch- else if this is not a -1 release gbp buildpackage --git-submodules git tag debian/ - at this point we have packages in ~/debian/build-area/altos, now we move on to the non-Debian part of the release process make distclean (just to be sure, this should do nothing) ./autogen.sh --enable-multi-arch \ --with-fat-dir=/home/bdale/web/altusmetrum/ make && make fat - store a stable copy of ARM binaries for production use cp src/chaoskey-v1.0/{*.elf,*.ihx,*.bin} \ src/easymega-v1.0/{*.elf,*.ihx} \ src/easymega-v2.0/{*.elf,*.ihx} \ src/easymini-v1.0/{*.elf,*.ihx} \ src/easymini-v2.0/{*.elf,*.ihx} \ src/telebt-v3.0/{*.elf,*.ihx} \ src/telebt-v4.0/{*.elf,*.ihx} \ src/teledongle-v3.0/{*.elf,*.ihx} \ src/telegps-v1.0/{*.elf,*.ihx} \ src/telegps-v2.0/{*.elf,*.ihx} \ src/telemega-v1.0/{*.elf,*.ihx} \ src/telemega-v2.0/{*.elf,*.ihx} \ src/telemega-v3.0/{*.elf,*.ihx} \ src/telemetrum-v2.0/{*.elf,*.ihx} \ src/telemini-v3.0/{*.elf,*.ihx} \ src/telelco-v2.0/{*.elf,*.ihx} \ src/telefireeight-v1.0/{*.elf,*.ihx} \ ~/altusmetrumllc/Binaries/ cp src/chaoskey-v1.0/flash-loader/{*.elf,*.bin} \ src/easymega-v1.0/flash-loader/*.elf \ src/easymega-v2.0/flash-loader/*.elf \ src/easymini-v1.0/flash-loader/*.elf \ src/easymini-v2.0/flash-loader/{*.elf,*.bin} \ src/telebt-v3.0/flash-loader/*.elf \ src/telebt-v4.0/flash-loader/{*.elf,*.bin} \ src/teledongle-v3.0/flash-loader/*.elf \ src/telegps-v1.0/flash-loader/*.elf \ src/telegps-v2.0/flash-loader/{*.elf,*.bin} \ src/telemega-v1.0/flash-loader/*.elf \ src/telemega-v2.0/flash-loader/*.elf \ src/telemega-v3.0/flash-loader/*.elf \ src/telemetrum-v2.0/flash-loader/*.elf \ src/telemini-v3.0/flash-loader/{*.elf,*.bin} \ src/telelco-v2.0/flash-loader/*.elf \ src/telefireeight-v1.0/flash-loader/*.elf \ ~/altusmetrumllc/Binaries/loaders/ (cd ~/altusmetrumllc ; git add Binaries ; git commit -a) - remove previous versions (only keep latest release) (cd ~/altusmetrumllc ; git push) - Push new release to web site make fat-install (cd doc ; make publish) (cd ~/web/altusmetrum/ && \ git add */releases && git commit -m'Release ' && \ git push origin master) - upload the Debian package - clean up sudo debian/rules clean git push origin master branch- debian pristine-tar git push --tags Testing before a release To verify that a build works, the following need to be checked on each platform: 1) Install package 2) Connect TM *and* TD devices. Verify that you can Monitor Flight from the TD and Configure Telemetrum from the TM. 3) Replay Flight, using your favorite .eeprom file. Check each tab, especially the 'Site Map' tab. Make sure the sound works. 4) Graph Data. Graph a favorite .eeprom file. Make sure you can zoom in on some region of the graph.