Versioning#
LISA releases on PyPI are done following semantic versioning as defined in https://semver.org/. As pointed by APIs stability, classes are split on the following axes for the purpose of semver tracking:
A set of methods and attributes in general: Adding a method entails a minor version bump, even though it can technically cause a breaking change in a user subclass that happened to use the same name.
Inheritance tree: the MRO of a class is not considered as part of the stable public API and can therefore change at any point. Classes named
*Base
can usually be relied on forissubclass()
andisinstance()
but that is not a hard rule. The reason behind that is that even adding a class to the hierarchy can break existing uses ofisinstance()
so there is essentially no way of making any change to the inheritance tree that is not a breaking change.