TSC Meeting Notes 2021-09-09

Attendance:

Cary Phillips
Christina Tempelaar-Leitz
John Mertic
Joseph Goldstone
Kimball Thurston
Larry Gritz
Nick Porcino
Peter Hillman
Rod Bogart

Agenda:

  • Status of OpenVDB & 3.1; how can we help?

  • #1143 VFX Platform 2021 CI

  • #1141 Fix issue with unpacked size computation

  • #1140 Remove unused variable _maxScanLineSize from B44Compressor 

  • #1121 Interface link library Threads::Threads not required with glibc 

  • #1094 cmake fails with -DPYTHON=ON; #207 Fix python imath export; #208 Use ${Imath_VERSION} for python project version 

  • Zip compression level option

  • OpenEXRCore fuzz test

  • What's the proper version setting on the master branch?

  • Box as an interval

Discussion:

  • Rod:

  •  

    • Epic is working UE upgrading to 3.1.

  • Namespacing:

  •  

    • Inline version namespacing.

    • Switch to versioning in the namespace. Put each class in a sub-version, then inline that. Only bump it on the things that change. Reimplement the new one in terms of the old one.

    • C++11 adds namespace inlining. It’s the C++11 way of providing concrete compatibility.

    • Everything would look the same, but there’s a hidden namespace.

    • Peter: we thought about it when going to v2.

    • Kimball: I’ll put together an example.

  • Status of OpenVDB & 3.1; how can we help?

  •  

    • Cary: initial PR isn’t usable, they must support OpenEXR/IlmBase 2.x. 

    • The targets/lib names have changed, must support both old and new.

    • Larry: the solution is to use generator expressions, which expand to nothing for the mismatched version.

  • #1094 cmake fails with -DPYTHON=ON; #207 Fix python imath export 

  •  

    • Kimball: As it is, can’t build python separately; it won’t pick up ${Imath_VERSION} from the top level.

    • Cary: No need for any fancy build options here. A top-level build with a switch for python should be sufficient. No need to support building python after a top-level build.

    • Kimball: In that case, most of src/python/CMakeLists.txt can go away, it’s just a subdirectory.  I will look into simplifying it.

  • #1140 Remove unused variable _maxScanLineSize from B44Compressor 

  • CI & VFX ref platform years

  •  

    • Could install cross compilers. Clang has cross compilers.

    • Unfortunately, all the tricky bugs are runtime, not buildtime, so we really need the hardware.

    • GitHub Actions doesn’t provide M1. Wait for M1 to be available?

    • Larry: I used to use Travis. They have Linux ARM instances.

    • Peter: full test on Raspberry Pi takes 18 hours to run. 

    • But we only really need to run it prior to a release, not on every PR.

  • Fuzz testing:

  •  

    • Cary: No progress to speak of.