Add version-agnostic trait detection

Aperta
#84 2 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
35/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
python
Ambito
tooling

Direzione di ricerca

Inizia tracciando come sono rappresentati i trait IDs generati e l’appartenenza ai trait-sets, quindi esamina i percorsi di query di TraitsData e dei trait-sets di specification menzionati nell’issue. Definisci prima la query minima per un singolo ID e indipendente dalla versione; considera le query di praticità per i container solo se il design esistente le supporta, e verifica che i trait IDs opachi restino utilizzabili.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

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).

Lingua principale
Python
Stelle
7
Fork
7
Merge medio
1h 7m
PR unite (30g)
1

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di OpenAssetIO/OpenAssetIO-TraitGen

Tutte le issue di OpenAssetIO/OpenAssetIO-TraitGen

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.