-
Notifications
You must be signed in to change notification settings - Fork 116
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
Update and simply SO versioning policy #339
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This mirrors OpenEXR PR [1498](AcademySoftwareFoundation/openexr#1498). This change retires the "libtool" versioning scheme and adopts a policy of appending the MAJOR.MINOR.PATCH software release name to the SONAME to form the real name of the shared library. The SOVERSION is specified via the OPENEXR_LIB_SOVERSION setting in CMakeLists.txt and is the single number that increments whenever, and only when, the ABI changes in non-backwards-compatible ways. In practice, this corresponds to major and minor releases. The resulting real shared library file names look like, for example, libOpenEXR.so.31.3.2.0, where libOpenEXR.so.31 is the SONAME and .3.2.0 identifies the corresponding software release. This naming scheme helps reinforce the correspondence between the shared library's real file name and the software release it corresponds to, more so than would be indicated by a single increasing number. By OpenEXR project policy and discussion of the technical steering committee, the additional versioning information in the libtool versioning scheme is too confusing and error-prone to follow, without offering additional practical benefit. Documentation is in CMakeLists.txt and in docs/install.rst. Signed-off-by: Cary Phillips <cary@ilm.com>
meshula
approved these changes
Aug 2, 2023
cary-ilm
added a commit
to cary-ilm/Imath
that referenced
this pull request
Jan 23, 2024
This should have gone into AcademySoftwareFoundation#339. It mirrors the description for OpenEXR. Signed-off-by: Cary Phillips <cary@ilm.com>
cary-ilm
added a commit
to cary-ilm/Imath
that referenced
this pull request
Jan 23, 2024
This mirrors OpenEXR PR [1498](AcademySoftwareFoundation/openexr#1498). This change retires the "libtool" versioning scheme and adopts a policy of appending the MAJOR.MINOR.PATCH software release name to the SONAME to form the real name of the shared library. The SOVERSION is specified via the OPENEXR_LIB_SOVERSION setting in CMakeLists.txt and is the single number that increments whenever, and only when, the ABI changes in non-backwards-compatible ways. In practice, this corresponds to major and minor releases. The resulting real shared library file names look like, for example, libOpenEXR.so.31.3.2.0, where libOpenEXR.so.31 is the SONAME and .3.2.0 identifies the corresponding software release. This naming scheme helps reinforce the correspondence between the shared library's real file name and the software release it corresponds to, more so than would be indicated by a single increasing number. By OpenEXR project policy and discussion of the technical steering committee, the additional versioning information in the libtool versioning scheme is too confusing and error-prone to follow, without offering additional practical benefit. Documentation is in CMakeLists.txt and in docs/install.rst. Signed-off-by: Cary Phillips <cary@ilm.com>
netbsd-srcmastr
referenced
this pull request
in NetBSD/pkgsrc
Jan 28, 2024
## Version 3.1.10 (January 26, 2024) Patch release with various build/bug fixes. Build fixes: - Fix a problem where downstream projects using Imath would build python bindings even if they weren't requested. - Fix for missing `std::bit_cast` - Fix missing/necessary use of IMATH_HOSTDEVICE - IMATH_INSTALL_PKG_CONFIG is now on by default, even on Windows - Fix calling default constructor by uniform init in TypeTraits - Fix redundant PYIMATH_EXPORTS causing compile issues on Windows Clang - Update to SO versioning policy: This change adopts a policy of appending the ``MAJOR.MINOR.PATCH`` software release name to the ``SONAME`` to form the real name of the shared library. See [website/install.rst](website/install.rst) and [PR #339](AcademySoftwareFoundation/openexr#339) for more details. Bug fixes: - Fix half to float giving wrong results on older x86_64 CPUs on Windows Other changes: - succ()/pred() now use std::nextafter(). - Expand epsilon bounds for m44x pyImath test. - Rename "docs" to "website". - Add missing copyright/license identifiers. ### Merged Pull Requests * \[[#363](https://github.com/AcademySoftwareFoundation/Imath/pull/363)\] Update install instructions to reflect new SO versioning policy * \[[#362](https://github.com/AcademySoftwareFoundation/Imath/pull/362)\] Require sphinx 5.0 * \[[#361](https://github.com/AcademySoftwareFoundation/Imath/pull/361)\] src/python/config/ModuleDefine.cmake: do not install a cmake file exporting targets for dependent projects * \[[#358](https://github.com/AcademySoftwareFoundation/Imath/pull/358)\] Fix half to float giving wrong results on older x86_64 CPUs on Windows * \[[#353](https://github.com/AcademySoftwareFoundation/Imath/pull/353)\] Changed implementation of succ and pred to use std::nextafter. * \[[#350](https://github.com/AcademySoftwareFoundation/Imath/pull/350)\] Fix check for the availability of std::bit_cast * \[[#349](https://github.com/AcademySoftwareFoundation/Imath/pull/349)\] IMATH_INSTALL_PKG_CONFIG is on by default, even on Windows * \[[#347](https://github.com/AcademySoftwareFoundation/Imath/pull/347)\] Export Imath from the build tree and so on. * \[[#344](https://github.com/AcademySoftwareFoundation/Imath/pull/344)\] rm unnecessary IMATH_HOSTDEVICE attributes. * \[[#342](https://github.com/AcademySoftwareFoundation/Imath/pull/342)\] Add missing copyright/license identifiers * \[[#341](https://github.com/AcademySoftwareFoundation/Imath/pull/341)\] Remove unnecessary files * \[[#340](https://github.com/AcademySoftwareFoundation/Imath/pull/340)\] Fix calling default constructor by uniform init. * \[[#339](https://github.com/AcademySoftwareFoundation/Imath/pull/339)\] Update and simply SO versioning policy * \[[#338](https://github.com/AcademySoftwareFoundation/Imath/pull/338)\] Rename "docs" to "website" * \[[#333](https://github.com/AcademySoftwareFoundation/Imath/pull/333)\] Expand epsilon bounds for m44x pyImath test * \[[#331](https://github.com/AcademySoftwareFoundation/Imath/pull/331)\] Fixed redundant PYIMATH_EXPORTS causing compile issues on Windows Clang * \[[#326](https://github.com/AcademySoftwareFoundation/Imath/pull/326)\] Use security@openexr.com for consistency * \[[#320](https://github.com/AcademySoftwareFoundation/Imath/pull/320)\] Add missing IMATH_HOSTDEVICE to Matrix33<T>::invert(bool)
cary-ilm
added a commit
that referenced
this pull request
Feb 29, 2024
This should have gone into #339. It mirrors the description for OpenEXR. Signed-off-by: Cary Phillips <cary@ilm.com>
cary-ilm
added a commit
that referenced
this pull request
Sep 4, 2024
This should have gone into #339. It mirrors the description for OpenEXR. Signed-off-by: Cary Phillips <cary@ilm.com>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This mirrors OpenEXR PR 1498.
This change retires the "libtool" versioning scheme and adopts a policy of appending the MAJOR.MINOR.PATCH software release name to the SONAME to form the real name of the shared library.
The SOVERSION is specified via the OPENEXR_LIB_SOVERSION setting in CMakeLists.txt and is the single number that increments whenever, and only when, the ABI changes in non-backwards-compatible ways. In practice, this corresponds to major and minor releases.
The resulting real shared library file names look like, for example, libOpenEXR.so.31.3.2.0, where libOpenEXR.so.31 is the SONAME and .3.2.0 identifies the corresponding software release.
This naming scheme helps reinforce the correspondence between the shared library's real file name and the software release it corresponds to, more so than would be indicated by a single increasing number.
By OpenEXR project policy and discussion of the technical steering committee, the additional versioning information in the libtool versioning scheme is too confusing and error-prone to follow, without offering additional practical benefit.