NOTE: See the draft team policy.

  • Use phpunit --do-not-cache-result to avoid autopkgtest trying to write a cache file.
    • Typically, don't use needs-root for autopkgtest.
  • autopkgtest should test installed files.
  • Check if test inputs are free materials.
  • If the package depends on other PHP libraries, autoload.php should load the dependencies.
    • autoload.php should also load additional php files documented in composer.json.
    • Refer to autoload.php in debian/autoloaders/<package>.
  • Clean up any autoload file, phpunit result cache, or vendor directory created for tests.
    • Use d/clean instead of overriding dh_clean.
  • If possible, use upstream test suite for both build tests and autopkgtests.
  • If adding a php script, use #!/usr/bin/php instead of #!/usr/bin/env php.
  • If both tests and autopkgtests use an autoload template file, try to re-use the same template file if possible.
  • Use gbp import-orig --uscan --upstream-vcs-tag=... to get the correct upstream branch, and to build the Debian packaging on top of the upstream repository.
  • Sign your tags.
  • Propose any patches to upstream, if appropriate.
  • Add d/gbp.conf when using a non-default gbp scheme.
  • If running a php script in autopkgtests, add php-cli to Depends in d/tests/control.
  • If there is no upstream release, consider 0~~<commit_date> for the upstream version.
  • Install upstream README by listing it in d/docs.
  • Use Salsa CI pipeline.
  • Check that install path matches namespace in composer.json.
  • List example files in debian/examples.
  • Search for any files with different license/copyright: git grep -i '\(licen\|copy\)'
  • Generally, the source package name and binary package name should match.
  • Add a '/' at end for directories (or symlinks to directories) listed in d/clean.
    • Test with ./debian/rules clean.
  • Patch example scripts to find the installed autoloader.
  • Watch out for newline added at end of patched files. Some editors add this automatically.
  • Packages can provide overrides for Composer package names in debian/overrides/<package>.
  • Install autoloaders and overrides into usr/share/pkg-php-tools.

Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 International License.