-
Notifications
You must be signed in to change notification settings - Fork 701
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
build: set soname to major.minor #1146
Conversation
Until the 1.0 release, setting the soname to version_major.version_minor gives us more freedom to make changes without being too restricted by ABI compatibility. We never actually really commited to ABI stability before the 1.0 relase - the README states that at the bottom - but I made this decision clearer by updating the "versioning" section.
Codecov ReportPatch coverage has no change and project coverage change:
❗ Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more. Additional details and impacted files@@ Coverage Diff @@
## master #1146 +/- ##
==========================================
+ Coverage 77.94% 78.05% +0.10%
==========================================
Files 53 53
Lines 6852 6852
==========================================
+ Hits 5341 5348 +7
+ Misses 1511 1504 -7 ☔ View full report in Codecov by Sentry. |
Hey @Tachi107. So sorry for leaving this to collect dust. I totally forgot about it. The issue here is that SONAME versioning is not supposed to mirror the library's versioning. That's the general best practice. SONAME versioning is just supposed to reflect the interface. @jcalcote wrote an excellent book, Autotools: A Practioner's Guide to GNU Autoconf, Automake, and Libtool. There's a section in chapter 7, Library Versioning Is Interface Versioning which deals with this exact topic. |
The issue here is that SONAME versioning is not supposed to mirror the
library's versioning. That's the general best practice. SONAME
versioning is just supposed to reflect the interface.
@jcalcote wrote an excellent book, _Autotools: A Practioner's Guide to
GNU Autoconf, Automake, and Libtool_. There's a section in chapter 7,
_Library Versioning Is Interface Versioning_ which deals with this
exact topic.
I'm aware of that (and read that part of the book!), but I really don't
want to be this careful this versioning. It'd be great to do so, but
I don't have the time. Stating that our interface changes whenever our
library minor version changes is a fine requirement and better than the
current situation. Not ideal, but better.
|
Can we merge now as a temporary measure, but pledge to implement Calcote's method later before we do a stable release? |
Can we merge now as a temporary measure, but pledge to implement
Calcote's method later before we do a stable release?
That's fine for me. We cannot use libtool, but we can trivially store
the SONAME in a small text file and have Meson read it from there.
|
Until the 1.0 release, setting the soname to
version_major.version_minor
gives us more freedom to make changes without being too restricted by ABI compatibility.We never actually really commited to ABI stability before the 1.0 relase - the README states that at the bottom - but I made this decision clearer by updating the "versioning" section.