Documentation/PackageReleaseChecklist

Package release checklist

Things to check before releasing package (in progress, to be updated and extended).

All packages

  • Check summary and description of package. Replace all FIXME and TODO with meaningful descritpion.
  • Check for unused stuff in debian/ subdirectory and cleanup.
  • Check for obsolete debhelper constructs and upgrade.
  • Review debian/watch or write new one if package has upstream.
    • Run uscan --report to check for newer upstream versions.
  • Check for CFLAGS=-g -O2 in debian/rules and remove it. dpkg-buildpackage sets up -g -Os by default, so debian/rules should not override existing flags, but append to CFLAGS instead.
  • Add -dbg package if it does not exist yet and there are binaries in package.

Packages with our (OI) code

  • Check that code is following our coding style and reformat if it is not.
  • Check that all source files contain proper copyright blurb
  • Check completeness of AUTHORS file
  • Check autogen.sh and remove crap out of it (e.g. libtoolize for applications)
  • Check package version and make it native (without dash in version) if it was not

Applications

  • Merge translations
  • Build and run application under valgrind:
    • --tool=memcheck in order to find wrong memory access and memory leaks
    • --tool=massif in order to figure out how much heap app eats and whether memory consumption can be reduced

Libraries

  • Check that API did not change since last release
    • Bump minor part of soname if it did in backward-compatible way
    • Bump major part of soname and rename library package if backward compatibility was broken
  • Check that your library does not link to the unneeded libraries (readelf -a | grep NEEDED)
  • Check that your library links to all libraries it needs to run (readelf -a | grep NEEDED)