Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adopt libtool-like versioning #745

Closed
gicmo opened this issue Aug 28, 2018 · 3 comments
Closed

Adopt libtool-like versioning #745

gicmo opened this issue Aug 28, 2018 · 3 comments
Labels

Comments

@gicmo
Copy link
Member

gicmo commented Aug 28, 2018

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 gicmo added the question label Aug 28, 2018
@gicmo
Copy link
Member Author

gicmo commented Aug 28, 2018

See also the GNOME docs on versioning.

@gicmo
Copy link
Member Author

gicmo commented Aug 28, 2018

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
Copy link
Member Author

gicmo commented Oct 15, 2019

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.

@gicmo gicmo closed this as completed Oct 15, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant