NeTExReleaseVersions - nick-knowles/NeTEx GitHub Wiki

Historically, NeTEx has used an informal point release system, with major releases indicated by a major number (e.g. v1.0) and interim releases indicated by subnumber e.g. v1.12. A major release has accompanied each CEN version of the specification. Interim releases are mostly small, backwards compatible fixes. The release number is used in the directory structure so that it is possible to host multiple versions on the same computer at the same time.

There is thus a separate set of subdirectories for each release

\GitHub\NeTEx\schema\1.11\...     Jan 2015 Minor corrections to WSDL

\GitHub\NeTEx\schema\1.10\...     August 2018 Version 1 minor changes

\GitHub\NeTEx\schema\1.00\...     August 2018 Version 1

Semantic versioning

From September 2020 the NeTEx schema will follow the more formal Semantic Versioning model, for version numbers summarised as follows.

Given a version number MAJOR.MINOR.PATCH, increment the:

  • MAJOR version when you make incompatible API changes, (Typically accompanied by new versions of the CEN Specification).
  • MINOR version when you add functionality in a Backwards Compatibile manner,
  • PATCH version when you make backwards compatible bug fixes.

Applying Semantic versioning to NeTEx modules

The NeTEx schema is modular, so changes say to a fares package will not affect a timetable package and vice-versa. Thus, even if there is a change requiring a MAJOR increment overall , it may not affect the backwards compatibility of most applications. For example if a MAJOR change is made in a fares package, timetable documents are unaffected. To give a broad indication of this impact, version numbers are also given for the major submodels of NeTEx that may be incremented independently : Network, ** Timetable**, and Fares.

For example, if the packages are all originally at the same level

NeTEx 2.2.4     (Network 2.1.2, Timetable 2.2.4,   Fares 2.2.1)

And just the Fares package has a MAJOR change, only the Overall version and the Fare version need to increment,

NeTEx 3.1.1     (Network 2.1.2, Timetable 2.2.4,   Fares 3.1.1)