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

Trait/Specification versioning #64

Open
4 of 6 tasks
foundrytom opened this issue Nov 14, 2022 · 3 comments
Open
4 of 6 tasks

Trait/Specification versioning #64

foundrytom opened this issue Nov 14, 2022 · 3 comments

Comments

@foundrytom
Copy link
Contributor

foundrytom commented Nov 14, 2022

What

Define and implement the mechanism by which we can manage changes to trait/specification definitions (crud on properties, changing trait sets, etc...)

Why

The schemas applied to TraitsData are really the main API contract for managers/hosts as it is potentially persisted either side of the boundary. We have to make sure we have a robust change management process, both in terms of technical mechanisms and agreed process.

@antirotor
Copy link

antirotor commented Aug 17, 2023

Related to this - I think we'll need to introduce something like trait version. At least from the beginning the Traits will be in a fluid state and changes will be made and until it settles down the need for some kind of versioning will be great. For example you'll have Trait Geometry and after while you'll find that it is missing let's say upAxis. Introducing new property will not break backwards compatibility, but for renaming will so I guess something like semantic versioning will help to solve that?

@foundrytom
Copy link
Contributor Author

Yes 100%. Our plan is currently:

  • Get the core API stable (as we established this shouldn't be affected by schema versioning), should be done "soon".
  • Figure all this out.

We hadn't put too much effort into it just yet as we were hoping more people like your good self would be on the scene when we did, so we can try and make sure the solution is a good one!

We've started #api-data-schemas to try and get together with the OTIO and USD people (and anyone else), who has exactly the same challenge. We really didn't want to re-invent this particular wheel in OpenAssetIO. I hope we can build on the solutions they are using to this problem.

@foundrytom foundrytom transferred this issue from OpenAssetIO/OpenAssetIO Nov 15, 2023
@foundrytom foundrytom added this to the v1.0.0-beta.1 milestone Nov 15, 2023
@foundrytom foundrytom changed the title How do we track Trait API compatiblity? Trait/Specification versioning Nov 15, 2023
@SamCrooksFoundry SamCrooksFoundry moved this from Backlog to Todo in OpenAssetIO Development Feb 13, 2024
@SamCrooksFoundry SamCrooksFoundry moved this from Todo to In Progress in OpenAssetIO Development Feb 13, 2024
@feltech feltech moved this from In Progress to Todo in OpenAssetIO Development Mar 18, 2024
@elliotcmorris elliotcmorris moved this from Todo to Backlog in OpenAssetIO Development Apr 15, 2024
@elliotcmorris elliotcmorris moved this from Backlog to In Progress in OpenAssetIO Development Apr 15, 2024
@elliotcmorris
Copy link
Contributor

The work going on here will possibly/probably make #61 redundant.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Todo
Development

No branches or pull requests

3 participants