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

Drop Imath2 support and modernize Imath includes #1852

Open
wants to merge 4 commits into
base: main
Choose a base branch
from

Conversation

jlskuz
Copy link
Contributor

@jlskuz jlskuz commented Mar 9, 2025

Summarize your change.

As quickly discussed in the Slack channel...

OpenEXR developers recommend to use full namespace includes like #include <Imath/ImathBox.h>, but we still use #include <ImathBox.h>.

The support of OpenEXR/Imath 2 blocks changing the includes to full namespace. However Imath 3 has be released 4 years ago and OpenEXR/Imath 2 is no longer on the vfxplatform horizon so it seems appropriated to just remove support for it.

@jlskuz jlskuz changed the title Work/imath3 Drop Imath2 support and modernize Imath includes Mar 9, 2025
@jlskuz jlskuz marked this pull request as draft March 9, 2025 11:33
Signed-off-by: Julius Künzel <julius.kuenzel@kde.org>
@codecov-commenter
Copy link

codecov-commenter commented Mar 9, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 84.80%. Comparing base (c0e97b0) to head (e13c628).
Report is 41 commits behind head on main.

❌ Your changes status has failed because you have indirect coverage changes. Learn more about Unexpected Coverage Changes and reasons for indirect coverage changes.

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##             main    #1852      +/-   ##
==========================================
+ Coverage   84.11%   84.80%   +0.69%     
==========================================
  Files         198      176      -22     
  Lines       22241    12745    -9496     
  Branches     4687     1181    -3506     
==========================================
- Hits        18709    10809    -7900     
+ Misses       2610     1758     -852     
+ Partials      922      178     -744     
Flag Coverage Δ
py-unittests 84.80% <ø> (+0.69%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
src/opentimelineio/composable.h 100.00% <ø> (ø)
src/opentimelineio/mediaReference.h 100.00% <ø> (ø)
src/opentimelineio/serializableObject.h 85.18% <ø> (+14.43%) ⬆️
...melineio/opentimelineio-bindings/otio_bindings.cpp 98.47% <ø> (+0.11%) ⬆️
...ntimelineio/opentimelineio-bindings/otio_imath.cpp 91.66% <ø> (-0.93%) ⬇️
...entimelineio-bindings/otio_serializableObjects.cpp 94.43% <ø> (+0.57%) ⬆️
...ntimelineio/opentimelineio-bindings/otio_utils.cpp 79.38% <ø> (+12.71%) ⬆️

... and 123 files with indirect coverage changes


Continue to review full report in Codecov by Sentry.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 9deff1d...e13c628. Read the comment docs.

🚀 New features to boost your workflow:
  • Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

jlskuz added 2 commits March 9, 2025 18:42
As suggested by Imath devs, see AcademySoftwareFoundation/Imath#136 (comment)

This is possible now that Imath 2 support was dropped

Signed-off-by: Julius Künzel <julius.kuenzel@kde.org>
This will make it easier for downstream users

Signed-off-by: Julius Künzel <julius.kuenzel@kde.org>
@jlskuz jlskuz marked this pull request as ready for review March 9, 2025 17:54
"${PROJECT_SOURCE_DIR}/src/deps/rapidjson/include")

if(USE_DEPS_IMATH)
target_include_directories(opentimelineio PRIVATE "${PROJECT_SOURCE_DIR}/src/deps/Imath/src")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I know PRIVATE was from the original code, but should it be removed since Imath is part of the public API? Would that allow other targets using the opentimelineio target to pick up the Imath dependency? Like the Python bindings, tests, or if OTIO is being used as a Git sub-module.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants