G-Node / nix

Neuroscience information exchange format
https://readthedocs.org/projects/nixio/
Other
68 stars 36 forks source link

Adopt libtool-like versioning #745

Closed gicmo closed 5 years ago

gicmo commented 6 years ago

If we want to include nixio into distribution repositories (e.g. issue #715) we need to be more careful about ABI breaks, which is a lot of fun to get right for C++. See KDE's policies. Currently we version our binaries with our semver, which is not ideal. I propose we use libtool like versioning and update rules.

gicmo commented 6 years ago

See also the GNOME docs on versioning.

gicmo commented 6 years ago

Thinking about it, I guess we should also have nixio.pc be renamed to nixio-1.0.pc, since we are otherwise in a good place to have multiple, non-ABI compatible versions of nix parallel installable.

gicmo commented 5 years ago

I have re-read the whole idea about libtool versioning and it is mostly aimed at making multiple library versions of same software installable, which is something that these days is not supported without any additional precautions due to packages managers. The usual way around this is to have an explicit suffix everywhere. Common examples are glib/Gtk. What we do need to do is to incease VERSION_ABI (which then gets translated into to the so version, i.e. libnixio.so.VERSION_ABI), every time we break ABI.