NumPEx Software Guidelines
The Numpex Software Guidelines promote open and reproducible science by establishing best practices for software packaging, testing, and community collaboration. Adopting these standards ensures that software is transparent, reliable, and easy to share, enabling researchers to verify and build upon each other’s work.
The NumPEx Software Guidelines (June 2025 version) define 9 criteria listed below.
The extended NumPEx Software Guidelines document details these 9 criteria and can be used for self-assessment.
1. Packaging
Software should be packaged (Spack and/or Guix package formats). They should be published in public (community controlled) package repositories (Guix-science, etc.).
2. Minimal Validation Tests
Software should include minimal validation tests triggered through automated mechanism such as Guix. These tests should be automatic functional tests that do not require specific hardware.
3. Public Repository
A public repository, must be available for at least the development version of the software, allowing for pull requests to be submitted.
4. Clearly-identified license
Sources published under a clearly-identified free software license (preferably with REUSE).
5. Minimal Documentation
Basic documentation should be publicly available to facilitate user understanding and usage of the software.
6. Open Public Discussion Channel
An open, public discussion channel must be provided that is easily accessible to all potential users. The chosen platform must not require special permissions or memberships that could limit user participation.
7. Metadata
Each repository should include metadata easing integration and publicity on a software list.
8. API compatibility information
Each repository should include information enabling downstream users to know which versions they can use.
9. Minimal Performance Tests
Software should include a minimal set of performance tests divided in three categories: single node without specific hardware, single node with specific hardware, multi-nodes. These tests should be automated as much as possible.