Skip to content

Release Criteria

Martin Ueding edited this page Jun 24, 2017 · 2 revisions

QPhiX uses master, devel, and feature branches similarly to Git Flow. This page will list the criteria for code to enter these branches. The criteria are formulated with the meanings of must and should following RFC 2119.

Master Branch

The master is supposed to be suitable for full-scale production with a package like Chroma or tmLQCD. Before merging devel into `master, it must fulfil the following criteria:

  • All unit tests of QPhiX must succeed on an Travis CI, an AVX2 machine (e.g. JURECA, Hazel Hen) and a KNL machine (e.g. Cori, Marconi A2).

  • The timimgs must be run again against a previous version on both types of machines, no significant loss of performance has occured without a good reason.

  • QPhiX must compile with Chroma. If Chroma does not reflect the interface changes in QPhiX, this must be coordinated in order to provide users with a working toolchain.

  • A single HMC trajectory that has been generated with an older version of Chroma+QPhiX must be reproducible (up to precision deviations) by the new version of Chroma+QPhiX.

    Could this become an issue when the generation of random numbers in Chroma is changed and some momenta or pseudo fermion fields are generated differently?

Devel Branch

For the devel branch, the requirements are less strict:

  • All unit tests of QPhiX must succeed on Travis CI.
Clone this wiki locally