Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add relationship-write support #62

Closed
elliotcmorris opened this issue Aug 8, 2023 · 3 comments
Closed

Add relationship-write support #62

elliotcmorris opened this issue Aug 8, 2023 · 3 comments

Comments

@elliotcmorris
Copy link
Contributor

elliotcmorris commented Aug 8, 2023

OpenAssetIO/OpenAssetIO#1016 (comment)

Currently BAL when registering dosen't do the check where it sees if the Traitsets are the same, and then branches to either do a new version if they are, or a new entity if they are not.

This is behaviour allows us to demonstrate the canonical behaviour defined by OpenAssetIO/OpenAssetIO#1016.

To do this, we'll need some sort of relationship trait to create a relationship when a new entity is made. We've been planning to integrate mediacreation with bal anyway (See #49), so we can use the mediacreation Relationship trait for this.

ACs

When register is called against an entityRef that already exists:

  • When kWrite is passed and the traitsets don't match, create a new entity and a relationship to that entity, related via the mediacreation Relationship trait.
  • When kWrite is passed and the traitsets match, create a new version of that entity, retaining current behaviour.
@foundrytom
Copy link
Contributor

This is behaviour is required to test OpenAssetIO/OpenAssetIO#1016, and is wanted in general for BAL.

Can we park this issue for now. This behaviour is only required to test the concept, not the implementation in the core API (a test for that is that the enums exist).

@foundrytom
Copy link
Contributor

Adding a little more context:

  • We have a lot of interest in the community in learning more about the project in practice, as such getting to a stable preflight API is currently a blocker for these investigations.
  • I know we've had some misgivings at times about the specifics of this behaviour, and getting this out in the wild will give us better validation of the workflow (as people attempt to map it to their own pipelines).
  • We don't loose coverage of the actual code in OpenAssetIO without it.
  • If there are specific concerns about the proposed design that we haven't already talked through, a prototype implementation to address those specific concerns is worth doing, just not to a "BAL release feature" level of effort, as...
  • We need to make the Relationship behaviour configurable so that a Host integration can test the matrix of failure modes too, this increases the scope of this some. Though not particularly complex, this increases the total effort and risk, so I'd like to decouple this from getting the change to the constants in the core API merged so we can facilitate community discussion.

@elliotcmorris
Copy link
Contributor Author

Probably part of #88

Closing however as this isn't neccesarily the way we want BAL, or any manager, to behave. It's certain a way it could behave, but not the canonical way, so we don't need to prioritise explicit support.

@elliotcmorris elliotcmorris closed this as not planned Won't fix, can't repro, duplicate, stale Feb 6, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants