How to version models?

in the OpenEntrance package models come with version numbers.
In software development semantic versioning is widely used, but are there any standards for models?
I mean what is a Major, a Minor and Patch version?

In relation to this, if we release a new Major or Minor version one needs to update the mapping correct @huppmann ?
But if we only release a patch version we only to update the model name in the mapping correct?

1 Like

Thank you @HaukeHenke for raising this thorny question…

Let me explain how we are suggesting to deal with model versions and regions in the context of the IIASA scenario-services infrastructure. Note that we are establishing these as “conventions” or “guidelines” - the entire scientific software and open-source packages is completely agnostic.


In a central database comprising results from several models (and different versions of the same model), you need to distinguish between “common regions” (i.e., regions that have a consistent definition for all models) and “native regions” (i.e., regions that have specific definitions for a particular model, usually the “native” spatial resolution).

Approach adopted at IIASA

For projects hosted on the IIASA infrastructure, we adopt the naming convention “<model> <version>|<native-name>” for native regions.

To avoid having too many regions, we suggest that native-regions are only defined at the “minor”-level, so we define OSeMBE v1.0|AUT instead of OSeMBE v1.0.0|AUT, OSeMBE v1.0.1|AUT. All “patch”-model-versions are mapped to the minor-level regions.

This implies that changing the region-definition requires (at least) a bump of the minor version.

See this example for a complete mapping.

1 Like