OpenAssetIO / OpenAssetIO/OpenAssetIO-TraitGen
Add version-agnostic trait detection
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 7
- Forks
- 7
- PR merge metrics
- No merged PRs in 30d
Description
What
Support queries to detect whether a trait ID matches a trait, ignoring version.
Why
The work in https://github.com/OpenAssetIO/OpenAssetIO-MediaCreation/issues/64 developed a strategy for versioning of traits. This works by changing the unique ID of a trait to include a version number. This means that detecting if a trait set contains a trait, where the version is not important, means testing every version of the trait until one matches.
Hosts/managers are likely to want to branch at a high level based on traits, and not initially care what version they are.
There is a danger hosts/managers will work around this by abusing the format of the trait ID, i.e. to strip off the version tag. However, the trait ID should be viewed as opaque by consumers.
So at minimum we need a way to test if a single string ID is a given trait, ignoring version.
Notes
As an extension, version-agnostic trait set/data container queries could be added for convenience. Changes to TraitsData might be needed to do this efficiently.
A useful knock-on effect of this could allow specification trait sets to be version agnostic (though constructing a trait via a Specification view class would of course still need to choose a version).
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing how generated trait IDs and trait-set membership are represented, then inspect the TraitsData and specification trait-set query paths mentioned in the issue. Define the minimum single-ID, version-agnostic query first; consider container convenience queries only if the existing design supports them, and verify that opaque trait IDs remain usable.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- tooling
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100