AcademySoftwareFoundation / AcademySoftwareFoundation/OpenColorIO
Improve config cacheID algorithm to not require Yaml
- Dominant language
- C++
- Stars
- 2.1k
- Forks
- 503
- PR merge metrics
- No merged PRs in 30d
Description
In the nanoColor prototype, the getCacheId method on the Config class is not working properly. This is because it is generating the ID by serializing the config to Yaml and then calculating a hash of that. Since nanoColor removes the Yaml library, this no longer works. This task is to come up with an alternate mechanism for generating a Config cacheID.
The Yaml-based mechanism is arguably not ideal anyway since reordering color spaces and other trivial changes would change the ID. If people have thoughts on how they would like the Config cacheID to be calculated, please add a comment below.
Note that the Config cacheID is not used internally to the library itself, so this is something that strictly affects client code.
Contributor guide
Research direction
Start with the Config class's getCacheId method in the nanoColor prototype and inspect how it currently serializes configuration to Yaml. Determine a stable replacement that does not require Yaml and defines how trivial reordering should affect the ID; done means client code can calculate a Config cacheID without the removed dependency.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100