Soon we might update mepo to support things like extends: where a fixture could "extend" another fixture (to avoid duplication of info, base a fixture on valid code, etc.).
But, if this capability came in, say, mepo 2.12, we'd want to make sure if a user has mepo 2.11, it would die gracefully. Obviously, mepo would crash if it saw a YAML key it didn't know, but we should fail fast and with a good message.
But how to do this? One possibility is to have something analogous to cmake_minimum_required from CMake which says, "This CMake code requires this version of CMake".
So perhaps at the top of components.yaml:
mepo_minimum_require: 2.12
though this might add a new dependency on something like py-semver (though mepo tags are usually pretty boring and we could write our own comparator).
Or maybe there's something we could do with schema? YAML does have that notion. 🤷🏼
Soon we might update mepo to support things like
extends:where a fixture could "extend" another fixture (to avoid duplication of info, base a fixture on valid code, etc.).But, if this capability came in, say, mepo 2.12, we'd want to make sure if a user has mepo 2.11, it would die gracefully. Obviously, mepo would crash if it saw a YAML key it didn't know, but we should fail fast and with a good message.
But how to do this? One possibility is to have something analogous to
cmake_minimum_requiredfrom CMake which says, "This CMake code requires this version of CMake".So perhaps at the top of
components.yaml:though this might add a new dependency on something like py-semver (though mepo tags are usually pretty boring and we could write our own comparator).
Or maybe there's something we could do with schema? YAML does have that notion. 🤷🏼