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

Lt so version #59

Merged
merged 3 commits into from Feb 11, 2016
Merged

Lt so version #59

merged 3 commits into from Feb 11, 2016

Conversation

radarsat1
Copy link
Contributor

This is on top of PR #58 , but I made it a separate PR because it might need discussion. I noticed when compiling that the version appended to the .so was incorrect. Importantly, in other projects, this 3-digit number is not the release number of the software, but rather is a compatibility indicator. The rules of thumb for updating the number can be seen in the changes to configure.ac. I left it at 1.0.0 because i wasn't sure what it should be for RtMidi. I propose adding this to RtMidi as a way of tracking forwards- and backwards API compatibility, but the PR should be fixed to have an appropriate number as compared to previous releases.

@garyscavone
Copy link
Contributor

Is this going to cause any backward compatibility problems for users?

@radarsat1
Copy link
Contributor Author

Just compiled the librtmidi-2.1.0 release and it produces a binary librtmidi.so.2.1.0, with symlinks librtmidi.so.2 and librtmidi.so. Programs would normally link to librtmidi.so.2. The idea is that the first number is only incremented for ABI-incompatible changes. So, when adding functions/classes, you might mark it librtmidi.so.2.2.0, or simply fixing a bug would be librtmidi.so.2.1.1. In both cases, programs would still successfully find the new versions of the library, because of the librtmidi.so.2 symlink. However, if you change a function name for example, then bump the number to librtmidi.so.3.0.0. In that case, old programs may find librtmidi.so.2, but new programs using the new function name will link against librtmidi.so.3.

Anyways, to make a "clean start," I propose setting lt_current to 3, and lt_age and lt_revision to 0, producing librtmidi.so.3.0.0. Then, following the rules for incrementing these numbers should be good for the future. (Note: Debian loves this.)

Just for reference:

Debian packaging guide: https://www.netfort.gr.jp/~dancer/column/libpkg-guide/libpkg-guide.html#sonameapiabi

Libtool manual: https://www.gnu.org/software/libtool/manual/html_node/Libtool-versioning.html

garyscavone added a commit that referenced this pull request Feb 11, 2016
@garyscavone garyscavone merged commit a94e782 into thestk:master Feb 11, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants