Header
The YAML template contains three mandatory fields namespaceUri
version
and
publicationDate
-
The
namespaceUri
must be in the form of an HTTP address containing the domain name of the company or organization developing the template followed by a resource that identifies the context of the template. For example -
version
is a field that identifies the version of the template and follows the [Semantic Versioning
] conventions (https://semver.org/) in the form:- <Major>.<Minor>.<Patch>
About versioning models
- the model designer will have to take special care to ensure backward compatibility of the developed OPCUA models. This concerns the structure of the classes.
- an evolution that keeps the upward compatibility will be assigned an evolution of the version number;Minor>.
Here is a non-exhaustive list of model modifications that allow a minor version upgrade:
- adding new types (ObjectType, ReferenceType, VariableType, DataType)
- adding new members to an ObjectType or VariableType provided that their
modellingRule
isOptional
. - restructuring an ObjectType or VariableType by adding an intermediate type that does not compromise the previous type definition.
- A major version upgrade is used to indicate a loss of backward compatibility.
Here is a non-exhaustive list of model modifications that require a major version upgrade:
-
enrichment of a type with non-optional data
-
renaming a browseName
-
changing the signature of a method
-
a change of the NodeIds of the type nodes. We remind here the importance of the
csv
file which allows the model generator to ensure the stability of the nodeIds between two model regenerations. -
etc...
-
We will use an increment of the `Patch>' in case of cosmetic changes to the model, such as
- a modification of the
description
fields - a rearrangement
- a modification of the
-
It is not necessary to increment the version number of the model at each iteration of the model during the development phases. It is however essential to use the versioning rules for published models or models deployed in your industrial devices in production.