Skip to content

Release Procedure

Jörg Wunsch edited this page Jun 9, 2024 · 10 revisions

1. Prepare the release

Update version info

  • CMakeLists.txt – for CMake
  • NEWS – "changes since " => "changes in "
  • git commit -a

Check autotools build

  • cd src
  • ./bootstrap
  • ./configure --enable-doc – also prepare for docs
  • make distcheck – on *BSD, use GNU make (or run make -k)
  • result: avrdude-version.tar.gz

Build docs

  • cd [src/]doc
  • make – on *BSD, use GNU make
  • result: avrdude.pdf, avrdude-html/
  • keep them somewhere for later

run CMake build

  • cd ../..
  • ./build.sh
  • this is already tested by CI anyway

2. Do the release

If all went well so far:

Tag and push it

  • git tag vnewvers – always start with a lowercase letter v, followed by major number dot minor number
  • git push --tags
  • CI should prepare Github release now, and publish it

3. Post-release actions

Update version info for post-release

  • src/configure.ac (add date tag after release name)
  • NEWS: add template lines for "changes since "
  • git commit -a
  • git push

Update docs

Official documentation is located on Github pages, and automatically updated there from a branch named onlinedocs.

  • git checkout onlinedocs
  • mkdir docs/newrelease – no v here, just major dot minor number
  • cd docs/newrelease
  • cp ../../src/doc/avrdude-html/* . – the docs previously built
  • cp ../../src/doc/avrdude.pdf .
  • cd ..
  • $EDITOR index.html
  • add links to new newvers/avrdude.html and newvers/avrdude.pdf
  • git add newvers
  • git add index.html
  • git commit
  • git push
  • cd ..
  • git checkout main – just don't forget to switch away from the docs branch

Verify and sign the release archives

  • download source archives (.tar.gz and .zip) from Github release area
  • verify they are correct (unpack, and compare against local tree ...)
  • gpg --sign --detach for both archives
  • include GPG signatures in release assets

Increment libavrdude version

  • $EDITOR src/CMakeLists.txt # for VERSION and SOVERSION
  • $EDITOR src/Makefile.am # for libavrdude_la_LDFLAGS
  • git commit src/CMakeLists.txt src/Makefile.am -m"Increment libavrdude version"
  • git push