-
Notifications
You must be signed in to change notification settings - Fork 1.2k
PR checks
Anil Madhavapeddy edited this page Nov 10, 2017
·
43 revisions
List of manual checks before merging a PR:
- the directory structure should follow
packages/$NAME/$NAME.$VERSION/
- the package name should not contain an
ocaml
suffix or prefix
- the first line of
descr
should be a valid short description. - the
descr
file should not contain typos. - check that the file isn't called
desc
by mistake.
- the
url
file should contain a stable URL (ideally a tagged version, so notgit
, and notsha1
archives) - the
url
file should contain a (valid) checksum
- The
opam
file should have a valid maintainer (ideally, the name of the creator of the PR, and notcontact@ocamlpro.com
) - If it has an
install
field, theopam
file should have a sensibleremove
field (if it is a libraryocamlfind remove $LIB
). If the build system uses.install
files, that's not necessary. - Packagers should be encouraged to reduce the number and size of files in the
files/
subdirectory of a package if possible. - Packagers should be encouraged to make their package's constraints as wide as possible and reduce any redundancy. For example, if package A needs package B and B needs C but A does not directly depend on C, C should not be marked as a dependency of A.
- Most packages don't use
ocamlfind
orocamlbuild
orjbuilder
orppx_*
at run-time and these dependencies should be marked as{build}
dependencies. Suggesting this is a good idea if there are other issues with the PR but thebuild
annotation should not be used as a blocker to merging. - If
sh
is invoked with-c
to evaluate a command expression, make sure the-ex
options are also present.
- 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)
- Packages should generally either work on OS X or be marked as incompatible with
darwin
- 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.
Generally, improving the general quality of the repository over time is also in scope of the maintainers work.
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..