As questioned in #671, we still don't have defined how to version the canonical-data.json files in the new schema. I think we should strive to get something like SemVer.
Edit: Below we well keep updated the proposed semantic versioning resulting from the discussion.
Current proposal
Adapting from SemVer 2.0.0 ...
Given a version number MAJOR.MINOR.PATCH, increment the:
- MAJOR version when you make incompatible API changes
Only changes in the test suite in a fundamentally incompatible way should
change the MAJOR version:
- A new "property" (test type).
- Renaming a "property".
- Insertion, deletion or renaming of keys in the test data object.
- Changing the type of one of the test data keys.
MAJOR changes would break even well-behaved test generators, that are not affected by test grouping/nesting.
- MINOR version when you add functionality in a backwards-compatible manner, and
Non-breaking changes that alter the meaning of the test suite, making previously
passing solutions possibly fail, or failing solutions fail at a different spot, should bump the MINOR version:
- Adding or deleting test cases.
- Changing the test cases inputs and/or outputs.
- Changing the test cases ordering.
MINOR changes would never break well-designed test generators, because the test-generation logic remains exactly the same.
- PATCH version when you make backwards-compatible bug fixes.
Anything else that do not change the meaning of the tests should bump the
PATCH version:
- Regrouping/"Renesting" test cases without changing test cases ordering.
- Changing descriptions or comments.
- Changing keys' ordering or formatting (would result in an equivalent JSON file).
As questioned in #671, we still don't have defined how to version the
canonical-data.jsonfiles in the new schema. I think we should strive to get something like SemVer.Edit: Below we well keep updated the proposed semantic versioning resulting from the discussion.
Current proposal
Adapting from SemVer 2.0.0 ...
Only changes in the test suite in a fundamentally incompatible way should
change the MAJOR version:
MAJOR changes would break even well-behaved test generators, that are not affected by test grouping/nesting.
Non-breaking changes that alter the meaning of the test suite, making previously
passing solutions possibly fail, or failing solutions fail at a different spot, should bump the MINOR version:
MINOR changes would never break well-designed test generators, because the test-generation logic remains exactly the same.
Anything else that do not change the meaning of the tests should bump the
PATCH version: