Releases and compatibility policy

Development occur in the tip of the master branch while we aim for this branch to be stable, tested and correct, this is not guaranteed. Premade packages are available for the latest tag generated automatically and can be readily installed. See the compatibility policy below. The main results, such as NNPDF 4.0 [B+22b] will be produced with a frozen tag, a conda environment and a docker image so that they can be reproduced entirely.

Tags

The code is tagged to contextualize the versioning, mark significant developments and to mark versions used to produce main results. The significant releases since the code was made public are:

Version 4.0.10

Last release of the 4.0 era. Runcards for 4.0 will still run using new tools, data and theory. The new commondata and theory pipeline has been fully adopted. EKO is now the only evolution code supported. C++ and cmake have been removed. Closure tests done with old version (pre-4.0) of the code can be converted to the new version but won’t work out of the box. Further releases of the 4.0.X series will be only bugfixes upon 4.0.10.

Version 4.0.9

Release for 4.0 N3LO; last release fully backwards-compatible with 4.0 pipeline. 4.0 runcards will still work but external tools, and data and theory not used in the 4.0 family of fits will no longer be guaranteed to work from 4.0.10 onwards. Last release compatible with the old commondata format and that accepts apfel as evolution code.

Version 4.0.8

Release for the QED and MHOU papers. Miscellaneous bugfixes and small QOL improvements. See the whole list of changes in the release description. This is the last version that uses cmake for installation.

Version 4.0.7

Intermediate release with miscelanous improvements in preparation for 4.0.8. Development release with experimental features

Version 4.0.6

The last version that uses C++ objects in n3fit and validphys, and apfel for PDF evolution.

Version 4.0.5

The last version to support legacy genetic algorithms fits based on C++.

Version 4.0.4

Incremental bugfix and enhancementent release: most importantly fixing an error in the definition of integrated luminosity (Github issue #1442), as well as adding ancillary features for the NNPDF4.0 analysis and results, and extending the documentation.

Version 4.0.3

Used to produce the NNPDF 4.0 [B+22b] fits.

Compatibility Policy

Fit runcards, and Physics results

We attempt to maintain strict compatibility for all published results for at least one major PDF release cycle, in order to be able to reproduce the current published release (while the new one is under development) and compare new and old results. For example the code that produces NNPDF 4.0 should be able to reproduce the results for 3.1 as well. Once NNPDF 4.0 is released, new developments in the code are allowed to break compatibility with 3.1, but should maintain it with 4.0 (until the 4.1 cycle and so on).

The baseline expectation for fits is that a given runcard for a published PDF set is able to produce an equivalent PDF when using the same tag of the code. Due to storage limitations, the theory object (FastKernel tables and EKOs) are not versioned, therefore if bugs are discovered in theory predictions new fixed theories will be made available which might change some of these results.

Analysis runcards used for published results are expected to be able to produce the same physics, while bugfixes (that don’t affect fits) or changes in presentation can happen in between. Similarly, important enough bugfixes will be marked by a tag.

Internal interfaces

We follow a “Linux Kernel” approach to internal interfaces, which do not affect the content of runcards. This means that there is no expectation of stability at all and these interfaces can change arbitrarily at every commit without any particular notice. If you wish that code such as extra modules is maintained and kept in working order with newer updates, it is highly suggested to contribute it to the main repository, along with appropriate tests and documentation.: