AcademySoftwareFoundation / AcademySoftwareFoundation/OpenColorIO

Improve config cacheID algorithm to not require Yaml

Open
#2,005 0 comments 0 reactions 0 assignees View on GitHub
Feature Request
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.