TSC Meeting Notes 2025-10-02
Attendance:
Guests:
Pierre-Anthony Lemieux, Sandflow Consulting
Li Ji, Industrial Light & Magic
Discussion:
Quick Recap
The team discussed various technical issues related to OpenJPH, including code vendoring and header file inclusion patterns, with Kimball presenting a working prototype for vendoring OpenJPH code. They addressed concerns about IMath ABI compatibility and versioning, agreeing to stop changing minor version numbers to avoid compatibility issues with downstream projects. The team also discussed codec implementation approaches and compile configuration options, while Pierre-Anthony shared updates on pipeline context implementation and Kimball offered to share an alternate approach for review.
Next Steps
Cary to look into the OpenJPH include paths issue tomorrow.
Kimball to submit a pull request for vendoring OpenJPH code in the next couple of days.
Kimball to push up his alternative approach to introducing a context at the pipeline level as a WIP for Pierre-Anthony to review.
Kimball to accept PR 2126 .
Larry/Team to lobby the VFX Reference Platform to list a specific IMATH version alongside OpenEXR versions.
Team to consider doing a cleanup pass to ensure consistent include path patterns throughout the codebase.
Cary to remove the help demand installation from CI checks due to spurious failures.
Summary
OpenJPH Vendorization Discussion:Cary discussed the need to address issues with OpenJPH, including a failing PR and the suggestion to vendor the code to resolve installation problems. Larry suggested an alternative approach to avoid vendoring, but Cary emphasized Kimball's plan to vendor it as the preferred solution. Cary also inquired about the status of PRs related to the B44 table, noting that the previous discussion was not conclusive. Cary planned to look into the OpenJPH issue further and follow up on the B44 table PRs.
Codec Table Implementation Discussion:The team discussed two approaches for handling tables in a codec implementation: one that creates tables at first use (PR 2126) and another that doesn't use tables at all but is slower. Kimball noted that while RS's change is reasonable and safe, they could potentially reduce the virtual RSS by moving the tables into a context that lives with the encoding/decoding pipeline. Cary and Kimball agreed that the added complexity of optimizing for a rarely used codec wasn't worth it, and the simpler solution that reduces object size would be sufficient.
OpenJPH Vendor Discussion:Kimball and Cary discussed the addition of a compile configuration option, deciding it would be unnecessary due to its limited use and potential for technical debt. Kimball mentioned a working prototype for vendoring OpenJPH code, which he plans to clean up and submit as a patch. Larry inquired about the feasibility of incorporating future OpenJPH changes into the vendor, to which Kimball confirmed it would be similar to the existing process for deflate. Cary raised concerns about prefixed OpenJPH header files, which Kimball was unaware of and needed to investigate further.
Consistent Header Inclusion Practices:The team discussed header file inclusion patterns for OpenEXR and IMF libraries, with Larry advocating for specifying the full path including the library name to avoid conflicts with system headers. Kimball and Peter noted that while the build system handles include paths correctly, standalone builds or copies of code might fail without the library prefix. Cary warned against merging PR 2122 as it contains unrelated changes, and the team agreed to do a cleanup pass to ensure consistent header inclusion patterns across the codebase.
IMath ABI Versioning Strategy Discussion:The team discussed issues with IMath ABI compatibility and versioning. They agreed to stop changing the minor version number for IMath releases to avoid compatibility problems with downstream projects like OpenEXR and Alembic. Kimball proposed a solution to address the namespace and versioning issues, which he plans to implement and share with the team. The group also touched on spurious CI failures and the need to remove the help man page installation. Pierre-Anthony mentioned his work on introducing context at the pipeline level, and Kimball offered to share an alternate approach for review.