OpenAssetIO / OpenAssetIO-MediaCreation

OpenAssetIO extensions for use in the Media Creation industry.
Apache License 2.0
12 stars 10 forks source link

Trait/Specification versioning #64

Open foundrytom opened 1 year ago

foundrytom commented 1 year ago

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.

### Tasks
- [ ] https://github.com/OpenAssetIO/OpenAssetIO-MediaCreation/issues/73
- [ ] https://github.com/OpenAssetIO/OpenAssetIO-MediaCreation/issues/83
- [ ] https://github.com/OpenAssetIO/OpenAssetIO-MediaCreation/issues/88
- [ ] https://github.com/OpenAssetIO/OpenAssetIO-MediaCreation/issues/61
- [ ] https://github.com/OpenAssetIO/OpenAssetIO-TraitGen/issues/80
- [ ] https://github.com/OpenAssetIO/OpenAssetIO-MediaCreation/issues/98
antirotor commented 1 year ago

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 commented 1 year ago

Yes 100%. Our plan is currently:

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.

elliotcmorris commented 4 months ago

The work going on here will possibly/probably make https://github.com/OpenAssetIO/OpenAssetIO-MediaCreation/issues/61 redundant.