Skip to content

Versioning and release procedure

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

Versioning

AVR-LibC uses a two-dot version numbering.

  • Leftmost major version number is bumped if the API changes in incompatible ways.
  • Middle minor version number is bumped for each new main release.
  • Rightmost revision number is only bumped if there is a need for urgent bugfixes upon a previous dot-zero main release.

Release procedure

Prepare the release

Update version info

  • configure.ac:
  • blank out avr_libc_revision_suffix (minor version should have been bumped already)
  • bump avr_libc_reldate
  • NEWS – "changes since " => "changes in ", bump release
  • git commit -a

Run autotools build

  • ./bootstrap
  • ./configure --build=``./config.guess`` --host=avr --enable-doc – also prepare for docs
  • make distcheck – on *BSD, use GNU make
  • result: avr-libc-version.tar.bz2

Build docs

  • cd doc/api
  • make – on *BSD, use GNU make
  • result: avr-libc-user-manual-_version_.pdf, avr-libc-user-manual-_version_/
  • keep them somewhere for later

2. Do the release

If all went well so far:

Tag and push it

  • git tag avr-libc-newvers-release (use underscores between numbers)
  • git push; git push --tags

Verify and sign the release archives

  • gpg --sign --detach for the source archive (.tar.bz2)

Upload

  • go to Github "code" page
  • press "Create a new release"
  • select appropriate tag
  • set title to "AVR-LibC newvers released"
  • a bit of description
  • select the release tarball and GPG signature for uploading
  • publish release
  • Github also adds "Source code" archives, based on the tag chosen

3. Post-release actions

Update version info for post-release

  • configure.ac
    • set avr_libc_revision_suffix to git
    • bump avr_libc_reldate again
    • bump avr_libc_minor
  • 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
  • git merge main
  • cp LICENSE docs/LICENSE.txt
  • cd doc/api; tar -cjf avr-libc-user-manual-version.tar.bz2 avr-libc-user-manual-version; cd ../..
  • cp doc/api/avr-libc-user-manual-version.tar.bz2 docs
  • cp doc/api/avr-libc-user-manual-version.pdf docs
  • cd docs; tar xf avr-libc-user-manual-version.tar.bz2; cd ..
  • git add -f docs/avr-libc-user-manual-version*
  • $EDITOR docs/index.html – include new documentation, update link target of "Most recent" entry
  • git add docs/index.html; git commit; git push
  • git checkout main – just don't forget to switch away from the docs branch