Libav/ReleaseHowto

From MultimediaWiki
Revision as of 01:44, 8 March 2012 by DonDiego (talk | contribs) (Replace backtics by superior $() syntax.)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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!