Note on versioning¶
Keeping track of versions is essential for every software and semantic data modeling activity. We follow PEP440 when reporting versions, fetching metadata at run time using importlib.metadata. Several versions need to be distinguished. The version of pynxtools, the one of the NeXus definitions, and those of h5py and the HDF5 library. See the respective section of the pynxtools documentation that explains where these versions can be found.
pynxtools-plugin version¶
We consider it best practice that also each plugin of pynxtools writes its version as a programID instance of NXprogram. ID serves as a placeholder that can be either omitted or replaced by an integer if multiple programs need to be distinguished. Counting should start at one, i.e., program or program1 are preferred options.
Specifically, the field program inside the programID instance should store the distribution (package) name. The attribute program/@version should store a version string following PEP440.