-
Notifications
You must be signed in to change notification settings - Fork 663
v3.3.3 commits and notes #2004
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
Merged
cary-ilm
merged 55 commits into
AcademySoftwareFoundation:RB-3.3
from
cary-ilm:v3.3.3-commits
Mar 20, 2025
Merged
v3.3.3 commits and notes #2004
cary-ilm
merged 55 commits into
AcademySoftwareFoundation:RB-3.3
from
cary-ilm:v3.3.3-commits
Mar 20, 2025
Conversation
This file contains hidden or 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
…1916) * Release notes for 3.3.2 Signed-off-by: Cary Phillips <[email protected]> * 3.3.2 release date Nov 10 Signed-off-by: Cary Phillips <[email protected]> * Add AcademySoftwareFoundation#1912 to release notes Signed-off-by: Cary Phillips <[email protected]> * release notes and website news for v3.3.2 Signed-off-by: Cary Phillips <[email protected]> --------- Signed-off-by: Cary Phillips <[email protected]>
…reFoundation#1910) Bumps [pypa/gh-action-pypi-publish](https://github.com/pypa/gh-action-pypi-publish) from 1.11.0 to 1.12.2. - [Release notes](https://github.com/pypa/gh-action-pypi-publish/releases) - [Commits](pypa/gh-action-pypi-publish@fb13cb3...15c56db) --- updated-dependencies: - dependency-name: pypa/gh-action-pypi-publish dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…n#1913) Bumps [scikit-build-core](https://github.com/orgs/scikit-build) from 0.8.1 to 0.10.7. - [Commits](https://github.com/orgs/scikit-build/commits) --- updated-dependencies: - dependency-name: scikit-build-core dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…ation#1914) Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.27.0 to 3.27.1. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](github/codeql-action@6624720...4f3212b) --- updated-dependencies: - dependency-name: github/codeql-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…ation#1918) Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.27.1 to 3.27.4. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](github/codeql-action@4f3212b...ea9e4e3) --- updated-dependencies: - dependency-name: github/codeql-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…ndation#1922) When we implemented the "rule of 5" (PR AcademySoftwareFoundation#601) in 2019, I added code to testAttributes.cpp to validate the behavior, specifically related to the TypedAttribute class, but in retrospect, this code isn't reliable, so I propose eliminating the test altogether. The test counts invocations of the various constructors, destructors, and move/assignment operators, expecting them to be consistent, but compilers can optionally optimize some of these operations away, producing inconsistent results. In particular, a Debug build on Windows produces different results from a Release build. Our CI has not historically tested a Windows Debug build, which explains why we never caught this. The exact behavior may have also changed with C++17. All the more reason to avoid such picky tests. This does not change the library code, only the tests. Signed-off-by: Cary Phillips <[email protected]>
…on#1920) The CI was failing to actually set OPENEXR_THREADING_ENABLED for the macOS and Windows builds. And the Windows build as failing with threading disabled, due to a missing header. Signed-off-by: Cary Phillips <[email protected]>
…ation#1923) Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.27.4 to 3.27.5. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](github/codeql-action@ea9e4e3...f09c1c0) --- updated-dependencies: - dependency-name: github/codeql-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
) * Workaround CI workflow for vfx 2022/2021 Build for VFX reference platform prior to 2023, which requires a workaround to run an old version of glibc required by the ASWF Docker images. This doesn't easily integrate with the existing CI workflow, and it can be deprecated entirely once we've moved beyond support for the old CentOS-based VFX reference platform years. See this discussion for details: https://academysoftwarefdn.slack.com/archives/C0169RX7MMK/p1732574400981949 Signed-off-by: Cary Phillips <[email protected]> * remove centos7 label Signed-off-by: Cary Phillips <[email protected]> --------- Signed-off-by: Cary Phillips <[email protected]>
Signed-off-by: Cary Phillips <[email protected]>
Bumps [actions/cache](https://github.com/actions/cache) from 4.1.2 to 4.2.0. - [Release notes](https://github.com/actions/cache/releases) - [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md) - [Commits](actions/cache@6849a64...1bd1e32) --- updated-dependencies: - dependency-name: actions/cache dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…ation#1932) Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.27.5 to 3.27.6. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](github/codeql-action@f09c1c0...aa57810) --- updated-dependencies: - dependency-name: github/codeql-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…on#1924) Bumps [pypa/cibuildwheel](https://github.com/pypa/cibuildwheel) from 2.21.3 to 2.22.0. - [Release notes](https://github.com/pypa/cibuildwheel/releases) - [Changelog](https://github.com/pypa/cibuildwheel/blob/main/docs/changelog.md) - [Commits](pypa/cibuildwheel@7940a4c...ee63bf1) --- updated-dependencies: - dependency-name: pypa/cibuildwheel dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…wareFoundation#1921) * Restructure CI to use reusable steps, and add new checks The goal of this change is to add tests to catch some recent regressions that the existing CI missed: * Validate that the proper files get installed. A recent innocuous-seeming change to the cmake config caused libdeflate files to make it into the installation and we didn't catch it. This change introduces a validation step that compares the install_mantifest.txt file from each job to a reference maintained in share/ci/install_manifest. Each job has a "build" number that identifies the reference manifest. NOTE: This means that all future changes to installed headers and libraries must be reflected in these manifests. * Validate building against prebuilt/external Imath and libdeflate libraries, and also test the "force internal" option. * Validate building with custom namespaces To make the workflow files easier to maintain, this splits two parts: * The ci_steps.yml file declares a common set of steps for Linux, macOS, and Windows, and a set of variables named to match the various CMake configuration options. * The ci_workflow.yml invokes these steps with a succession of builds that provide collections of CMake settings, which is passes to the reusable workflow via the "with:" statement. The "with:" statements provide default variable settings, which means each build specifies only non-default settings, for a compact summary of what's unique about that job. Some notes: * By default, the builds now pre-install Imath and libdeflate, so that the main OpenEXR build picks them up. A special build now validates the behavior of OPENEXR_FORCE_INTERNAL_IMATH and OPENEXR_FORCE_INTERNAL_DEFLATE, which were previously untested. * For each OS, we now build and test these configurations: 1. Release 2. Debug 3. Static 4. Threading disabled 5. pkgconfig, docs, examples, tools disabled. This was also previously not tested. 6. Legacy VFX reference platform compiler(s) and/or os(s) * The "label:" setting forms the description of the job on the GitHub Acions page, prepended with the OS and "build" number, which makes it easier to cross reference between the entries on the Actions page and the workflow file. * We no longer build with clang on Linux, since we do a clang build on macOS. Signed-off-by: Cary Phillips <[email protected]> * Add Linux clang build Signed-off-by: Cary Phillips <[email protected]> --------- Signed-off-by: Cary Phillips <[email protected]>
…ation#1939) Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.27.6 to 3.27.9. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](github/codeql-action@aa57810...df409f7) --- updated-dependencies: - dependency-name: github/codeql-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…reFoundation#1937) Bumps [pypa/gh-action-pypi-publish](https://github.com/pypa/gh-action-pypi-publish) from 1.12.2 to 1.12.3. - [Release notes](https://github.com/pypa/gh-action-pypi-publish/releases) - [Commits](pypa/gh-action-pypi-publish@15c56db...67339c7) --- updated-dependencies: - dependency-name: pypa/gh-action-pypi-publish dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* update pyproject.toml and python workflows: Add numpy dependency - Additional dependencies required for the build environment Numpy must be installed in the python environment where the build is being performed in order to build. - Automatic installation of dependencies like a normal python package When installing this package, if numpy does not exist in the python environment, it will be installed automatically. Signed-off-by: HyeongSeok Kim <[email protected]> * update python-wheels-*yml, pyproject.toml: remove BEFORE_BUILD, remove numpy in build requires - python-wheels-*yml: When testing on other PRs, I found that dependencies were not properly installed for each build case, so I added this code. However, this PR is for adding numpy dependencies, so it is not needed as @JeanChristopheMorinPerso suggested. - pyproject.toml: If you are going to do any additional work with the build artifacts, like generating stubs, you will need numpy in your build environment, but it is not needed at the moment. I agree with the review by @JeanChristopheMorinPerso. Signed-off-by: HyeongSeok Kim <[email protected]> --------- Signed-off-by: HyeongSeok Kim <[email protected]>
3c36c29 to
be3c716
Compare
Signed-off-by: Darby Johnston <[email protected]>
objectToBox2f was failing to store the value in the proper argument. Also, the test was never actually creating a box out of floats, it was only testing integers. This also fixes an as-yet-undetected error with the use of Imf namespace in PyOpenEXR_old.cpp, where there's already a `using` statement. Signed-off-by: Cary Phillips <[email protected]>
Copy/paste error in objectToV3, should be looking for a.size()==3, not 2. Signed-off-by: Cary Phillips <[email protected]>
Signed-off-by: Cary Phillips <[email protected]>
Convert the quantization from a massive table to a bit-fiddling algorithm which is more code but significantly faster (in some cases, almost 2x). This also eliminates the giant lookup tables from the binary, which reduces the compiled size of the core library. Beside the identity table (value in, same value out), those quantization tables are preserved in the unit tests to ensure correct behavior. The tests are defaulted to a light-er weight test, which should test the variety of error tolerance ranges, but there is a deeper test that can be enabled by switching an ifdef in the compression tables test. As a motivation for improvement, with this change, the size for the core library is reduced by more than half (2.2MB to 0.99MB) while performance is improved from 0.23s for an encode to 0.155s on x86_64 with avx2 / f16c enabled anyway. Other platforms will hopefully experience similar improvements. Signed-off-by: Kimball Thurston <[email protected]>
uses likely / unlikely macros to better guide branch predictor, convert some static / local functions from functions to macros to avoid having to take the address of a local variable, preventing register optimizations, and finally guide pointer aliasing to get some speed improvements in the huf encoder / decoder. Signed-off-by: Kimball Thurston <[email protected]>
The fast unpack routines for 3 and 4 channels were not designed to handle sub-sampled images, but need to appear before other fallback disablement in the choice logic. Until that choice logic can be simplified, add additional checks to avoid heading to that branch Signed-off-by: Kimball Thurston <[email protected]>
Signed-off-by: Dimitris Apostolou <[email protected]>
…Foundation#1961) * Update security policy regarding backporting patches This wording captures our policy: we commit to fixes for main and the most recent minor release, but prior to that, discussed on a case-by-case basis. Better to leave it at than than attempt to be more specific, since those specifics can be determined based on the situation. Signed-off-by: Cary Phillips <[email protected]> * Support policy for 2.0-2.4: 2.4 was the first release by the ASWF, recent enough to negotiate patches. Prior to that our knowledge is so limited, and CMake support was so fragile, that we should not even entertain the possibility. Signed-off-by: Cary Phillips <[email protected]> --------- Signed-off-by: Cary Phillips <[email protected]>
…reFoundation#1966) The libdeflate and Imath installation steps require bash, not PowerShell, otherwise they fail silently and fall back to the auto fetch/build. And the install manifests for the validation were correspondingly incorrect. Signed-off-by: Cary Phillips <[email protected]>
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 3 to 4. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](actions/upload-artifact@v3...v4) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]>
This requires all artifacts to have unique names, so the install_manifest.txt files need to uploaded with the name that includes the os and build number. Signed-off-by: Cary Phillips <[email protected]>
Signed-off-by: Peter Hillman <[email protected]>
* update all upload-artifact usage to v4 Signed-off-by: Kimball Thurston <[email protected]> * replicate unique name change Signed-off-by: Kimball Thurston <[email protected]> * Update .github/workflows/python-wheels-publish-test.yml -${{ env.INSTALL_MANIFEST }} should definitely not get appended to the name, that was appropriate only for the install manifests in ci_steps.yml. Signed-off-by: Cary Phillips <[email protected]> * Update .github/workflows/python-wheels-publish.yml -${{ env.INSTALL_MANIFEST }} should definitely not get appended to the name, that was appropriate only for the install manifests in ci_steps.yml. Signed-off-by: Cary Phillips <[email protected]> * Update .github/workflows/ossfuzz_workflow.yml Signed-off-by: Cary Phillips <[email protected]> * Update .github/workflows/python-wheels.yml Signed-off-by: Cary Phillips <[email protected]> * Update .github/workflows/scorecard.yml Signed-off-by: Cary Phillips <[email protected]> * Update .github/workflows/scorecard.yml Signed-off-by: Cary Phillips <[email protected]> --------- Signed-off-by: Kimball Thurston <[email protected]> Signed-off-by: Cary Phillips <[email protected]> Co-authored-by: Cary Phillips <[email protected]>
…tion#1973) * clean up exrmetrics help, simplify JSON output Signed-off-by: Peter Hillman <[email protected]> * revert exrmetrics to returncode 0 with --help Signed-off-by: Peter Hillman <[email protected]> --------- Signed-off-by: Peter Hillman <[email protected]>
* Add website page for exrmetrics Signed-off-by: Cary Phillips <[email protected]> * add missing backticks Signed-off-by: Cary Phillips <[email protected]> * usage examples Signed-off-by: Cary Phillips <[email protected]> * run description Signed-off-by: Cary Phillips <[email protected]> * Use a pool... Signed-off-by: Cary Phillips <[email protected]> --------- Signed-off-by: Cary Phillips <[email protected]>
the std::filesystem::path mechanism is reasonable, but needs to be told it to look for a utf-8 string, and is not automatically that, and the standards committee must have realized there were issues and change the api in c++20 Signed-off-by: Kimball Thurston <[email protected]>
Signed-off-by: Cary Phillips <[email protected]>
…on#1974) If the zipped data unpacks to a buffer which is too large, but still within the scratch buffer size, could potentially write past the end of the buffer Signed-off-by: Kimball Thurston <[email protected]>
…reFoundation#1980) for deep frame buffers, when filling, if the caller does not provide output memory for a particular sample set, do not crash. Signed-off-by: Kimball Thurston <[email protected]>
If the chunk table is unable to provide the specified data window, do not allocate the frame buffer (or cache framebuffer) to that size Signed-off-by: Kimball Thurston <[email protected]>
In SSE, we were incrementing a pointer as if it were a uint16_t, not an si128, causing out of bounds accesses on non-block aligned chunks. Similarly, simplify the alignment logic and check return values and pointers in related accesses (non-block aligned linear lut lookup). Signed-off-by: Kimball Thurston <[email protected]>
If we know the file size, we should truncate the header parse to only read the file at most. Otherwise, if the file size is unknown (stream) then be conservative (and slower) and read 1 byte at a time for the header parse. Once we know the file, that should be free to read chunks Signed-off-by: Kimball Thurston <[email protected]>
…#1986) * Adjust the clamping on the dwa compression The dwa compression is not truly a quality level like other things, so a maximal value is controlling quantization, not quality. A value of 0 is allowed, but negative is not. Signed-off-by: Kimball Thurston <[email protected]> * improve tests for dwa compression level set Signed-off-by: Kimball Thurston <[email protected]> --------- Signed-off-by: Kimball Thurston <[email protected]>
…oundation#1983) * add an OPENEXR_INSTALL_DEVELOPER_TOOLS option This new option will control whether or not the tools considered to be "developer" tools should be installed. These are tools useful for developing and debugging OpenEXR itself that might not be suitable for distribution to end users. exrcheck is currently the only tool considered to be a developer tool. Signed-off-by: Matt Johnson <[email protected]> * exrcheck: update CMakeLists.txt to enable developer tool installation This makes the CMakeLists.txt for exrcheck look like other tools like exrinfo and uncomments the CMake call to install the tool. One difference though is that exrcheck is considered a developer tool, and as such is only installed when the OPENEXR_INSTALL_DEVELOPER_TOOLS option is enabled. Signed-off-by: Matt Johnson <[email protected]> --------- Signed-off-by: Matt Johnson <[email protected]>
* Update python-wheels.yml Signed-off-by: Johnny <[email protected]> * Update python-wheels-publish.yml Signed-off-by: Johnny <[email protected]> * Update python-wheels.yml Signed-off-by: Johnny <[email protected]> * Update python-wheels-publish.yml Signed-off-by: Johnny <[email protected]> * Update python-wheels-publish.yml Signed-off-by: Johnny <[email protected]> * Update python-wheels.yml Signed-off-by: Johnny <[email protected]> * Update python-wheels-publish-test.yml Signed-off-by: Johnny <[email protected]> --------- Signed-off-by: Johnny <[email protected]> Co-authored-by: Cary Phillips <[email protected]>
… it will set this variable if OpenEXR is a subproject (AcademySoftwareFoundation#1987) fix_1981: Don't rewrite the header file of libdeflate if not necessary. Avoid useless rebuilds after cmake reconfigure fix_1981: Remove whitespace Signed-off-by: Rasmus Debitsch <[email protected]> Co-authored-by: Cary Phillips <[email protected]>
…eFoundation#1993) Signed-off-by: Todica Ionut <[email protected]> Co-authored-by: Cary Phillips <[email protected]>
…n#1990) Signed-off-by: Peter Hillman <[email protected]> Co-authored-by: Cary Phillips <[email protected]>
* docs: clarify exr2aces output format Inspired by discussion in AcademySoftwareFoundation#1962. Adds additional background to the ACES Image Container format produced by exr2aces. Signed-off-by: Patrick Hulce <[email protected]> * docs: update exr2aces.rst with recommended edits Signed-off-by: Patrick Hulce <[email protected]> * docs: add justified indentation Signed-off-by: Patrick Hulce <[email protected]> * Use inline link instead. Co-authored-by: Cary Phillips <[email protected]> Signed-off-by: Patrick Hulce <[email protected]> * Remove link reference Signed-off-by: Patrick Hulce <[email protected]> --------- Signed-off-by: Patrick Hulce <[email protected]> Co-authored-by: Cary Phillips <[email protected]>
* check string size when looking at the type If corrupt files put nul or other non-printing characters in the string data it can be difficult to debug when the type name is printed but does not compare equal. Signed-off-by: Kimball Thurston <[email protected]> * remove duplicate max sizes use the size defaults in the core library Signed-off-by: Kimball Thurston <[email protected]> * add check when in reduceMemory ahead of sample count alloc when there are large tiles, need to check the memory prior to allocating the sample count array. Additionally set a max tile size even when not in reduce memory, although set larger than any known use for a tile size Signed-off-by: Kimball Thurston <[email protected]> --------- Signed-off-by: Kimball Thurston <[email protected]> Co-authored-by: Cary Phillips <[email protected]>
…wareFoundation#1952) * Fix issue with atomic_compare_exchange_strong due to inappropriate type on 32 bit platforms Signed-off-by: Christopher Schwartz <[email protected]> * Change casted type to match the type of the assigned to variable on both, 32 and 64 bit platforms Signed-off-by: Christopher Schwartz <[email protected]> --------- Signed-off-by: Christopher Schwartz <[email protected]> Co-authored-by: Cary Phillips <[email protected]>
Signed-off-by: Peter Hillman <[email protected]>
…#1999) These apparently got overlooked when originally committing these install manifests, and the test didn't fail because the numbers happen to match as is, but that won't be the case going forward. Signed-off-by: Cary Phillips <[email protected]>
Signed-off-by: Sergey Fedorov <[email protected]>
Signed-off-by: Cary Phillips <[email protected]>
Note that libImath.so is missing from the install manifest because OpenEXR v3.3 links against Imath 3.1, which has a bug where the libImath.so symlink fails to get added to the install manifest, fixed in PR AcademySoftwareFoundation#366. Signed-off-by: Cary Phillips <[email protected]>
Signed-off-by: Cary Phillips <[email protected]>
be3c716 to
01a2000
Compare
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.
Review the v3.3.3 release here
Website preview: https://openexr--2004.org.readthedocs.build/en/2004/