Closed foundrytom closed 10 months ago
David and I spoke this over.
Long conversation short, we'd propose 2 changes.
Paged (relationship)
-> Unbounded (relationship)
and
BookmarkableReferenceRelationship
-> StableReferenceRelationship
The second one was the controversial one, and we went through a lot of iterations, we're not in accord on it really.
We spoke a fair bit about finalizeEntityVersions, and the difference between including/stripping the metaversions and whether that is conceptually stability or not, and ended up going around in circles. An alternative that almost stuck was the word Reified
, ie,
ReifiedReferenceRelationship: { Relationship, Reified, Singular }
, which is technically correct, and dosen't conflate stability and the metaversion behaviour, ... but the word itself is ... unhelpful.
We should just discuss this tommorow, we're going round in circles.
Thanks @elliotcmorris agreed on the first, we should discuss the second one see https://github.com/OpenAssetIO/OpenAssetIO/issues/10. Though I think its probably spot on as you have it with Stable.
What
Add Traits and Specifications to MC to replicate the removed entity versions API surface area, as per the mapping in DR017.
Why
DR017 decided that version queries will move to MediaCreation, so we need some standardized traits/specifications to replace them, and documentation to help people understand how to use them.
ACs
lifecycle
namespace:Version: tag [str] (entity, relationship, managementPolicy)
Used to resolve versioning tags, indicate that an entity trait set is version managed inmanagementPolicy
and define that a relationship should return references to entities that are other versions of the input reference`.Stable: (relationship)
Used to define that a relationship should return entity references that are stable and have no dynamic behaviour based on the locale, or other runtime variability (vlatest, department, user, etc).usage
namespace:Entity: (entity)
Indicates that a trait set defines an entity typeRelationship: (relationship)
Indicates that a trait set defines a relationshiprelationship
namespace:Singular (relationship)
Indicates that the relationship will only ever provide a single entity reference.Paged (relationship)
Indicates that the relationship will provide significant results and so should be used with the paged API .lifecycle
namespace:EntityVersionsRelationship: { Relationship, Version, Paged }
Used to replaceentityVersions
StableEntityVersionsRelationship: { Relationship, Version, Stable, Paged }
Used to replaceentityVersions(includeMetaVersions=False)
BookmarkableReferenceRelationship: { Relationship, Stable, Singular }
Used to replacefinalizeEntityVersions
.