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

Update and simply SO versioning policy #339

Merged
merged 1 commit into from
Aug 3, 2023

Conversation

cary-ilm
Copy link
Member

@cary-ilm cary-ilm commented Aug 1, 2023

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.

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 <[email protected]>
@cary-ilm cary-ilm merged commit 6346a15 into AcademySoftwareFoundation:main Aug 3, 2023
23 checks passed
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 <[email protected]>
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 <[email protected]>
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 [email protected] 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 <[email protected]>
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 <[email protected]>
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.

2 participants