Skip to content

PR checks

Thomas Gazagnaire edited this page Feb 17, 2016 · 43 revisions

List of manual checks before merging a PR:

Names

  • the directory structure should follow packages/$NAME/$NAME.$VERSION/
  • the package name should not contain an ocaml suffix or prefix

Description

  • the first line of descr should be a valid short description.
  • the descr file should not contain typos

URLs

  • the url file should contain a stable URL (ideally a tagged version, so not git, and not sha1 archives)
  • the url file should contain a (valid) checksum

OPAM files

  • The opam file should have a valid maintainer (ideally, the name of the creator of the PR, and not contact@ocamlpro.com)
  • The opam file should have a sensible remove field (if it is a library ocamlfind remove $LIB). If the build system use .install files, that's not necessary.
  • The opam file should not list oasis as a dependency

Travis runs

  • The Travis runs are expected to run for some time. If one of the run is successful but very short (few seconds) that's usually means that the package has been skipped. Need to report on the PR if a package is skipped on all OCaml versions, this is usually caused by version conflicts.
  • If you are the first one to check the test runs and you see an error, try to copy/paste it back on the PR with a possible explanation on how to fix it.
  • Keep an eye out for OPAM 1.2-specific warnings, or OPAM 1.1 invalid fields (they are yellow in the output)
  • Check that the right version of the package is installed (it's tedious to check that on every OCaml version, so just pick a run on recent version: 4.01 or 4.02)

Interaction between mergers

  • If someone emits some doubts on a PR (by commenting, asking for clarification, etc), this someone should be the one clicking on the "merge" button.

Improving quality

Generally, we want the repository to be in a better quality over time. This means

  • Improving the general tooling: CI scripts, opam lint, camelus, etc..
  • Improving the existing metadata: fixing lint errors, fixing incorrect constraints in bulk builds, etc..
Clone this wiki locally