Skip to content

Semantic Versioning of canonical data. #673

@rbasso

Description

@rbasso

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).

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions