Minutes from 110th OpenVDB TSC meeting, October 26th, 2021, (EDT)

Attendees: *Ken* M., *Jeff* L., *Andre* P, *Nick* A., *Dan* B.,
*Rich* J.

Additional Attendees: JT Nelson (Blender), Bruce Cherniak (Intel),
Greg Hurst (United Therapeutics), Kyle Wardlow (United Therapeutics)

Regrets:

Agenda:

1) Confirm Quorum
2) Secretary
3) Forum
4) Release 9
5) PR-1215
6) PR-1182
7) PR-1202
8) Post Version 9
9) TAC Update
10) PR-1219
11) Next meeting

1) Confirm Quorum

Quorum is present.

2) Secretary

Secretary is Andre Pradhana.

3) Forum

There is nothing on the forum to discuss.

4) Release 9

We will release OpenVDB 9.0.0 on Friday, October 29, 2021. If we have things
to fix, we will release a patch. Dan says that the release process is
relatively quick, e.g. there are automated processes to build the documentation
through CI.

What needs to get into OpenVDB version 9.0.0: (a) NanoVDB (PR-1215); 
(b) explicit template instantiation (PR-1182); and (c) OpenVDB AX python
hook fix (PR-1202). Nick says that Point Statistics (PR-997) does not
need to get into version 9, since it has a lot of feedback from Dan.

Ken asks who can do the release this time. Andre volunteers. We agree to
have all the PRs to be merged to master by Friday at noon Pacific Time.
The checklist is in [tsc/process/release.md](https://github.com/AcademySoftwareFoundation/openvdb/blob/master/tsc/process/release.md).
 
Nick thinks that version 9 should contain all the pending changes that
are listed in version 8.2. We will talk more about our plan to release
8.2 and what should go there.

5) PR-1215

The purpose of this PR is to consolidate NanoVDB's build system with
OpenVDB, and to get the CI to pass. Nick fixed the majority of the issues to make
the build system to work on different platforms and to get the CI to pass.

CNanoVDB does not work on Windows, but PNanoVDB.h does. The issue is because
of a zero-size array in CNanoVDB.h. PNanoVDB.h is a more-complete wrapper for
the original NanoVDB.h written in C99. Jeff Lait is to add documentation to
explain this issue on SourceTree.md.

Ken asks if we can retire CNanoVDB.h in the future. Jeff says that it is
possible.

Andre tried to put all of the NanoVDB documentation in the same place as the
root OpenVDB documentation. The mark-down files are now included in the OpenVDB
documentation page, but a few html features are not supported by the mark-down.
Nick says that in the past, the documentation is built through the release
process and we can do the same thing this time.

Nick mentions the main problem with building and running NanoVDB on windows (the
executables). Currently, OpenVDB allows you to build a static and shared version
of the library in a single pass of CMake. The default behavior targets
the dynamic c runtime for shared library build, and targets the static c
runtime library for static library build on Windows. However, CMake will link
libraries to the dynamic c runtime no matter what kind of build you are
choosing. This makes the current NanoVDB configuration to build against dynamic
c runtime. We have two options: (a) change OpenVDB to target the dynamic c
runtime, or (b) change NanoVDB to be configured the same way OpenVDB behaves.
Option (a) means that if you want to build a static OpenVDB library against a
different runtime, then you need to run cmake twice. Jeff asks Edward.
Edward says that he builds against the OpenVDB static library and we expect it
to be statically linked against the static version of c runtime. Edward hopes
that we don't change the default behavior necessarily.

Andre mentions three things that he needs to check: (a) Andre is asking a
friend to check NanoVDB install on Windows; (b) building NanoVDB against an
preinstalled OpenVDB library; (c) compiling NanoVDB with NANOVDB_USE_TBB=OFF.
He previously observed a problem with the compilation when the flag
is off. Andre will double check this.

Nick thinks that it will be nice to have a CI checking a NanoVDB install
against a pre-existing OpenVDB library. This can go in after version 9.
Nick already added CI against gcc and clang. Dan asks if it is worth it to
add MacOS 11 and Windows 2022 environments to the CI.

6) PR-1182

This is support for explicit template instantiation. Dan prefers that this will
get in version 9.0.0 and if there is any problem, to fix the issue in v 9.0.1.
Explicit template instantiation is enabled by default. Jeff will try to
install this and build Houdini against it to test that it works. Dan thinks
it's a great idea and that Houdini will get the benefit of more efficient
compile time. Jeff will follow up with that and this PR will get into master,
pending verification from Jeff.

7) PR-1202

PR-1202. Nick will merge this PR. It's the AX platform hook, which is an update
to the Python module. Rich has approved it.

8) Post Version 9

Preliminary list for post version 9 includes multi-resolution grid,
surfacing, and NanoVDB viewer. Ken has been talking with Autodesk
about their intent to contribute their multiresolution grid data structure
to the OpenVDB project. Robert Bridson may be involved.

Nick mentions that it will be good if the person who wrote the NanoVDB viewer
to be involved in getting the NanoVDB viewer to the repository.

9) TAC Update

Ken notified TAC that we will release OpenVDB 9.0 by Friday, 10/29/2021.
Ken claimed that we will get support for OpenEXR 3, NanoVDB, and explicit
template instantiation in OpenVDB version 9. He also mentioned about the plan
to get multi-resolution grid, surfacing, and NanoVDB viewer for post-9 release.

Dan asks Ken to update the TAC after we successfully release OpenVDB 9.0.0.

Dan asks Ken about a question from Larry Gritz if the NanoVDB that is released
in version 9.0.0 will include the compressed NanoVDB support. The answer is
yes.

10) PR-1219

Greg Hurtz submitted a PR on multithreaded evalMinMax using the DynamicNodeManager
class. This is PR-1219.

11) Next meeting

Next meeting is November 2nd, 2021. 12pm-1pm EST (GMT-5).