Release checklist

For each module it is necessary to:

  • Update the version number in the configure.ac file
  • Check executing make check works correctly, it doesn't require user interaction and all tests pass.
  • Check manually all tests that should not be run by 'make check'
    • If you don't want to install the module run checks as following under module top directory: perl -I./src/EBox <file-test>
  • Search for buggy or forgotten debug messages
    • Run this command to find these messages under src directory.
      find . -name '*.pm' -exec grep -H '\(print\|STDERR\|EBox::debug\)' {} \;
      

  • After running sh autogen.sh; ./configure --disable-runtime-tests, check all strings are correctly translated to Spanish.
    • Under po directory run:
      rm -f *.gmo && make update-po
      
  • Run update-po-files under scripts directory to update Project-Id-Version from translation files.
  • The two previous topics can be skipped, if the translation is done via pootle, which is mandatory.
  • Translation domain appears in po/domainName.pot file, e.g. ebox-dhcp.pot, and it has to match to the ones are put in the different source files:
    • In src directory:
      • Run: find . \( -name '*.pm' -or -name '*.pm.in' \) -exec grep -Hi domain {} \;
  • It just SHOULD appear source file which implements module class, which is on gconf schema under schemas directory:
    <key>/schemas/ebox/modules/global/modules/ipsec/class</key> <default>EBox::IPSec</default> 
    
  • Check for updates in the following files: Changelog, README, AUTHORS, INSTALL and INSTALL.<lang> (<lang>: translated language)
    • Also check debian/control file content matches with README content
    • Check the INSTALL instructions match with the postinst scripts in the debian directory
  • Check all dependencies are documented in the INSTALL file and included in configure.ac file.
    • Perl libraries dependencies which are satisfied from eBox main module MUST NOT be checked, only the ones which are particular to the module.
      • eBox dependencies can be found in its configure.ac
      • In order to find which Perl libraries are needed from a module in src directory run: find . -name '*.pm' -exec grep -H '^use' {} \;

  • Check eBox inter-module dependencies are indicated in gconf schemas.
    • In order to set eBox module dependencies, search for modInstance strings in source files: find . -name '*.pm' -exec grep -H modInstance {} \;
    • Schema depends entries show modules whose changes influence to this module, i.e. the configuration file from this module depends on the other one to work.
    • They MUST be in gconf schemas, common sense MAY be used to identify them.
  • Step-by-step module installation from the scratch following INSTALL instructions.
    • Check all steps are corrected and completed.
  • Check final tarball, created with make dist contains all needed and nothing unnecessary.
    • They MUST be in:
      • Makefile.in
      • Makefile.am
      • INSTALL (So far and to speed up the process this is not mandatory as the debian scripts: postinst, control... are enough to articulate the installation. INSTALL.es are totally deprecated)
      • m4 directory
      • TODO (Not mandatory)
    • It MUST NOT be in:
      • Makefile
      • All generated files from a .in or some .pm.in.
      • debian directory.
    • A directory diff GUI tool SHOULD be used, such as Medl, Kompare or Tkdiff, configuring it to ignore .svn hidden directories
    • tree is an useful tool as well
  • Check debian build
    • Update debian changelog package (typing dch -v $version) and debian control dependencies if those ones are needed.