Skip to content

Commit efe52f8

Browse files
committed
[Traits] Update to versioned schema
Closes #98. As of TraitGen v1.0.0-alpha.13+ the YAML schema has been updated to support versioned traits and specifications. So update traits.yml to use the new schema. This is a breaking change, in that older versions of the `openassetio-traitgen` package will no longer work. Signed-off-by: David Feltell <david.feltell@foundry.com>
1 parent b4b5d8c commit efe52f8

5 files changed

Lines changed: 1146 additions & 858 deletions

File tree

RELEASE_NOTES.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,16 @@
11
Release Notes
22
=============
33

4+
v1.0.0-alpha.x
5+
---------------
6+
7+
### Breaking changes
8+
9+
- Update the traits YAML to be compatible with the new schema defined in
10+
`openassetio-traitgen` v1.0.0-alpha.13+, which adds versioning to
11+
traits and specifications.
12+
[#98](https://github.com/OpenAssetIO/OpenAssetIO-MediaCreation/issues/98)
13+
414
v1.0.0-alpha.12
515
---------------
616

tests/cpp/test.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@ using namespace openassetio_mediacreation;
99

1010
int main() {
1111
auto traits = openassetio::trait::TraitsData::make();
12-
auto trait = traits::managementPolicy::ManagedTrait(traits);
12+
auto deprecated = traits::managementPolicy::ManagedTrait(traits);
13+
auto trait = traits::managementPolicy::ManagedTrait_v1(traits);
1314
trait.imbue();
1415
return 0;
1516
}

tests/python/openassetio_mediacreation/test_imports.py

Lines changed: 62 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ def test_importing_namespace_succeeds(self):
3939

4040
def test_importing_LocatableContentTrait_succeeds(self):
4141
from openassetio_mediacreation.traits.content import LocatableContentTrait
42+
from openassetio_mediacreation.traits.content import LocatableContentTrait_v1
4243

4344

4445
class Test_trait_imports_managementPolicy:
@@ -47,6 +48,7 @@ def test_importing_namespace_succeeds(self):
4748

4849
def test_importing_ManagedTrait_succeeds(self):
4950
from openassetio_mediacreation.traits.managementPolicy import ManagedTrait
51+
from openassetio_mediacreation.traits.managementPolicy import ManagedTrait_v1
5052

5153

5254
class Test_trait_imports_identity:
@@ -55,6 +57,7 @@ def test_importing_namespace_succeeds(self):
5557

5658
def test_importing_DisplayNameTrait_succeeds(self):
5759
from openassetio_mediacreation.traits.identity import DisplayNameTrait
60+
from openassetio_mediacreation.traits.identity import DisplayNameTrait_v1
5861

5962

6063
class Test_trait_imports_auth:
@@ -63,6 +66,7 @@ def test_importing_namespace_succeeds(self):
6366

6467
def test_importing_BearerToken_succeeds(self):
6568
from openassetio_mediacreation.traits.auth import BearerTokenTrait
69+
from openassetio_mediacreation.traits.auth import BearerTokenTrait_v1
6670

6771

6872
class Test_trait_imports_application:
@@ -71,12 +75,15 @@ def test_importing_namespace_succeeds(self):
7175

7276
def test_importing_Config_succeeds(self):
7377
from openassetio_mediacreation.traits.application import ConfigTrait
78+
from openassetio_mediacreation.traits.application import ConfigTrait_v1
7479

7580
def test_importing_Manifest_succeeds(self):
7681
from openassetio_mediacreation.traits.application import ManifestTrait
82+
from openassetio_mediacreation.traits.application import ManifestTrait_v1
7783

7884
def test_importing_Work_succeeds(self):
7985
from openassetio_mediacreation.traits.application import WorkTrait
86+
from openassetio_mediacreation.traits.application import WorkTrait_v1
8087

8188

8289
class Test_trait_imports_usage:
@@ -85,9 +92,11 @@ def test_importing_namespace_succeeds(self):
8592

8693
def test_importing_Entity_succeeds(self):
8794
from openassetio_mediacreation.traits.usage import EntityTrait
95+
from openassetio_mediacreation.traits.usage import EntityTrait_v1
8896

8997
def test_importing_Relationship_succeeds(self):
9098
from openassetio_mediacreation.traits.usage import RelationshipTrait
99+
from openassetio_mediacreation.traits.usage import RelationshipTrait_v1
91100

92101

93102
class Test_trait_imports_lifecycle:
@@ -96,9 +105,11 @@ def test_importing_namespace_succeeds(self):
96105

97106
def test_importing_Version_succeeds(self):
98107
from openassetio_mediacreation.traits.lifecycle import VersionTrait
108+
from openassetio_mediacreation.traits.lifecycle import VersionTrait_v1
99109

100110
def test_importing_Stable_succeeds(self):
101111
from openassetio_mediacreation.traits.lifecycle import StableTrait
112+
from openassetio_mediacreation.traits.lifecycle import StableTrait_v1
102113

103114

104115
class Test_trait_imports_relationship:
@@ -107,9 +118,11 @@ def test_importing_namespace_succeeds(self):
107118

108119
def test_importing_Singular_succeeds(self):
109120
from openassetio_mediacreation.traits.relationship import SingularTrait
121+
from openassetio_mediacreation.traits.relationship import SingularTrait_v1
110122

111123
def test_importing_Unbounded_succeeds(self):
112124
from openassetio_mediacreation.traits.relationship import UnboundedTrait
125+
from openassetio_mediacreation.traits.relationship import UnboundedTrait_v1
113126

114127

115128
class Test_trait_imports_representation:
@@ -118,9 +131,11 @@ def test_importing_namespace_succeeds(self):
118131

119132
def test_importing_Proxy_succeeds(self):
120133
from openassetio_mediacreation.traits.representation import ProxyTrait
134+
from openassetio_mediacreation.traits.representation import ProxyTrait_v1
121135

122136
def test_importing_Original_succeeds(self):
123137
from openassetio_mediacreation.traits.representation import OriginalTrait
138+
from openassetio_mediacreation.traits.representation import OriginalTrait_v1
124139

125140

126141
class Test_trait_imports_timeDomain:
@@ -129,9 +144,11 @@ def test_importing_namespace_succeeds(self):
129144

130145
def test_importing_FrameRanged_succeeds(self):
131146
from openassetio_mediacreation.traits.timeDomain import FrameRangedTrait
147+
from openassetio_mediacreation.traits.timeDomain import FrameRangedTrait_v1
132148

133149
def test_importing_Static_succeeds(self):
134150
from openassetio_mediacreation.traits.timeDomain import StaticTrait
151+
from openassetio_mediacreation.traits.timeDomain import StaticTrait_v1
135152

136153

137154
class Test_trait_imports_twoDimensional:
@@ -140,12 +157,15 @@ def test_importing_namespace_succeeds(self):
140157

141158
def test_importing_Image_succeeds(self):
142159
from openassetio_mediacreation.traits.twoDimensional import ImageTrait
160+
from openassetio_mediacreation.traits.twoDimensional import ImageTrait_v1
143161

144162
def test_importing_PixelBased_succeeds(self):
145163
from openassetio_mediacreation.traits.twoDimensional import PixelBasedTrait
164+
from openassetio_mediacreation.traits.twoDimensional import PixelBasedTrait_v1
146165

147166
def test_importing_Deep_succeeds(self):
148167
from openassetio_mediacreation.traits.twoDimensional import DeepTrait
168+
from openassetio_mediacreation.traits.twoDimensional import DeepTrait_v1
149169

150170

151171
class Test_trait_imports_threeDimensional:
@@ -154,24 +174,31 @@ def test_importing_namespace_succeeds(self):
154174

155175
def test_importing_Spatial_succeeds(self):
156176
from openassetio_mediacreation.traits.threeDimensional import SpatialTrait
177+
from openassetio_mediacreation.traits.threeDimensional import SpatialTrait_v1
157178

158179
def test_importing_GeometryTrait_succeeds(self):
159180
from openassetio_mediacreation.traits.threeDimensional import GeometryTrait
181+
from openassetio_mediacreation.traits.threeDimensional import GeometryTrait_v1
160182

161183
def test_importing_Lighting_succeeds(self):
162184
from openassetio_mediacreation.traits.threeDimensional import LightingTrait
185+
from openassetio_mediacreation.traits.threeDimensional import LightingTrait_v1
163186

164187
def test_importing_Shader_succeeds(self):
165188
from openassetio_mediacreation.traits.threeDimensional import ShaderTrait
189+
from openassetio_mediacreation.traits.threeDimensional import ShaderTrait_v1
166190

167191
def test_importing_IESProfile_succeeds(self):
168192
from openassetio_mediacreation.traits.threeDimensional import IESProfileTrait
193+
from openassetio_mediacreation.traits.threeDimensional import IESProfileTrait_v1
169194

170195
def test_importing_SourcePath_succeeds(self):
171196
from openassetio_mediacreation.traits.threeDimensional import SourcePathTrait
197+
from openassetio_mediacreation.traits.threeDimensional import SourcePathTrait_v1
172198

173199
def test_importing_SourcePaths_succeeds(self):
174200
from openassetio_mediacreation.traits.threeDimensional import SourcePathsTrait
201+
from openassetio_mediacreation.traits.threeDimensional import SourcePathsTrait_v1
175202

176203

177204
class Test_trait_imports_metadata:
@@ -180,6 +207,7 @@ def test_importing_namespace_succeeds(self):
180207

181208
def test_importing_Camera_succeeds(self):
182209
from openassetio_mediacreation.traits.metadata import ArbitraryMetadataTrait
210+
from openassetio_mediacreation.traits.metadata import ArbitraryMetadataTrait_v1
183211

184212

185213
class Test_trait_imports_imaging:
@@ -188,6 +216,7 @@ def test_importing_namespace_succeeds(self):
188216

189217
def test_importing_Camera_succeeds(self):
190218
from openassetio_mediacreation.traits.imaging import CameraTrait
219+
from openassetio_mediacreation.traits.imaging import CameraTrait_v1
191220

192221

193222
class Test_trait_imports_color:
@@ -196,6 +225,7 @@ def test_importing_namespace_succeeds(self):
196225

197226
def test_importing_Camera_succeeds(self):
198227
from openassetio_mediacreation.traits.color import OCIOColorManagedTrait
228+
from openassetio_mediacreation.traits.color import OCIOColorManagedTrait_v1
199229

200230

201231
class Test_trait_imports_audio:
@@ -204,9 +234,11 @@ def test_importing_namespace_succeeds(self):
204234

205235
def test_importing_Audio_succeeds(self):
206236
from openassetio_mediacreation.traits.audio import AudioTrait
237+
from openassetio_mediacreation.traits.audio import AudioTrait_v1
207238

208239
def test_importing_SampleBased_succeeds(self):
209240
from openassetio_mediacreation.traits.audio import SampleBasedTrait
241+
from openassetio_mediacreation.traits.audio import SampleBasedTrait_v1
210242

211243

212244
class Test_specification_imports_lifecycle:
@@ -216,16 +248,19 @@ def test_importing_namespace_succeeds(self):
216248
def test_importing_EntityVersionsRelationship_succeeds(self):
217249
from openassetio_mediacreation.specifications.lifecycle import (
218250
EntityVersionsRelationshipSpecification,
251+
EntityVersionsRelationshipSpecification_v1,
219252
)
220253

221254
def test_importing_StableEntityVersionsRelationship_succeeds(self):
222255
from openassetio_mediacreation.specifications.lifecycle import (
223256
StableEntityVersionsRelationshipSpecification,
257+
StableEntityVersionsRelationshipSpecification_v1,
224258
)
225259

226260
def test_importing_StableReferenceRelationship_succeeds(self):
227261
from openassetio_mediacreation.specifications.lifecycle import (
228262
StableReferenceRelationshipSpecification,
263+
StableReferenceRelationshipSpecification_v1,
229264
)
230265

231266

@@ -236,11 +271,13 @@ def test_importing_namespace_succeeds(self):
236271
def test_importing_OriginalRepresentationRelationship_succeeds(self):
237272
from openassetio_mediacreation.specifications.representation import (
238273
OriginalRepresentationRelationshipSpecification,
274+
OriginalRepresentationRelationshipSpecification_v1,
239275
)
240276

241277
def test_importing_ProxyRepresentationRelationship_succeeds(self):
242278
from openassetio_mediacreation.specifications.representation import (
243279
ProxyRepresentationRelationshipSpecification,
280+
ProxyRepresentationRelationshipSpecification_v1,
244281
)
245282

246283

@@ -249,16 +286,21 @@ def test_importing_namespace_succeeds(self):
249286
from openassetio_mediacreation.specifications import twoDimensional
250287

251288
def test_importing_Image_succeeds(self):
252-
from openassetio_mediacreation.specifications.twoDimensional import ImageSpecification
289+
from openassetio_mediacreation.specifications.twoDimensional import (
290+
ImageSpecification,
291+
ImageSpecification_v1,
292+
)
253293

254294
def test_importing_BitmapImageResource_succeeds(self):
255295
from openassetio_mediacreation.specifications.twoDimensional import (
256296
BitmapImageResourceSpecification,
297+
BitmapImageResourceSpecification_v1,
257298
)
258299

259300
def test_importing_DeepBitmapImageResource_succeeds(self):
260301
from openassetio_mediacreation.specifications.twoDimensional import (
261302
DeepBitmapImageResourceSpecification,
303+
DeepBitmapImageResourceSpecification_v1,
262304
)
263305

264306

@@ -267,36 +309,45 @@ def test_importing_namespace_succeeds(self):
267309
from openassetio_mediacreation.specifications import threeDimensional
268310

269311
def test_importing_Spatial_succeeds(self):
270-
from openassetio_mediacreation.specifications.threeDimensional import SpatialSpecification
312+
from openassetio_mediacreation.specifications.threeDimensional import (
313+
SpatialSpecification,
314+
SpatialSpecification_v1,
315+
)
271316

272317
def test_importing_SceneResource_succeeds(self):
273318
from openassetio_mediacreation.specifications.threeDimensional import (
274319
SceneResourceSpecification,
320+
SceneResourceSpecification_v1,
275321
)
276322

277323
def test_importing_SceneGeometryResource_succeeds(self):
278324
from openassetio_mediacreation.specifications.threeDimensional import (
279325
SceneGeometryResourceSpecification,
326+
SceneGeometryResourceSpecification_v1,
280327
)
281328

282329
def test_importing_SceneCameraResource_succeeds(self):
283330
from openassetio_mediacreation.specifications.threeDimensional import (
284331
SceneCameraResourceSpecification,
332+
SceneCameraResourceSpecification_v1,
285333
)
286334

287335
def test_importing_SceneLightingResource_succeeds(self):
288336
from openassetio_mediacreation.specifications.threeDimensional import (
289337
SceneLightingResourceSpecification,
338+
SceneLightingResourceSpecification_v1,
290339
)
291340

292341
def test_importing_ShaderResource_succeeds(self):
293342
from openassetio_mediacreation.specifications.threeDimensional import (
294343
ShaderResourceSpecification,
344+
ShaderResourceSpecification_v1,
295345
)
296346

297347
def test_importing_IESProfileResource_succeeds(self):
298348
from openassetio_mediacreation.specifications.threeDimensional import (
299349
IESProfileResourceSpecification,
350+
IESProfileResourceSpecification_v1,
300351
)
301352

302353

@@ -305,11 +356,15 @@ def test_importing_namespace_succeeds(self):
305356
from openassetio_mediacreation.specifications import audio
306357

307358
def test_importing_Audio_succeeds(self):
308-
from openassetio_mediacreation.specifications.audio import AudioSpecification
359+
from openassetio_mediacreation.specifications.audio import (
360+
AudioSpecification,
361+
AudioSpecification_v1,
362+
)
309363

310364
def test_importing_SampledAudioResource_succeeds(self):
311365
from openassetio_mediacreation.specifications.audio import (
312366
SampledAudioResourceSpecification,
367+
SampledAudioResourceSpecification_v1,
313368
)
314369

315370

@@ -318,4 +373,7 @@ def test_importing_namespace_succeeds(self):
318373
from openassetio_mediacreation.specifications import application
319374

320375
def test_importing_workfile_succeeds(self):
321-
from openassetio_mediacreation.specifications.application import WorkfileSpecification
376+
from openassetio_mediacreation.specifications.application import (
377+
WorkfileSpecification,
378+
WorkfileSpecification_v1,
379+
)

tests/python/openassetio_mediacreation/test_specifications.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ def test_relationship_names_suffixed(self):
4646
"""
4747
for cls in self.__specifications():
4848
if RelationshipTrait.kId in cls.kTraitSet:
49-
assert cls.__name__.endswith("RelationshipSpecification")
49+
assert cls.__name__.endswith("RelationshipSpecification_v1")
5050

5151
def __specifications(self):
5252
"""
@@ -57,7 +57,7 @@ def __specifications(self):
5757
for _, namespace in namespaces:
5858
classes = inspect.getmembers(namespace, inspect.isclass)
5959
for _, cls in classes:
60-
if cls.__name__.endswith("Specification"):
60+
if cls.__name__.endswith("Specification_v1"):
6161
specs.append(cls)
6262
assert specs
6363
return specs

0 commit comments

Comments
 (0)