diff --git a/decisions/0024-code-stability-versioning b/decisions/0024-code-stability-versioning new file mode 100644 index 0000000..6ee1b79 --- /dev/null +++ b/decisions/0024-code-stability-versioning @@ -0,0 +1,29 @@ +# Materials Project Software Foundation Mission Statement + +## Context and Problem Statement + +Many projects are built directly on core Materials Project codes. Changes in our core codes will directly affect many other software projects. This applies in particular to breaking changes. It is therefore very important to have a certain code stability and regularity with regard to the versions. + +## Decision drivers +- It is very difficult for individual developers to take changes in other codes into account. In some cases, changes in codes influence each other extremely strongly and require multiple adjustments. +- We would like to keep the workload minimal +- We would like to have many users of our codes and encourage developments based on our codes. +- Keeping track of compatible versions of software packages +- Evaluation of a Prototype of a meta package + +## Considered Options +1. Update individual code requirements + - Other codes have to be considered to avoid the issues described above +2. Build a meta package including the most relevant MP codes, including a requirement file + - requires additional work + - Potentially similar effort to make packages compatible as currently + - additional tests could be run to check compatibility of codes + - Compatible versions could be tracked +3. Build a meta package including the most relevant MP codes, including a requirement file, and link to MP data generation + - workload would be very high + - hard to communicate that database building and data generation have not happened with the same software versions + + +## Decision Outcome + +Proposal X was adopted by unanimous consent on January 9, 2023