-
Notifications
You must be signed in to change notification settings - Fork 49
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
Improve shared object versioning #155
Comments
Thank you Milos. I will look into this. 0.17 has changes to both library API and apps. |
Thanks. There was e.g. no such change between 0.15 and 0.16, it was "just" performance dynamically linked apps would get for free w/o a real need to rebuild... So, could've been a patch update only, but I get why the performance bump might be seen as a more significant one. Anyhow, I guess a separate API/ABI versioning might provide a way to manage releases in a more flexible fashion. Or just be more strict on the patch vs minor... |
One of the hiccups I faced regarding this is that the "version" is included in the This is the first time I have seen a "Version identifier" in a lib file. It would be nice if the For example, ffmpeg does:
but installs
which has the 'so version' in the dll, but not in the lib file. In my release of openjph i'm patching out this behavior with conda-forge/openjph-feedstock#1 but I don't know if what you would prefer. |
I don't see this problem building w/ MinGW - e.g. in the MSYS2 package one gets w/o any patching
(.a is the true static lib built w/ Edit: Ah, there is a different MSVC path that could indeed be improved (or simply removed so people can handle it w/ CMake options/properties?)... |
If you change ABI then change (increase) major version number too: |
Thank you for your suggestion. I think you agree with Milos. Yes, my worry is that I might need to change the ABI often (I know this is a bad idea, because it breaks compatibility with existing apps) -- then I will end be with a high number for the major. I feel I am still far away from version 1.0 -- still a lot of work needs to be done. I still need to think it through. Suggestions are welcome. |
Generally for projects with version "0", the minor version is treated at the "major" lol!!!! Great work on this, do what feels right for you tbh. |
Currently because of
OpenJPH/src/core/CMakeLists.txt
Line 139 in 77aae49
it is necessary to rebuild all clients on every minor release, even if API/ABI has not changed, which is somewhat inconvenient (and wasteful).
Either
The text was updated successfully, but these errors were encountered: