Make the environment section of the config mandatory
In PR #322 (and discussed in Issue #149), Malcolm Humphreys implemented a nice feature that adds an optional environment section at the top of a config file to declare the context variables used in the config. This serves several purposes:
- It allows the config author to specify default values
- It makes the config easier to understand since one may see at a glance which context vars are used
- It makes it easy for OCIO to only load the necessary environment variables into the Context object
- It allows additional validation options.
Point 3 has performance implications. In sophisticated studio setups, there may be 100 or more variables in the environment (with the vast majority not being used by the config). Nevertheless, if the environment section is not present, OCIO currently loads all of these into the Context object and this slows down the generation of the cacheIDs. The slowdown may be significant for timeline-based applications that need to update the context rapidly.
Given the many benefits, we propose making the environment section mandatory for OCIO v2.
When this was proposed at a recent OCIO v2 working group meeting, there were people both for and against the proposal, so I'm creating this issue to get feedback from a wider audience.