Rule catalogue

<!-- Generated by uv run sdmx-readiness rules --markdown > docs/RULES.md. Do not edit by hand: change the @rule(...) metadata in sdmx_readiness/rules/*.py and regenerate. -->

Target: a direct move from SDMx 2.1 to SDMx 3.1. Definitions of severity, basis and change kind: docs/METHODOLOGY.md section 6. Rules still to be validated: docs/RULES_REVIEW.md.

Rule Severity Basis Change Category Title
VER-001 BLOCKER SCHEMA decision Versioning Artefact version is neither a legacy nor a semantic version
VER-002 BLOCKER SCHEMA decision Versioning Reference uses an invalid version (or a wildcard combined with an extension)
VER-003 BLOCKER STANDARD decision Versioning Semantically versioned artefact references a non-semver artefact
VER-004 WARNING GUIDELINE decision Versioning Stable semver artefact references a version-extended (draft) artefact
VER-005 WARNING GUIDELINE decision Versioning Final (isFinal=true) artefact references a non-final artefact
VER-006 BLOCKER STANDARD decision Versioning Mechanical semver migration would collide with an existing version
VER-007 WARNING STANDARD decision Versioning Non-final artefact already carries a stable semantic version
REF-001 WARNING OBSERVED decision References Reference cannot be resolved on this endpoint
REF-002 INFO OBSERVED mechanical References Versioned URN embedded in an annotation
MOD-001 BLOCKER SCHEMA decision 2.1 -> 3.1 model changes Artefact that is unversioned in SDMx 3.1 is published in several versions
MOD-002 BLOCKER SCHEMA remodel 2.1 -> 3.1 model changes Constraint uses a Release Calendar
MOD-003 BLOCKER SCHEMA decision 2.1 -> 3.1 model changes Constraint attached to a target that SDMx 3.1 no longer allows
MOD-004 WARNING SCHEMA mechanical 2.1 -> 3.1 model changes Maintained 'Actual' constraint
MOD-005 BLOCKER SCHEMA remodel 2.1 -> 3.1 model changes SDMx 2.1 artefact type that does not exist in SDMx 3.1
MOD-006 WARNING SCHEMA mechanical 2.1 -> 3.1 model changes Organisation scheme carries a version other than 1.0
DSD-001 WARNING SCHEMA mechanical DSD structure (2.1 -> 3.1) Time dimension is not the last dimension
DSD-002 BLOCKER SCHEMA remodel DSD structure (2.1 -> 3.1) DSD uses a MeasureDimension
DSD-003 BLOCKER SCHEMA decision DSD structure (2.1 -> 3.1) Attribute attached to dimensions and attachment groups
DSD-004 BLOCKER SCHEMA remodel DSD structure (2.1 -> 3.1) Group defined by an attachment constraint
DSD-005 BLOCKER SCHEMA decision DSD structure (2.1 -> 3.1) DSD declares a ReportingYearStartDay attribute
DSD-006 WARNING SCHEMA mechanical DSD structure (2.1 -> 3.1) Dimension position does not match its place in the dimension list
DSD-007 WARNING SCHEMA mechanical DSD structure (2.1 -> 3.1) Text attribute relies on the isMultiLingual default, which flips in 3.1
DSD-008 INFO GUIDELINE none DSD modelling guidelines No frequency dimension, or frequency is not the first dimension
DSD-009 INFO GUIDELINE none DSD modelling guidelines Same concept used as a dimension and as an attribute
DSD-010 INFO GUIDELINE none DSD modelling guidelines More than 7 key dimensions
MSD-001 BLOCKER SCHEMA remodel MSD structure (2.1 -> 3.1) Metadata Structure Definition has metadata targets / report structures
XF-001 WARNING OBSERVED remodel Endpoint conversion (2.1 vs 3.1 output) Artefact served in SDMX-ML 2.1 but missing from the SDMX-ML 3.1 output
XF-002 INFO OBSERVED none Endpoint conversion (2.1 vs 3.1 output) Artefact only served in SDMX-ML 3.1
XF-003 WARNING OBSERVED decision Endpoint conversion (2.1 vs 3.1 output) Artefact served under a different version in SDMX-ML 3.1

VER-001

Artefact version is neither a legacy nor a semantic version - BLOCKER; basis SCHEMA; change decision; Versioning

VER-002

Reference uses an invalid version (or a wildcard combined with an extension) - BLOCKER; basis SCHEMA; change decision; Versioning

VER-003

Semantically versioned artefact references a non-semver artefact - BLOCKER; basis STANDARD; change decision; Versioning

VER-004

Stable semver artefact references a version-extended (draft) artefact - WARNING; basis GUIDELINE; change decision; Versioning

VER-005

Final (isFinal=true) artefact references a non-final artefact - WARNING; basis GUIDELINE; change decision; Versioning

VER-006

Mechanical semver migration would collide with an existing version - BLOCKER; basis STANDARD; change decision; Versioning

VER-007

Non-final artefact already carries a stable semantic version - WARNING; basis STANDARD; change decision; Versioning

REF-001

Reference cannot be resolved on this endpoint - WARNING; basis OBSERVED; change decision; References

REF-002

Versioned URN embedded in an annotation - INFO; basis OBSERVED; change mechanical; References

MOD-001

Artefact that is unversioned in SDMx 3.1 is published in several versions - BLOCKER; basis SCHEMA; change decision; 2.1 -> 3.1 model changes

MOD-002

Constraint uses a Release Calendar - BLOCKER; basis SCHEMA; change remodel; 2.1 -> 3.1 model changes

MOD-003

Constraint attached to a target that SDMx 3.1 no longer allows - BLOCKER; basis SCHEMA; change decision; 2.1 -> 3.1 model changes

MOD-004

Maintained 'Actual' constraint - WARNING; basis SCHEMA; change mechanical; 2.1 -> 3.1 model changes

MOD-005

SDMx 2.1 artefact type that does not exist in SDMx 3.1 - BLOCKER; basis SCHEMA; change remodel; 2.1 -> 3.1 model changes

MOD-006

Organisation scheme carries a version other than 1.0 - WARNING; basis SCHEMA; change mechanical; 2.1 -> 3.1 model changes

DSD-001

Time dimension is not the last dimension - WARNING; basis SCHEMA; change mechanical; DSD structure (2.1 -> 3.1)

DSD-002

DSD uses a MeasureDimension - BLOCKER; basis SCHEMA; change remodel; DSD structure (2.1 -> 3.1)

DSD-003

Attribute attached to dimensions and attachment groups - BLOCKER; basis SCHEMA; change decision; DSD structure (2.1 -> 3.1)

DSD-004

Group defined by an attachment constraint - BLOCKER; basis SCHEMA; change remodel; DSD structure (2.1 -> 3.1)

DSD-005

DSD declares a ReportingYearStartDay attribute - BLOCKER; basis SCHEMA; change decision; DSD structure (2.1 -> 3.1)

DSD-006

Dimension position does not match its place in the dimension list - WARNING; basis SCHEMA; change mechanical; DSD structure (2.1 -> 3.1)

DSD-007

Text attribute relies on the isMultiLingual default, which flips in 3.1 - WARNING; basis SCHEMA; change mechanical; DSD structure (2.1 -> 3.1)

DSD-008

No frequency dimension, or frequency is not the first dimension - INFO; basis GUIDELINE; change none; DSD modelling guidelines

DSD-009

Same concept used as a dimension and as an attribute - INFO; basis GUIDELINE; change none; DSD modelling guidelines

DSD-010

More than 7 key dimensions - INFO; basis GUIDELINE; change none; DSD modelling guidelines

MSD-001

Metadata Structure Definition has metadata targets / report structures - BLOCKER; basis SCHEMA; change remodel; MSD structure (2.1 -> 3.1)

XF-001

Artefact served in SDMX-ML 2.1 but missing from the SDMX-ML 3.1 output - WARNING; basis OBSERVED; change remodel; Endpoint conversion (2.1 vs 3.1 output)

XF-002

Artefact only served in SDMX-ML 3.1 - INFO; basis OBSERVED; change none; Endpoint conversion (2.1 vs 3.1 output)

XF-003

Artefact served under a different version in SDMX-ML 3.1 - WARNING; basis OBSERVED; change decision; Endpoint conversion (2.1 vs 3.1 output)