Libav/ReleaseHowto

From MultimediaWiki
Jump to navigation Jump to search

LibavReleaseHowto

These are more or less personal notes how Libav releases and point release tarballs are rolled.

Checklist for release preparation

  • If necessary, create a new release tracking bug
  • (constantly) Backport interesting patches from trunk
  • check the bugzilla release tracking bug
  • update Changelog, use 'git log --oneline' for inspiration
  • Write/Review News entry for http://libav.org

Roll, sign and publish tarballs

  • For 0.6 and later, update the VERSION file:

echo '$VERSION' > VERSION
git add VERSION
git commit -m"Update Version identification for $(cat VERSION)"

  • push the changelog to repository
    • git push ...
  • create an annotated tag:
    • git tag -a v$VERSION -m"$VERSION Release"
  • For 0.7 and later, create a VERSION file from the RELEASE file (don't commit/push this)
    • cp -v RELEASE VERSION
  • Create the release tarball
    • tar czv --xform="s,^./,libav-$VERSION/," --exclude=.git -f /tmp/libav-$VERSION.tar.gz .
  • Testcompile this tarball
  • Create the xz variant:
    • zcat /tmp/libav-$VERSION.tar.gz | xz > /tmp/libav-$VERSION.tar.xz
  • GPG signatures:

gpg -ab /tmp/libav-$VERSION.tar.gz
gpg -ab /tmp/libav-$VERSION.tar.xz

  • Copy release notes and changelog:

cp -v Changelog /tmp/libav-$VERSION.changelog
cp -v doc/RELEASE_NOTES /tmp/libav-$VERSION.release

  • Install tarballs to libav.org:
    • scp /tmp/libav-$(cat VERSION).* libav.org:releases

Publish the release

  • push the created, *annotated* tags
  • Publish the prepared News entry for http://libav.org
  • Enjoy!