Advance Blender 5.2 web parity through M12-03D
This commit is contained in:
@@ -0,0 +1,9 @@
|
||||
# This is an Asset Catalog Definition file for Blender.
|
||||
#
|
||||
# Generated by M12-01B from a locked Blender 5.2 runtime.
|
||||
|
||||
VERSION 1
|
||||
|
||||
11111111-1111-4111-8111-111111111111:Characters:Characters
|
||||
22222222-2222-4222-8222-222222222222:Characters/Heroes:Heroes
|
||||
33333333-3333-4333-8333-333333333333:Materials/Metal:Metal
|
||||
BIN
tests/files/web/m12_asset_catalog_v1/m12_asset_catalog_v1.blend
Normal file
BIN
tests/files/web/m12_asset_catalog_v1/m12_asset_catalog_v1.blend
Normal file
Binary file not shown.
BIN
tests/files/web/m12_library_append_v1/m12_append_source.blend
Normal file
BIN
tests/files/web/m12_library_append_v1/m12_append_source.blend
Normal file
Binary file not shown.
BIN
tests/files/web/m12_library_append_v1/m12_append_target.blend
Normal file
BIN
tests/files/web/m12_library_append_v1/m12_append_target.blend
Normal file
Binary file not shown.
48
tests/golden/M11-14/render-compositor-media-recovery.json
Normal file
48
tests/golden/M11-14/render-compositor-media-recovery.json
Normal file
@@ -0,0 +1,48 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M11-14",
|
||||
"blenderVersion": "5.2.0",
|
||||
"domains": [
|
||||
{
|
||||
"domain": "RENDER",
|
||||
"fixture": "tests/files/web/m11_render_reference.blend",
|
||||
"sha256": "d2bea55fe4de0b00e73a9241b4d1b0c802c2eb0e6159c0cd48e007b97b9d3963",
|
||||
"desktopGolden": "tests/golden/M11-04/manifest.json",
|
||||
"cancellationCode": "OPEN_CANCELLED",
|
||||
"budgetCode": "GPU_TEXTURE_BUDGET_EXCEEDED"
|
||||
},
|
||||
{
|
||||
"domain": "COMPOSITOR",
|
||||
"fixture": "tests/files/web/m11_compositor_allowlist.blend",
|
||||
"sha256": "e844eba69002101c8cf4f376cdd844c4be78729091627d898634088707374b29",
|
||||
"desktopGolden": "tests/golden/M11-07/compositor-node-golden.json",
|
||||
"cancellationCode": "COMPOSITOR_CANCELLED",
|
||||
"budgetCode": "COMPOSITOR_BUDGET_EXCEEDED"
|
||||
},
|
||||
{
|
||||
"domain": "MEDIA",
|
||||
"fixture": "tests/files/web/media/sequencer-probe.mp4",
|
||||
"sha256": "f35a5a2765aef9d0fed7146108c699d0beb03f34414cb27e6b7a7d4871187b65",
|
||||
"desktopGolden": "tests/golden/M11-09/sequencer-codec-probe.json",
|
||||
"cancellationCode": "SEQUENCER_CANCELLED",
|
||||
"budgetCode": "SEQUENCER_BUDGET_EXCEEDED"
|
||||
}
|
||||
],
|
||||
"textureFixture": {
|
||||
"path": "tests/files/web/resources/udim_1001.png",
|
||||
"sha256": "0c66d053412de9e99f1fb83fa8f199d061df874ad1b6bda86c76cf3f499382cf"
|
||||
},
|
||||
"requiredStages": ["CANCELLATION", "RESTART", "BUDGET", "RELEASE", "RECOVERY"],
|
||||
"invariants": {
|
||||
"cancellation": "zero result publication and zero temporary resources",
|
||||
"restart": "generation 1 and 2 preserve domain identity and output SHA-256",
|
||||
"budget": "stable domain-specific block before committed state mutation",
|
||||
"release": "positive resource and byte release followed by zero owned resources",
|
||||
"recovery": "a bounded real fixture produces non-empty output after restart"
|
||||
},
|
||||
"verification": {
|
||||
"unit": "web/tests/unit/render-compositor-media-recovery.test.mjs",
|
||||
"browser": "web/tests/e2e/render-compositor-media-recovery.spec.ts",
|
||||
"command": "npm --prefix web run test:render-compositor-media-recovery"
|
||||
}
|
||||
}
|
||||
53
tests/golden/M12-01/evidence.json
Normal file
53
tests/golden/M12-01/evidence.json
Normal file
@@ -0,0 +1,53 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-01I",
|
||||
"parentTask": "M12-01",
|
||||
"parityId": "N-023-ASSET-CATALOG-SCHEMA",
|
||||
"status": "READY",
|
||||
"enablingTask": true,
|
||||
"parityStateChange": false,
|
||||
"implementationClass": "NOT_APPLICABLE",
|
||||
"subtasks": [
|
||||
{ "task": "M12-01A", "path": "tests/golden/M12-01A/asset-catalog-field-inventory.json", "sha256": "194d5fd0fef5044f5e82a51931a061e226445f0f53410af9dc0594c70a79e936" },
|
||||
{ "task": "M12-01B", "path": "tests/golden/M12-01B/manifest.json", "sha256": "1ee0abf961b82195e5fb586eb9e59302e4f7f839615f1ebbdf5cdcba8b60accd" },
|
||||
{ "task": "M12-01C", "path": "tests/golden/M12-01C/manifest.json", "sha256": "612892b03a689ebe19804e495bd29744634ab43a3b29fff41adc2d7a5d0b67b9" },
|
||||
{ "task": "M12-01D", "path": "tests/golden/M12-01D/manifest.json", "sha256": "fea9e01b51f64a7e9c15dcfc521b3e84636525ffbe0a849f7a6f1b0be2b02e9d" },
|
||||
{ "task": "M12-01E", "path": "tests/golden/M12-01E/manifest.json", "sha256": "cf55ea1f9430df04fb55bf07c68c1b2099b044b0da0fdb07a7251b13c459724b" },
|
||||
{ "task": "M12-01F", "path": "tests/golden/M12-01F/manifest.json", "sha256": "127b2b605ac79a891cd6ab516ee031c02624a512e1043b111bfac2ebf1d8278d" },
|
||||
{ "task": "M12-01G", "path": "tests/golden/M12-01G/manifest.json", "sha256": "2596067956211698f1b7a07d9423411e2db830b72e6b78593354953a568738e7" },
|
||||
{ "task": "M12-01H", "path": "tests/golden/M12-01H/manifest.json", "sha256": "59138eb83d63ae0d397b152e587fbe005d02bc2d229ee484c279b452ea3f2eae" }
|
||||
],
|
||||
"schema": {
|
||||
"desktopCanonical": { "path": "tests/golden/M12-01B/canonical.json", "sha256": "6fc6def0b9d0e4f51ef40c1d87a1f17074f6340c126a01aee49e5e53271c961e" },
|
||||
"webV2Golden": { "path": "tests/golden/M12-01C/asset-catalog-v2.json", "sha256": "2abe279cebbffd1341dc61b1fdc5366dd1f6f42769ba36171782019ca61fb929" },
|
||||
"productionProtocol": { "path": "web/protocol/asset-catalog-v2.ts", "sha256": "0949838efb2f69466368185b80bb1d2e851672d78311fcd5270eb0814576e5d7" }
|
||||
},
|
||||
"migration": {
|
||||
"sourceFixture": { "path": "tests/golden/M12-01D/catalog-v1.json", "sha256": "1cc43d181afefd63b53cb9c3626bb58195fad20187d6e534adc1ecbe65f75da5" },
|
||||
"targetFixture": { "path": "tests/golden/M12-01D/catalog-v2.json", "sha256": "38e5d1771b3d2d63ce5e10268eac4513f2043b0cbf71ab1799c1868bc2aa97fb" },
|
||||
"report": { "path": "tests/golden/M12-01D/migration-report.json", "sha256": "57b972c1bbb9ae326c3f264c225c21546682442ff3194fbc343e1c46a2cd410a" },
|
||||
"productionProtocol": { "path": "web/protocol/asset-catalog-migration.ts", "sha256": "6d74bc5605f94e05208eda82830192d38f88066dfc409058555a8876c785f226" },
|
||||
"sourceManifestSha256": "cbdc8b03dc9ce1f38b44bae1c7459eb273126cbd6c7dd33115d2b1966e975881",
|
||||
"targetManifestSha256": "0c08ed1af1dd0998c809f76d969fd21d8fdae28ad37cf5571bdc99b16bf3ec90",
|
||||
"revision": 7
|
||||
},
|
||||
"runtime": {
|
||||
"indexedDB": { "path": "web/app/src/storage/asset-catalog-indexeddb.ts", "sha256": "283a08bccb5ea301bd2aef8f01d4496972e3962f75e340479336c50e3539ba57" },
|
||||
"restartWorker": { "path": "web/app/src/workers/asset-catalog-restart-test.worker.ts", "sha256": "e6007d352555be046b89d0becd719692652ee0418cc97087bf7599155f2a538e" },
|
||||
"catalogCount": 3,
|
||||
"assetCount": 2,
|
||||
"faultPoints": ["AFTER_TARGET_PUT", "AFTER_SOURCE_DELETE"],
|
||||
"restartContexts": ["INITIAL_PAGE", "RELOADED_PAGE", "WORKER_GENERATION_1", "WORKER_GENERATION_2"]
|
||||
},
|
||||
"claims": [
|
||||
"BLENDER_5_2_FIELD_INVENTORY_BOUND",
|
||||
"DESKTOP_FIXTURE_REOPENED",
|
||||
"SCHEMA_V2_UTF8_BUDGETED",
|
||||
"V1_TO_V2_MIGRATION_HASH_BOUND",
|
||||
"LEGACY_READER_FAIL_CLOSED",
|
||||
"NEGATIVE_MATRIX_RECOVERS",
|
||||
"INDEXEDDB_ABORT_PRESERVES_V1",
|
||||
"PAGE_WORKER_RESTART_IDENTITY_STABLE"
|
||||
],
|
||||
"nextTask": "M12-02A"
|
||||
}
|
||||
264
tests/golden/M12-01A/asset-catalog-field-inventory.json
Normal file
264
tests/golden/M12-01A/asset-catalog-field-inventory.json
Normal file
@@ -0,0 +1,264 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-01A",
|
||||
"enablingTask": true,
|
||||
"parityStateChange": false,
|
||||
"blenderVersion": "5.2.0",
|
||||
"sources": [
|
||||
{
|
||||
"role": "DNA_ASSET_STORAGE",
|
||||
"path": "blender-5.2.0/source/blender/makesdna/DNA_asset_types.h",
|
||||
"sha256": "de97f44c71d46049b0effdf0fed6aba3f0df72d6d4ba89b88f61e7624d3b9a49"
|
||||
},
|
||||
{
|
||||
"role": "RNA_ASSET_API",
|
||||
"path": "blender-5.2.0/source/blender/makesrna/intern/rna_asset.cc",
|
||||
"sha256": "92c9cd5ce718d5b250a02eaefbd1c356a962e2f69b235d23fc97447a9a567a22"
|
||||
},
|
||||
{
|
||||
"role": "ASSET_BLEND_IO",
|
||||
"path": "blender-5.2.0/source/blender/blenkernel/intern/asset.cc",
|
||||
"sha256": "eb66d1bfb3efb39cd6c6a6be9e6ff23f2be10a1c427e5b998a2dbcd1ec5b9adc"
|
||||
},
|
||||
{
|
||||
"role": "CATALOG_MODEL",
|
||||
"path": "blender-5.2.0/source/blender/asset_system/AS_asset_catalog.hh",
|
||||
"sha256": "6fd93dc78d0634b9c4d0ee03a23d3233be591204aea7957d1b9768b7c3508110"
|
||||
},
|
||||
{
|
||||
"role": "CATALOG_PATH",
|
||||
"path": "blender-5.2.0/source/blender/asset_system/AS_asset_catalog_path.hh",
|
||||
"sha256": "9579b74fac1cb3208c96c8aa56b51c9e44d96e3416b718d77270d5f8269bc7b9"
|
||||
},
|
||||
{
|
||||
"role": "CATALOG_FILE_API",
|
||||
"path": "blender-5.2.0/source/blender/asset_system/intern/asset_catalog_definition_file.hh",
|
||||
"sha256": "880f5ae42fa6c532d46b70d5264f3ac7f8e8abab8c6cf189a4e8aebdd9dd04b6"
|
||||
},
|
||||
{
|
||||
"role": "CATALOG_FILE_FORMAT",
|
||||
"path": "blender-5.2.0/source/blender/asset_system/intern/asset_catalog_definition_file.cc",
|
||||
"sha256": "4316b683125df87e07e4f1116b44f58eb725b654ac9941118a148c08ee916a18"
|
||||
},
|
||||
{
|
||||
"role": "CURRENT_WEB_V1_SNAPSHOT",
|
||||
"path": "web/protocol/asset-library-io.ts",
|
||||
"sha256": "5c62539db3833a2113007dfbdfd12ca06704d86e0cf0e57ad97f7fbf6acda7f4"
|
||||
}
|
||||
],
|
||||
"assetTag": {
|
||||
"fields": [
|
||||
{
|
||||
"name": "next",
|
||||
"cType": "AssetTag*",
|
||||
"sourceToken": "struct AssetTag *next",
|
||||
"persistence": "LIST_LINKAGE",
|
||||
"semantic": "NON_USER_LINKAGE",
|
||||
"rnaProperty": null
|
||||
},
|
||||
{
|
||||
"name": "prev",
|
||||
"cType": "AssetTag*",
|
||||
"sourceToken": "*prev = nullptr",
|
||||
"persistence": "LIST_LINKAGE",
|
||||
"semantic": "NON_USER_LINKAGE",
|
||||
"rnaProperty": null
|
||||
},
|
||||
{
|
||||
"name": "name",
|
||||
"cType": "char[64]",
|
||||
"sourceToken": "char name[/*MAX_NAME*/ 64]",
|
||||
"persistence": "BLEND",
|
||||
"semantic": "USER_VALUE",
|
||||
"rnaProperty": "name",
|
||||
"maximumStorageBytesIncludingNull": 64
|
||||
}
|
||||
],
|
||||
"collectionOperations": ["new", "remove"],
|
||||
"newSupportsSkipIfExists": true,
|
||||
"orderIsPersistent": true
|
||||
},
|
||||
"assetMetaData": {
|
||||
"dnaFields": [
|
||||
{
|
||||
"name": "local_type_info",
|
||||
"cType": "AssetTypeInfo*",
|
||||
"sourceToken": "struct AssetTypeInfo *local_type_info",
|
||||
"persistence": "RUNTIME_ONLY",
|
||||
"semantic": "CALLBACK_TYPE",
|
||||
"rnaProperty": null
|
||||
},
|
||||
{
|
||||
"name": "properties",
|
||||
"cType": "IDProperty*",
|
||||
"sourceToken": "struct IDProperty *properties",
|
||||
"persistence": "BLEND_IDPROPERTY",
|
||||
"semantic": "CUSTOM_METADATA_NO_ID_POINTERS",
|
||||
"rnaProperty": "CUSTOM_ID_PROPERTIES"
|
||||
},
|
||||
{
|
||||
"name": "catalog_id",
|
||||
"cType": "bUUID",
|
||||
"sourceToken": "struct bUUID catalog_id",
|
||||
"persistence": "BLEND",
|
||||
"semantic": "AUTHORITATIVE_CATALOG_ID",
|
||||
"rnaProperty": "catalog_id"
|
||||
},
|
||||
{
|
||||
"name": "catalog_simple_name",
|
||||
"cType": "char[64]",
|
||||
"sourceToken": "char catalog_simple_name[/*MAX_NAME*/ 64]",
|
||||
"persistence": "BLEND",
|
||||
"semantic": "RECOVERY_ONLY_NOT_AUTHORITY",
|
||||
"rnaProperty": "catalog_simple_name"
|
||||
},
|
||||
{
|
||||
"name": "author",
|
||||
"cType": "char*",
|
||||
"sourceToken": "char *author = nullptr",
|
||||
"persistence": "BLEND_DYNAMIC_STRING",
|
||||
"semantic": "OPTIONAL_DISPLAY_TEXT",
|
||||
"rnaProperty": "author"
|
||||
},
|
||||
{
|
||||
"name": "description",
|
||||
"cType": "char*",
|
||||
"sourceToken": "char *description = nullptr",
|
||||
"persistence": "BLEND_DYNAMIC_STRING",
|
||||
"semantic": "OPTIONAL_DISPLAY_TEXT",
|
||||
"rnaProperty": "description"
|
||||
},
|
||||
{
|
||||
"name": "copyright",
|
||||
"cType": "char*",
|
||||
"sourceToken": "char *copyright = nullptr",
|
||||
"persistence": "BLEND_DYNAMIC_STRING",
|
||||
"semantic": "OPTIONAL_LEGAL_TEXT",
|
||||
"rnaProperty": "copyright"
|
||||
},
|
||||
{
|
||||
"name": "license",
|
||||
"cType": "char*",
|
||||
"sourceToken": "char *license = nullptr",
|
||||
"persistence": "BLEND_DYNAMIC_STRING",
|
||||
"semantic": "OPTIONAL_LEGAL_TEXT",
|
||||
"rnaProperty": "license"
|
||||
},
|
||||
{
|
||||
"name": "tags",
|
||||
"cType": "ListBaseT<AssetTag>",
|
||||
"sourceToken": "ListBaseT<AssetTag> tags",
|
||||
"persistence": "BLEND_ORDERED_COLLECTION",
|
||||
"semantic": "FILTER_TOKENS",
|
||||
"rnaProperty": "tags"
|
||||
},
|
||||
{
|
||||
"name": "active_tag",
|
||||
"cType": "short",
|
||||
"sourceToken": "short active_tag = 0",
|
||||
"persistence": "BLEND",
|
||||
"semantic": "EDITOR_SELECTION_INDEX",
|
||||
"rnaProperty": "active_tag"
|
||||
},
|
||||
{
|
||||
"name": "tot_tags",
|
||||
"cType": "short",
|
||||
"sourceToken": "short tot_tags = 0",
|
||||
"persistence": "BLEND_DERIVED_COUNT",
|
||||
"semantic": "MUST_EQUAL_TAG_LIST_COUNT",
|
||||
"rnaProperty": null
|
||||
},
|
||||
{
|
||||
"name": "flag",
|
||||
"cType": "AssetMetaDataFlag",
|
||||
"sourceToken": "AssetMetaDataFlag flag = {}",
|
||||
"persistence": "BLEND",
|
||||
"semantic": "USE_OWN_IMPORT_METHOD_BIT",
|
||||
"rnaProperty": "use_preferred_import_method"
|
||||
},
|
||||
{
|
||||
"name": "preferred_import_method",
|
||||
"cType": "eAssetImportMethod",
|
||||
"sourceToken": "eAssetImportMethod preferred_import_method",
|
||||
"persistence": "BLEND",
|
||||
"semantic": "CONDITIONAL_IMPORT_POLICY",
|
||||
"rnaProperty": "preferred_import_method"
|
||||
},
|
||||
{
|
||||
"name": "_pad",
|
||||
"cType": "char[4]",
|
||||
"sourceToken": "char _pad[4] = {}",
|
||||
"persistence": "ABI_PADDING",
|
||||
"semantic": "NON_USER_PADDING",
|
||||
"rnaProperty": null
|
||||
}
|
||||
],
|
||||
"rnaProperties": [
|
||||
{ "identifier": "author", "type": "STRING", "isReadonly": false, "isRuntime": false },
|
||||
{ "identifier": "description", "type": "STRING", "isReadonly": false, "isRuntime": false },
|
||||
{ "identifier": "copyright", "type": "STRING", "isReadonly": false, "isRuntime": false },
|
||||
{ "identifier": "license", "type": "STRING", "isReadonly": false, "isRuntime": false },
|
||||
{ "identifier": "tags", "type": "COLLECTION", "isReadonly": true, "isRuntime": false },
|
||||
{ "identifier": "active_tag", "type": "INT", "isReadonly": false, "isRuntime": false },
|
||||
{ "identifier": "catalog_id", "type": "STRING", "isReadonly": false, "isRuntime": false },
|
||||
{ "identifier": "catalog_simple_name", "type": "STRING", "isReadonly": true, "isRuntime": false },
|
||||
{ "identifier": "use_preferred_import_method", "type": "BOOLEAN", "isReadonly": false, "isRuntime": false },
|
||||
{ "identifier": "preferred_import_method", "type": "ENUM", "isReadonly": false, "isRuntime": false }
|
||||
],
|
||||
"preferredImportMethods": ["LINK", "APPEND", "APPEND_REUSE", "PACK"],
|
||||
"emptyAuthorDescriptionCopyrightLicenseAreValid": true,
|
||||
"catalogIdFormat": "RFC4122_UUID_OR_NIL",
|
||||
"customPropertiesMayNotReferenceDataBlocks": true
|
||||
},
|
||||
"catalog": {
|
||||
"semanticFields": [
|
||||
{ "name": "catalog_id", "cType": "CatalogID", "sourceToken": "const CatalogID catalog_id", "persistence": "CATALOG_DEFINITION_FILE" },
|
||||
{ "name": "path", "cType": "AssetCatalogPath", "sourceToken": "AssetCatalogPath path", "persistence": "CATALOG_DEFINITION_FILE" },
|
||||
{ "name": "simple_name", "cType": "std::string", "sourceToken": "std::string simple_name", "persistence": "CATALOG_DEFINITION_FILE_AND_ASSET_RECOVERY_COPY" }
|
||||
],
|
||||
"runtimeFlags": [
|
||||
{ "name": "is_deleted", "sourceToken": "bool is_deleted = false" },
|
||||
{ "name": "is_first_loaded", "sourceToken": "bool is_first_loaded = false" },
|
||||
{ "name": "has_unsaved_changes", "sourceToken": "bool has_unsaved_changes = false" }
|
||||
],
|
||||
"definitionFile": {
|
||||
"defaultFilename": "blender_assets.cats.txt",
|
||||
"supportedVersion": 1,
|
||||
"versionMarker": "VERSION ",
|
||||
"recordFields": ["catalog_id", "path", "simple_name"],
|
||||
"delimiter": ":",
|
||||
"writeOrder": ["path", "is_first_loaded", "catalog_id"],
|
||||
"emptyAndCommentLinesIgnored": true,
|
||||
"firstSemanticLineMustBeVersion": true
|
||||
},
|
||||
"path": {
|
||||
"encoding": "UTF8_BYTES",
|
||||
"separator": "/",
|
||||
"hierarchy": "IMPLICIT_PATH_COMPONENTS",
|
||||
"leadingSlash": false,
|
||||
"componentColonAllowed": false,
|
||||
"cleanup": ["TRIM_COMPONENTS", "REMOVE_EMPTY_COMPONENTS", "REPLACE_INVALID_CHARACTERS"]
|
||||
},
|
||||
"identityRules": {
|
||||
"assetReferenceAuthority": "catalog_id",
|
||||
"simpleNameAuthority": false,
|
||||
"parentIdStored": false,
|
||||
"duplicatePathsAllowed": true,
|
||||
"duplicatePathSelectionOrder": ["is_first_loaded", "catalog_id"]
|
||||
}
|
||||
},
|
||||
"currentWebSnapshot": {
|
||||
"assetCatalogIRFields": ["id", "name", "parentId"],
|
||||
"assetEntryIRFields": ["id", "name", "kind", "catalogId", "tags", "author", "license", "sourceSha256", "sourcePath", "preview"],
|
||||
"directlyRepresentedMetadata": ["catalog_id", "tags", "author", "license"],
|
||||
"missingMetadata": ["properties", "description", "copyright", "catalog_simple_name", "active_tag", "use_preferred_import_method", "preferred_import_method"],
|
||||
"semanticDrift": [
|
||||
"Blender author and license are optional; Web v1 requires both to be non-empty",
|
||||
"Blender catalog hierarchy is an implicit cleaned path; Web v1 stores an explicit parentId graph",
|
||||
"Blender catalog simple_name is recovery metadata; Web v1 name is the only catalog label",
|
||||
"Blender tag storage is 64 bytes including the terminator; Web v1 bounds JavaScript string length to 64 code units",
|
||||
"Blender custom ID properties are persisted but Web v1 has no preservation field"
|
||||
]
|
||||
},
|
||||
"nextTask": "M12-01B"
|
||||
}
|
||||
116
tests/golden/M12-01B/canonical.json
Normal file
116
tests/golden/M12-01B/canonical.json
Normal file
@@ -0,0 +1,116 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-01B",
|
||||
"enablingTask": true,
|
||||
"parityStateChange": false,
|
||||
"blenderVersion": "5.2.0",
|
||||
"catalogDefinition": {
|
||||
"fileName": "blender_assets.cats.txt",
|
||||
"version": 1,
|
||||
"records": [
|
||||
{
|
||||
"catalogId": "11111111-1111-4111-8111-111111111111",
|
||||
"path": "Characters",
|
||||
"simpleName": "Characters",
|
||||
"parentPath": null
|
||||
},
|
||||
{
|
||||
"catalogId": "22222222-2222-4222-8222-222222222222",
|
||||
"path": "Characters/Heroes",
|
||||
"simpleName": "Heroes",
|
||||
"parentPath": "Characters"
|
||||
},
|
||||
{
|
||||
"catalogId": "33333333-3333-4333-8333-333333333333",
|
||||
"path": "Materials/Metal",
|
||||
"simpleName": "Metal",
|
||||
"parentPath": "Materials"
|
||||
}
|
||||
]
|
||||
},
|
||||
"assets": [
|
||||
{
|
||||
"idType": "MATERIAL",
|
||||
"name": "M12 Brushed Metal",
|
||||
"catalogId": "33333333-3333-4333-8333-333333333333",
|
||||
"catalogSimpleName": "",
|
||||
"author": "",
|
||||
"description": "",
|
||||
"copyright": "",
|
||||
"license": "",
|
||||
"tags": [
|
||||
"metal"
|
||||
],
|
||||
"activeTag": 0,
|
||||
"usePreferredImportMethod": false,
|
||||
"preferredImportMethod": "APPEND",
|
||||
"customProperties": [
|
||||
{
|
||||
"name": "roughness",
|
||||
"type": "FLOAT",
|
||||
"value": 0.35
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"idType": "OBJECT",
|
||||
"name": "M12 Hero",
|
||||
"catalogId": "22222222-2222-4222-8222-222222222222",
|
||||
"catalogSimpleName": "",
|
||||
"author": "M12 Artist",
|
||||
"description": "Desktop catalog v1 object fixture",
|
||||
"copyright": "Copyright 2026 M12 Fixture Authors",
|
||||
"license": "CC0-1.0",
|
||||
"tags": [
|
||||
"character",
|
||||
"hero",
|
||||
"rig-ready"
|
||||
],
|
||||
"activeTag": 1,
|
||||
"usePreferredImportMethod": true,
|
||||
"preferredImportMethod": "APPEND",
|
||||
"customProperties": [
|
||||
{
|
||||
"name": "approved",
|
||||
"type": "BOOL",
|
||||
"value": true
|
||||
},
|
||||
{
|
||||
"name": "dimensions",
|
||||
"type": "IDPROPERTYARRAY",
|
||||
"value": [
|
||||
2.0,
|
||||
2.0,
|
||||
0.0
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "rating",
|
||||
"type": "INT",
|
||||
"value": 5
|
||||
},
|
||||
{
|
||||
"name": "source",
|
||||
"type": "STR",
|
||||
"value": "M12-01B"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"idType": "WORLD",
|
||||
"name": "M12 Uncataloged World",
|
||||
"catalogId": "00000000-0000-0000-0000-000000000000",
|
||||
"catalogSimpleName": "",
|
||||
"author": "M12 Artist",
|
||||
"description": "Asset without a catalog assignment",
|
||||
"copyright": "",
|
||||
"license": "CC0-1.0",
|
||||
"tags": [],
|
||||
"activeTag": 0,
|
||||
"usePreferredImportMethod": true,
|
||||
"preferredImportMethod": "LINK",
|
||||
"customProperties": []
|
||||
}
|
||||
],
|
||||
"nextTask": "M12-01C"
|
||||
}
|
||||
60
tests/golden/M12-01B/manifest.json
Normal file
60
tests/golden/M12-01B/manifest.json
Normal file
@@ -0,0 +1,60 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-01B",
|
||||
"parentTask": "M12-01",
|
||||
"parityId": "N-023-ASSET-CATALOG-SCHEMA",
|
||||
"enablingTask": true,
|
||||
"parityStateChange": false,
|
||||
"implementationClass": "NOT_APPLICABLE",
|
||||
"blenderVersion": "5.2.0",
|
||||
"artifacts": {
|
||||
"generator": {
|
||||
"path": "tools/web/generate-asset-catalog-v1.py",
|
||||
"sha256": "4156ec6293562d44f87ad5a268de52fbfa31a65da8263a67a2bc45bf22999307"
|
||||
},
|
||||
"exporter": {
|
||||
"path": "tools/web/export-asset-catalog-v1.py",
|
||||
"sha256": "3dbccd8df54d8686aa526f7967f58fd1008336c4c5b1deed01a136ba15aa3e41"
|
||||
},
|
||||
"checker": {
|
||||
"path": "tools/web/check-asset-catalog-v1-fixture.mjs",
|
||||
"sha256": "c2813aa36482eff0b23ca0209f488cfe70ea11e4f39cc6c6036d6c47bbc8e17b"
|
||||
},
|
||||
"fixture": {
|
||||
"path": "tests/files/web/m12_asset_catalog_v1/m12_asset_catalog_v1.blend",
|
||||
"sha256": "8facfe82e3ca0a0605c139ef5bdcbb82d27a6953a6add4e008b68af90bc1211f"
|
||||
},
|
||||
"catalogDefinition": {
|
||||
"path": "tests/files/web/m12_asset_catalog_v1/blender_assets.cats.txt",
|
||||
"sha256": "a72f542acb2d2239951a2b20cda0f92305e1d6d8222f84072ad1aab52e3e4c98"
|
||||
},
|
||||
"canonicalReport": {
|
||||
"path": "tests/golden/M12-01B/canonical.json",
|
||||
"sha256": "6fc6def0b9d0e4f51ef40c1d87a1f17074f6340c126a01aee49e5e53271c961e"
|
||||
}
|
||||
},
|
||||
"coverage": {
|
||||
"catalogRecords": 3,
|
||||
"assetRecords": 3,
|
||||
"assetIdTypes": ["MATERIAL", "OBJECT", "WORLD"],
|
||||
"metadata": [
|
||||
"properties",
|
||||
"catalog_id",
|
||||
"catalog_simple_name",
|
||||
"author",
|
||||
"description",
|
||||
"copyright",
|
||||
"license",
|
||||
"tags",
|
||||
"active_tag",
|
||||
"use_preferred_import_method",
|
||||
"preferred_import_method"
|
||||
]
|
||||
},
|
||||
"nonGoals": [
|
||||
"Web catalog schema v2",
|
||||
"Web migration behavior",
|
||||
"Catalog or asset mutation parity"
|
||||
],
|
||||
"nextTask": "M12-01C"
|
||||
}
|
||||
127
tests/golden/M12-01C/asset-catalog-v2.json
Normal file
127
tests/golden/M12-01C/asset-catalog-v2.json
Normal file
@@ -0,0 +1,127 @@
|
||||
{
|
||||
"schemaVersion": 2,
|
||||
"revision": 1,
|
||||
"catalogs": [
|
||||
{
|
||||
"catalogId": "11111111-1111-4111-8111-111111111111",
|
||||
"path": "Characters",
|
||||
"simpleName": "Characters",
|
||||
"parentPath": null
|
||||
},
|
||||
{
|
||||
"catalogId": "22222222-2222-4222-8222-222222222222",
|
||||
"path": "Characters/Heroes",
|
||||
"simpleName": "Heroes",
|
||||
"parentPath": "Characters"
|
||||
},
|
||||
{
|
||||
"catalogId": "33333333-3333-4333-8333-333333333333",
|
||||
"path": "Materials/Metal",
|
||||
"simpleName": "Metal",
|
||||
"parentPath": "Materials"
|
||||
}
|
||||
],
|
||||
"assets": [
|
||||
{
|
||||
"assetId": "asset:0ecbd393de19b0cc4fe26956ba658e782aaad4a859b4a9647161f1405ddadfd5",
|
||||
"assetLibraryIdentifier": null,
|
||||
"relativeAssetIdentifier": "Material/M12 Brushed Metal",
|
||||
"idType": "MATERIAL",
|
||||
"name": "M12 Brushed Metal",
|
||||
"catalogId": "33333333-3333-4333-8333-333333333333",
|
||||
"catalogSimpleName": "",
|
||||
"author": "",
|
||||
"description": "",
|
||||
"copyright": "",
|
||||
"license": "",
|
||||
"tags": [
|
||||
"metal"
|
||||
],
|
||||
"activeTag": 0,
|
||||
"usePreferredImportMethod": false,
|
||||
"preferredImportMethod": "APPEND",
|
||||
"customProperties": [
|
||||
{
|
||||
"name": "roughness",
|
||||
"type": "FLOAT",
|
||||
"value": 0.35
|
||||
}
|
||||
],
|
||||
"sourceSha256": null,
|
||||
"sourcePath": null,
|
||||
"preview": null
|
||||
},
|
||||
{
|
||||
"assetId": "asset:4e9e5a3755581b0f3b604748fc5c64f4f51f14b5c2efd485a7093edeae4dbabd",
|
||||
"assetLibraryIdentifier": null,
|
||||
"relativeAssetIdentifier": "Object/M12 Hero",
|
||||
"idType": "OBJECT",
|
||||
"name": "M12 Hero",
|
||||
"catalogId": "22222222-2222-4222-8222-222222222222",
|
||||
"catalogSimpleName": "",
|
||||
"author": "M12 Artist",
|
||||
"description": "Desktop catalog v1 object fixture",
|
||||
"copyright": "Copyright 2026 M12 Fixture Authors",
|
||||
"license": "CC0-1.0",
|
||||
"tags": [
|
||||
"character",
|
||||
"hero",
|
||||
"rig-ready"
|
||||
],
|
||||
"activeTag": 1,
|
||||
"usePreferredImportMethod": true,
|
||||
"preferredImportMethod": "APPEND",
|
||||
"customProperties": [
|
||||
{
|
||||
"name": "approved",
|
||||
"type": "BOOL",
|
||||
"value": true
|
||||
},
|
||||
{
|
||||
"name": "dimensions",
|
||||
"type": "FLOAT_ARRAY",
|
||||
"value": [
|
||||
2,
|
||||
2,
|
||||
0
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "rating",
|
||||
"type": "INT",
|
||||
"value": 5
|
||||
},
|
||||
{
|
||||
"name": "source",
|
||||
"type": "STRING",
|
||||
"value": "M12-01B"
|
||||
}
|
||||
],
|
||||
"sourceSha256": null,
|
||||
"sourcePath": null,
|
||||
"preview": null
|
||||
},
|
||||
{
|
||||
"assetId": "asset:7ef9ef809269e187e988effca992a2249e6340bd65bba2da2c4b2545c8a7bd8c",
|
||||
"assetLibraryIdentifier": null,
|
||||
"relativeAssetIdentifier": "World/M12 Uncataloged World",
|
||||
"idType": "WORLD",
|
||||
"name": "M12 Uncataloged World",
|
||||
"catalogId": null,
|
||||
"catalogSimpleName": "",
|
||||
"author": "M12 Artist",
|
||||
"description": "Asset without a catalog assignment",
|
||||
"copyright": "",
|
||||
"license": "CC0-1.0",
|
||||
"tags": [],
|
||||
"activeTag": 0,
|
||||
"usePreferredImportMethod": true,
|
||||
"preferredImportMethod": "LINK",
|
||||
"customProperties": [],
|
||||
"sourceSha256": null,
|
||||
"sourcePath": null,
|
||||
"preview": null
|
||||
}
|
||||
],
|
||||
"libraries": []
|
||||
}
|
||||
45
tests/golden/M12-01C/manifest.json
Normal file
45
tests/golden/M12-01C/manifest.json
Normal file
@@ -0,0 +1,45 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-01C",
|
||||
"parentTask": "M12-01",
|
||||
"parityId": "N-023-ASSET-CATALOG-SCHEMA",
|
||||
"enablingTask": true,
|
||||
"parityStateChange": false,
|
||||
"implementationClass": "NOT_APPLICABLE",
|
||||
"blenderVersion": "5.2.0",
|
||||
"identityContract": {
|
||||
"catalog": "CANONICAL_RFC4122_UUID",
|
||||
"asset": "SHA256_OF_BLENDER_ASSET_WEAK_REFERENCE_V1",
|
||||
"renameBehavior": "RELATIVE_IDENTIFIER_AND_ASSET_ID_CHANGE_TO_MATCH_BLENDER",
|
||||
"catalogHierarchy": "CLEANED_SLASH_PATH"
|
||||
},
|
||||
"artifacts": {
|
||||
"protocol": {
|
||||
"path": "web/protocol/asset-catalog-v2.ts",
|
||||
"sha256": "0949838efb2f69466368185b80bb1d2e851672d78311fcd5270eb0814576e5d7"
|
||||
},
|
||||
"generator": {
|
||||
"path": "tools/web/generate-asset-catalog-v2.mjs",
|
||||
"sha256": "b20e7dbd8508ca8ecf17d7da507b45b1225315bac7759c55c7b324683d660881"
|
||||
},
|
||||
"desktopCanonical": {
|
||||
"path": "tests/golden/M12-01B/canonical.json",
|
||||
"sha256": "6fc6def0b9d0e4f51ef40c1d87a1f17074f6340c126a01aee49e5e53271c961e"
|
||||
},
|
||||
"schemaGolden": {
|
||||
"path": "tests/golden/M12-01C/asset-catalog-v2.json",
|
||||
"sha256": "2abe279cebbffd1341dc61b1fdc5366dd1f6f42769ba36171782019ca61fb929"
|
||||
},
|
||||
"blenderWeakReferenceSource": {
|
||||
"path": "blender-5.2.0/source/blender/asset_system/intern/asset_representation.cc",
|
||||
"sha256": "ace3d6468bcdb2f6190431e967495794b7afa35758fd82fc3941b1ce7d374635"
|
||||
}
|
||||
},
|
||||
"nonGoals": [
|
||||
"Schema v1 to v2 migration",
|
||||
"Schema v2 legacy-reader policy",
|
||||
"IndexedDB migration",
|
||||
"Catalog mutation parity"
|
||||
],
|
||||
"nextTask": "M12-01D"
|
||||
}
|
||||
58
tests/golden/M12-01D/catalog-v1.json
Normal file
58
tests/golden/M12-01D/catalog-v1.json
Normal file
@@ -0,0 +1,58 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"revision": 7,
|
||||
"catalogs": [
|
||||
{ "id": "catalog:root", "name": "Characters", "parentId": null },
|
||||
{ "id": "catalog:heroes", "name": "Heroes", "parentId": "catalog:root" },
|
||||
{ "id": "44444444-4444-4444-8444-444444444444", "name": "Animation", "parentId": null }
|
||||
],
|
||||
"assets": [
|
||||
{
|
||||
"id": "legacy:hero",
|
||||
"name": "Legacy Hero",
|
||||
"kind": "OBJECT",
|
||||
"catalogId": "catalog:heroes",
|
||||
"tags": ["character", "hero"],
|
||||
"author": "M12 Artist",
|
||||
"license": "CC0-1.0",
|
||||
"sourceSha256": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"sourcePath": "assets/legacy-hero.blend",
|
||||
"preview": {
|
||||
"assetId": "legacy:hero",
|
||||
"sha256": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
|
||||
"mimeType": "image/png",
|
||||
"width": 64,
|
||||
"height": 64,
|
||||
"byteLength": 4096
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "legacy:walk",
|
||||
"name": "Legacy Walk",
|
||||
"kind": "ACTION",
|
||||
"catalogId": "44444444-4444-4444-8444-444444444444",
|
||||
"tags": ["walk"],
|
||||
"author": "M12 Artist",
|
||||
"license": "CC-BY-4.0",
|
||||
"sourceSha256": "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
|
||||
}
|
||||
],
|
||||
"libraries": [
|
||||
{
|
||||
"id": "library:characters",
|
||||
"name": "Characters",
|
||||
"sourcePath": "libraries/characters.blend",
|
||||
"sourceSha256": "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
|
||||
"dependencyIds": ["library:materials"],
|
||||
"readOnly": true
|
||||
},
|
||||
{
|
||||
"id": "library:materials",
|
||||
"name": "Materials",
|
||||
"sourcePath": "libraries/materials.blend",
|
||||
"sourceSha256": "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
|
||||
"dependencyIds": [],
|
||||
"readOnly": true
|
||||
}
|
||||
]
|
||||
}
|
||||
99
tests/golden/M12-01D/catalog-v2.json
Normal file
99
tests/golden/M12-01D/catalog-v2.json
Normal file
@@ -0,0 +1,99 @@
|
||||
{
|
||||
"schemaVersion": 2,
|
||||
"revision": 7,
|
||||
"catalogs": [
|
||||
{
|
||||
"catalogId": "44444444-4444-4444-8444-444444444444",
|
||||
"path": "Animation",
|
||||
"simpleName": "Animation",
|
||||
"parentPath": null
|
||||
},
|
||||
{
|
||||
"catalogId": "fe3ca14c-95d7-549f-a13b-1bb4c07b6074",
|
||||
"path": "Characters",
|
||||
"simpleName": "Characters",
|
||||
"parentPath": null
|
||||
},
|
||||
{
|
||||
"catalogId": "b4bb3608-9267-5aba-bb9e-9e97b006d5ab",
|
||||
"path": "Characters/Heroes",
|
||||
"simpleName": "Heroes",
|
||||
"parentPath": "Characters"
|
||||
}
|
||||
],
|
||||
"assets": [
|
||||
{
|
||||
"assetId": "asset:ac88c6147ada877adccf4df8ca54d64e1a9cb50a13514212f6d19b1da1660f8d",
|
||||
"assetLibraryIdentifier": null,
|
||||
"relativeAssetIdentifier": "Action/Legacy Walk",
|
||||
"idType": "ACTION",
|
||||
"name": "Legacy Walk",
|
||||
"catalogId": "44444444-4444-4444-8444-444444444444",
|
||||
"catalogSimpleName": "Animation",
|
||||
"author": "M12 Artist",
|
||||
"description": "",
|
||||
"copyright": "",
|
||||
"license": "CC-BY-4.0",
|
||||
"tags": [
|
||||
"walk"
|
||||
],
|
||||
"activeTag": 0,
|
||||
"usePreferredImportMethod": false,
|
||||
"preferredImportMethod": "APPEND",
|
||||
"customProperties": [],
|
||||
"sourceSha256": "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
|
||||
"sourcePath": null,
|
||||
"preview": null
|
||||
},
|
||||
{
|
||||
"assetId": "asset:bb91ef0dddf69bb7d87dd4217a01e7f549b50ad628db0367d3896c6840b3a326",
|
||||
"assetLibraryIdentifier": null,
|
||||
"relativeAssetIdentifier": "Object/Legacy Hero",
|
||||
"idType": "OBJECT",
|
||||
"name": "Legacy Hero",
|
||||
"catalogId": "b4bb3608-9267-5aba-bb9e-9e97b006d5ab",
|
||||
"catalogSimpleName": "Heroes",
|
||||
"author": "M12 Artist",
|
||||
"description": "",
|
||||
"copyright": "",
|
||||
"license": "CC0-1.0",
|
||||
"tags": [
|
||||
"character",
|
||||
"hero"
|
||||
],
|
||||
"activeTag": 0,
|
||||
"usePreferredImportMethod": false,
|
||||
"preferredImportMethod": "APPEND",
|
||||
"customProperties": [],
|
||||
"sourceSha256": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"sourcePath": "assets/legacy-hero.blend",
|
||||
"preview": {
|
||||
"sha256": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
|
||||
"mimeType": "image/png",
|
||||
"width": 64,
|
||||
"height": 64,
|
||||
"byteLength": 4096
|
||||
}
|
||||
}
|
||||
],
|
||||
"libraries": [
|
||||
{
|
||||
"libraryId": "library:characters",
|
||||
"name": "Characters",
|
||||
"sourcePath": "libraries/characters.blend",
|
||||
"sourceSha256": "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
|
||||
"dependencyIds": [
|
||||
"library:materials"
|
||||
],
|
||||
"readOnly": true
|
||||
},
|
||||
{
|
||||
"libraryId": "library:materials",
|
||||
"name": "Materials",
|
||||
"sourcePath": "libraries/materials.blend",
|
||||
"sourceSha256": "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
|
||||
"dependencyIds": [],
|
||||
"readOnly": true
|
||||
}
|
||||
]
|
||||
}
|
||||
44
tests/golden/M12-01D/manifest.json
Normal file
44
tests/golden/M12-01D/manifest.json
Normal file
@@ -0,0 +1,44 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-01D",
|
||||
"parentTask": "M12-01",
|
||||
"parityId": "N-023-ASSET-CATALOG-SCHEMA",
|
||||
"enablingTask": true,
|
||||
"parityStateChange": false,
|
||||
"implementationClass": "NOT_APPLICABLE",
|
||||
"migration": {
|
||||
"sourceSchemaVersion": 1,
|
||||
"targetSchemaVersion": 2,
|
||||
"catalogIdMapping": "RFC4122_UUIDV5_FIXED_NAMESPACE",
|
||||
"assetIdMapping": "BLENDER_ASSET_WEAK_REFERENCE_V1_SHA256",
|
||||
"revisionPolicy": "PRESERVE",
|
||||
"unknownFieldPolicy": "BLOCK_BEFORE_MIGRATION"
|
||||
},
|
||||
"artifacts": {
|
||||
"migrationProtocol": {
|
||||
"path": "web/protocol/asset-catalog-migration.ts",
|
||||
"sha256": "6d74bc5605f94e05208eda82830192d38f88066dfc409058555a8876c785f226"
|
||||
},
|
||||
"targetProtocol": {
|
||||
"path": "web/protocol/asset-catalog-v2.ts",
|
||||
"sha256": "0949838efb2f69466368185b80bb1d2e851672d78311fcd5270eb0814576e5d7"
|
||||
},
|
||||
"generator": {
|
||||
"path": "tools/web/generate-asset-catalog-migration.mjs",
|
||||
"sha256": "954d15c02d68e3f644b57c8c4c136ce09bd037a0af2012bf74b97f681c77dd60"
|
||||
},
|
||||
"sourceFixture": {
|
||||
"path": "tests/golden/M12-01D/catalog-v1.json",
|
||||
"sha256": "1cc43d181afefd63b53cb9c3626bb58195fad20187d6e534adc1ecbe65f75da5"
|
||||
},
|
||||
"targetFixture": {
|
||||
"path": "tests/golden/M12-01D/catalog-v2.json",
|
||||
"sha256": "38e5d1771b3d2d63ce5e10268eac4513f2043b0cbf71ab1799c1868bc2aa97fb"
|
||||
},
|
||||
"migrationReport": {
|
||||
"path": "tests/golden/M12-01D/migration-report.json",
|
||||
"sha256": "57b972c1bbb9ae326c3f264c225c21546682442ff3194fbc343e1c46a2cd410a"
|
||||
}
|
||||
},
|
||||
"nextTask": "M12-01E"
|
||||
}
|
||||
53
tests/golden/M12-01D/migration-report.json
Normal file
53
tests/golden/M12-01D/migration-report.json
Normal file
@@ -0,0 +1,53 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-01D",
|
||||
"status": "MIGRATED",
|
||||
"sourceSchemaVersion": 1,
|
||||
"targetSchemaVersion": 2,
|
||||
"sourceRevision": 7,
|
||||
"targetRevision": 7,
|
||||
"sourceManifestSha256": "cbdc8b03dc9ce1f38b44bae1c7459eb273126cbd6c7dd33115d2b1966e975881",
|
||||
"targetManifestSha256": "0c08ed1af1dd0998c809f76d969fd21d8fdae28ad37cf5571bdc99b16bf3ec90",
|
||||
"catalogMappings": [
|
||||
{
|
||||
"legacyId": "44444444-4444-4444-8444-444444444444",
|
||||
"catalogId": "44444444-4444-4444-8444-444444444444",
|
||||
"path": "Animation"
|
||||
},
|
||||
{
|
||||
"legacyId": "catalog:heroes",
|
||||
"catalogId": "b4bb3608-9267-5aba-bb9e-9e97b006d5ab",
|
||||
"path": "Characters/Heroes"
|
||||
},
|
||||
{
|
||||
"legacyId": "catalog:root",
|
||||
"catalogId": "fe3ca14c-95d7-549f-a13b-1bb4c07b6074",
|
||||
"path": "Characters"
|
||||
}
|
||||
],
|
||||
"assetMappings": [
|
||||
{
|
||||
"legacyId": "legacy:hero",
|
||||
"assetId": "asset:bb91ef0dddf69bb7d87dd4217a01e7f549b50ad628db0367d3896c6840b3a326",
|
||||
"relativeAssetIdentifier": "Object/Legacy Hero"
|
||||
},
|
||||
{
|
||||
"legacyId": "legacy:walk",
|
||||
"assetId": "asset:ac88c6147ada877adccf4df8ca54d64e1a9cb50a13514212f6d19b1da1660f8d",
|
||||
"relativeAssetIdentifier": "Action/Legacy Walk"
|
||||
}
|
||||
],
|
||||
"defaultsApplied": {
|
||||
"dynamicMetadataFields": 4,
|
||||
"preferredImportMethods": 2,
|
||||
"customPropertyCollections": 2
|
||||
},
|
||||
"preserved": {
|
||||
"catalogs": 3,
|
||||
"assets": 2,
|
||||
"libraries": 2,
|
||||
"previews": 1,
|
||||
"sourceBindings": 2
|
||||
},
|
||||
"nextTask": "M12-01E"
|
||||
}
|
||||
255
tests/golden/M12-01E/compatibility-report.json
Normal file
255
tests/golden/M12-01E/compatibility-report.json
Normal file
@@ -0,0 +1,255 @@
|
||||
{
|
||||
"read": {
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-01E",
|
||||
"readerSchemaVersion": 1,
|
||||
"documentSchemaVersion": 2,
|
||||
"operation": "READ",
|
||||
"status": "READ_ONLY",
|
||||
"code": "ASSET_SCHEMA_DOWNGRADE_BLOCKED",
|
||||
"recoverable": true,
|
||||
"sourceSha256": "0c08ed1af1dd0998c809f76d969fd21d8fdae28ad37cf5571bdc99b16bf3ec90",
|
||||
"snapshot": {
|
||||
"revision": 7,
|
||||
"catalogs": [
|
||||
{
|
||||
"catalogId": "44444444-4444-4444-8444-444444444444",
|
||||
"path": "Animation",
|
||||
"simpleName": "Animation"
|
||||
},
|
||||
{
|
||||
"catalogId": "fe3ca14c-95d7-549f-a13b-1bb4c07b6074",
|
||||
"path": "Characters",
|
||||
"simpleName": "Characters"
|
||||
},
|
||||
{
|
||||
"catalogId": "b4bb3608-9267-5aba-bb9e-9e97b006d5ab",
|
||||
"path": "Characters/Heroes",
|
||||
"simpleName": "Heroes"
|
||||
}
|
||||
],
|
||||
"assets": [
|
||||
{
|
||||
"assetId": "asset:ac88c6147ada877adccf4df8ca54d64e1a9cb50a13514212f6d19b1da1660f8d",
|
||||
"relativeAssetIdentifier": "Action/Legacy Walk",
|
||||
"idType": "ACTION",
|
||||
"name": "Legacy Walk",
|
||||
"catalogId": "44444444-4444-4444-8444-444444444444"
|
||||
},
|
||||
{
|
||||
"assetId": "asset:bb91ef0dddf69bb7d87dd4217a01e7f549b50ad628db0367d3896c6840b3a326",
|
||||
"relativeAssetIdentifier": "Object/Legacy Hero",
|
||||
"idType": "OBJECT",
|
||||
"name": "Legacy Hero",
|
||||
"catalogId": "b4bb3608-9267-5aba-bb9e-9e97b006d5ab"
|
||||
}
|
||||
],
|
||||
"libraries": [
|
||||
{
|
||||
"libraryId": "library:characters",
|
||||
"name": "Characters",
|
||||
"readOnly": true
|
||||
},
|
||||
{
|
||||
"libraryId": "library:materials",
|
||||
"name": "Materials",
|
||||
"readOnly": true
|
||||
}
|
||||
]
|
||||
},
|
||||
"nextTask": "M12-01F"
|
||||
},
|
||||
"catalogWrite": {
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-01E",
|
||||
"readerSchemaVersion": 1,
|
||||
"documentSchemaVersion": 2,
|
||||
"operation": "CATALOG_WRITE",
|
||||
"status": "BLOCKED",
|
||||
"code": "ASSET_SCHEMA_DOWNGRADE_BLOCKED",
|
||||
"recoverable": true,
|
||||
"sourceSha256": "0c08ed1af1dd0998c809f76d969fd21d8fdae28ad37cf5571bdc99b16bf3ec90",
|
||||
"snapshot": {
|
||||
"revision": 7,
|
||||
"catalogs": [
|
||||
{
|
||||
"catalogId": "44444444-4444-4444-8444-444444444444",
|
||||
"path": "Animation",
|
||||
"simpleName": "Animation"
|
||||
},
|
||||
{
|
||||
"catalogId": "fe3ca14c-95d7-549f-a13b-1bb4c07b6074",
|
||||
"path": "Characters",
|
||||
"simpleName": "Characters"
|
||||
},
|
||||
{
|
||||
"catalogId": "b4bb3608-9267-5aba-bb9e-9e97b006d5ab",
|
||||
"path": "Characters/Heroes",
|
||||
"simpleName": "Heroes"
|
||||
}
|
||||
],
|
||||
"assets": [
|
||||
{
|
||||
"assetId": "asset:ac88c6147ada877adccf4df8ca54d64e1a9cb50a13514212f6d19b1da1660f8d",
|
||||
"relativeAssetIdentifier": "Action/Legacy Walk",
|
||||
"idType": "ACTION",
|
||||
"name": "Legacy Walk",
|
||||
"catalogId": "44444444-4444-4444-8444-444444444444"
|
||||
},
|
||||
{
|
||||
"assetId": "asset:bb91ef0dddf69bb7d87dd4217a01e7f549b50ad628db0367d3896c6840b3a326",
|
||||
"relativeAssetIdentifier": "Object/Legacy Hero",
|
||||
"idType": "OBJECT",
|
||||
"name": "Legacy Hero",
|
||||
"catalogId": "b4bb3608-9267-5aba-bb9e-9e97b006d5ab"
|
||||
}
|
||||
],
|
||||
"libraries": [
|
||||
{
|
||||
"libraryId": "library:characters",
|
||||
"name": "Characters",
|
||||
"readOnly": true
|
||||
},
|
||||
{
|
||||
"libraryId": "library:materials",
|
||||
"name": "Materials",
|
||||
"readOnly": true
|
||||
}
|
||||
]
|
||||
},
|
||||
"nextTask": "M12-01F"
|
||||
},
|
||||
"assetWrite": {
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-01E",
|
||||
"readerSchemaVersion": 1,
|
||||
"documentSchemaVersion": 2,
|
||||
"operation": "ASSET_WRITE",
|
||||
"status": "BLOCKED",
|
||||
"code": "ASSET_SCHEMA_DOWNGRADE_BLOCKED",
|
||||
"recoverable": true,
|
||||
"sourceSha256": "0c08ed1af1dd0998c809f76d969fd21d8fdae28ad37cf5571bdc99b16bf3ec90",
|
||||
"snapshot": {
|
||||
"revision": 7,
|
||||
"catalogs": [
|
||||
{
|
||||
"catalogId": "44444444-4444-4444-8444-444444444444",
|
||||
"path": "Animation",
|
||||
"simpleName": "Animation"
|
||||
},
|
||||
{
|
||||
"catalogId": "fe3ca14c-95d7-549f-a13b-1bb4c07b6074",
|
||||
"path": "Characters",
|
||||
"simpleName": "Characters"
|
||||
},
|
||||
{
|
||||
"catalogId": "b4bb3608-9267-5aba-bb9e-9e97b006d5ab",
|
||||
"path": "Characters/Heroes",
|
||||
"simpleName": "Heroes"
|
||||
}
|
||||
],
|
||||
"assets": [
|
||||
{
|
||||
"assetId": "asset:ac88c6147ada877adccf4df8ca54d64e1a9cb50a13514212f6d19b1da1660f8d",
|
||||
"relativeAssetIdentifier": "Action/Legacy Walk",
|
||||
"idType": "ACTION",
|
||||
"name": "Legacy Walk",
|
||||
"catalogId": "44444444-4444-4444-8444-444444444444"
|
||||
},
|
||||
{
|
||||
"assetId": "asset:bb91ef0dddf69bb7d87dd4217a01e7f549b50ad628db0367d3896c6840b3a326",
|
||||
"relativeAssetIdentifier": "Object/Legacy Hero",
|
||||
"idType": "OBJECT",
|
||||
"name": "Legacy Hero",
|
||||
"catalogId": "b4bb3608-9267-5aba-bb9e-9e97b006d5ab"
|
||||
}
|
||||
],
|
||||
"libraries": [
|
||||
{
|
||||
"libraryId": "library:characters",
|
||||
"name": "Characters",
|
||||
"readOnly": true
|
||||
},
|
||||
{
|
||||
"libraryId": "library:materials",
|
||||
"name": "Materials",
|
||||
"readOnly": true
|
||||
}
|
||||
]
|
||||
},
|
||||
"nextTask": "M12-01F"
|
||||
},
|
||||
"save": {
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-01E",
|
||||
"readerSchemaVersion": 1,
|
||||
"documentSchemaVersion": 2,
|
||||
"operation": "SAVE",
|
||||
"status": "BLOCKED",
|
||||
"code": "ASSET_SCHEMA_DOWNGRADE_BLOCKED",
|
||||
"recoverable": true,
|
||||
"sourceSha256": "0c08ed1af1dd0998c809f76d969fd21d8fdae28ad37cf5571bdc99b16bf3ec90",
|
||||
"snapshot": {
|
||||
"revision": 7,
|
||||
"catalogs": [
|
||||
{
|
||||
"catalogId": "44444444-4444-4444-8444-444444444444",
|
||||
"path": "Animation",
|
||||
"simpleName": "Animation"
|
||||
},
|
||||
{
|
||||
"catalogId": "fe3ca14c-95d7-549f-a13b-1bb4c07b6074",
|
||||
"path": "Characters",
|
||||
"simpleName": "Characters"
|
||||
},
|
||||
{
|
||||
"catalogId": "b4bb3608-9267-5aba-bb9e-9e97b006d5ab",
|
||||
"path": "Characters/Heroes",
|
||||
"simpleName": "Heroes"
|
||||
}
|
||||
],
|
||||
"assets": [
|
||||
{
|
||||
"assetId": "asset:ac88c6147ada877adccf4df8ca54d64e1a9cb50a13514212f6d19b1da1660f8d",
|
||||
"relativeAssetIdentifier": "Action/Legacy Walk",
|
||||
"idType": "ACTION",
|
||||
"name": "Legacy Walk",
|
||||
"catalogId": "44444444-4444-4444-8444-444444444444"
|
||||
},
|
||||
{
|
||||
"assetId": "asset:bb91ef0dddf69bb7d87dd4217a01e7f549b50ad628db0367d3896c6840b3a326",
|
||||
"relativeAssetIdentifier": "Object/Legacy Hero",
|
||||
"idType": "OBJECT",
|
||||
"name": "Legacy Hero",
|
||||
"catalogId": "b4bb3608-9267-5aba-bb9e-9e97b006d5ab"
|
||||
}
|
||||
],
|
||||
"libraries": [
|
||||
{
|
||||
"libraryId": "library:characters",
|
||||
"name": "Characters",
|
||||
"readOnly": true
|
||||
},
|
||||
{
|
||||
"libraryId": "library:materials",
|
||||
"name": "Materials",
|
||||
"readOnly": true
|
||||
}
|
||||
]
|
||||
},
|
||||
"nextTask": "M12-01F"
|
||||
},
|
||||
"future": {
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-01E",
|
||||
"readerSchemaVersion": 1,
|
||||
"documentSchemaVersion": 3,
|
||||
"operation": "READ",
|
||||
"status": "BLOCKED",
|
||||
"code": "PROTOCOL_MISMATCH",
|
||||
"recoverable": false,
|
||||
"sourceSha256": "d6b7646f6ede911358f954a0ccae376703f1c0e8854a9953a4a77a968b600b80",
|
||||
"snapshot": null,
|
||||
"nextTask": "M12-01F"
|
||||
}
|
||||
}
|
||||
39
tests/golden/M12-01E/manifest.json
Normal file
39
tests/golden/M12-01E/manifest.json
Normal file
@@ -0,0 +1,39 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-01E",
|
||||
"parentTask": "M12-01",
|
||||
"parityId": "N-023-ASSET-CATALOG-SCHEMA",
|
||||
"enablingTask": true,
|
||||
"parityStateChange": false,
|
||||
"implementationClass": "NOT_APPLICABLE",
|
||||
"policy": {
|
||||
"nativeV1": "READY",
|
||||
"validV2Read": "READ_ONLY",
|
||||
"validV2Write": "ASSET_SCHEMA_DOWNGRADE_BLOCKED",
|
||||
"futureSchema": "PROTOCOL_MISMATCH",
|
||||
"sourceMutation": "FORBIDDEN"
|
||||
},
|
||||
"artifacts": {
|
||||
"protocol": {
|
||||
"path": "web/protocol/asset-catalog-compatibility.ts",
|
||||
"sha256": "5d51029b232e03f08fc0778d4933910b2a54818b4d653fbcc185c8d764641349"
|
||||
},
|
||||
"errorContract": {
|
||||
"path": "web/protocol/error.ts",
|
||||
"sha256": "309ab84d5c755a69466ddb73e4b54e87caf62cbcac0f10f34d904e9f6f4a5f34"
|
||||
},
|
||||
"generator": {
|
||||
"path": "tools/web/generate-asset-catalog-compatibility.mjs",
|
||||
"sha256": "208f568db092e1712095d77ab28db92d5a1eb11fe62813b237ce466f9268fd4e"
|
||||
},
|
||||
"v2Fixture": {
|
||||
"path": "tests/golden/M12-01D/catalog-v2.json",
|
||||
"sha256": "38e5d1771b3d2d63ce5e10268eac4513f2043b0cbf71ab1799c1868bc2aa97fb"
|
||||
},
|
||||
"compatibilityReport": {
|
||||
"path": "tests/golden/M12-01E/compatibility-report.json",
|
||||
"sha256": "3c2f9241b56ad5bd742dc4152dec703bdc56eef4e6d8d60e6edf163c4571ad54"
|
||||
}
|
||||
},
|
||||
"nextTask": "M12-01F"
|
||||
}
|
||||
33
tests/golden/M12-01F/manifest.json
Normal file
33
tests/golden/M12-01F/manifest.json
Normal file
@@ -0,0 +1,33 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-01F",
|
||||
"parentTask": "M12-01",
|
||||
"parityId": "N-023-ASSET-CATALOG-SCHEMA",
|
||||
"enablingTask": true,
|
||||
"parityStateChange": false,
|
||||
"implementationClass": "NOT_APPLICABLE",
|
||||
"negativeCaseCount": 9,
|
||||
"artifacts": {
|
||||
"schemaProtocol": {
|
||||
"path": "web/protocol/asset-catalog-v2.ts",
|
||||
"sha256": "0949838efb2f69466368185b80bb1d2e851672d78311fcd5270eb0814576e5d7"
|
||||
},
|
||||
"migrationProtocol": {
|
||||
"path": "web/protocol/asset-catalog-migration.ts",
|
||||
"sha256": "6d74bc5605f94e05208eda82830192d38f88066dfc409058555a8876c785f226"
|
||||
},
|
||||
"v1Fixture": {
|
||||
"path": "tests/golden/M12-01D/catalog-v1.json",
|
||||
"sha256": "1cc43d181afefd63b53cb9c3626bb58195fad20187d6e534adc1ecbe65f75da5"
|
||||
},
|
||||
"v2Fixture": {
|
||||
"path": "tests/golden/M12-01D/catalog-v2.json",
|
||||
"sha256": "38e5d1771b3d2d63ce5e10268eac4513f2043b0cbf71ab1799c1868bc2aa97fb"
|
||||
},
|
||||
"negativeCases": {
|
||||
"path": "tests/golden/M12-01F/negative-cases.json",
|
||||
"sha256": "74672fa0aec248fd5d9a265743ef4dfe4d417fce8a24622b8b3d6be2f95c8874"
|
||||
}
|
||||
},
|
||||
"nextTask": "M12-01G"
|
||||
}
|
||||
17
tests/golden/M12-01F/negative-cases.json
Normal file
17
tests/golden/M12-01F/negative-cases.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-01F",
|
||||
"cases": [
|
||||
{ "id": "DUPLICATE_CATALOG_ID", "code": "ASSET_MANIFEST_INVALID" },
|
||||
{ "id": "DUPLICATE_ASSET_ID", "code": "ASSET_MANIFEST_INVALID" },
|
||||
{ "id": "LEGACY_PARENT_CYCLE", "code": "ASSET_MANIFEST_INVALID" },
|
||||
{ "id": "PARENT_PATH_MISMATCH", "code": "ASSET_MANIFEST_INVALID" },
|
||||
{ "id": "OVERLONG_SIMPLE_NAME_UTF8", "code": "ASSET_BUDGET_EXCEEDED" },
|
||||
{ "id": "OVERLONG_TAG_UTF8", "code": "ASSET_BUDGET_EXCEEDED" },
|
||||
{ "id": "V2_UNKNOWN_TOP_LEVEL", "code": "ASSET_MANIFEST_INVALID" },
|
||||
{ "id": "V2_UNKNOWN_ASSET_FIELD", "code": "ASSET_MANIFEST_INVALID" },
|
||||
{ "id": "V1_UNKNOWN_ASSET_FIELD", "code": "ASSET_MANIFEST_INVALID" }
|
||||
],
|
||||
"recovery": "VALID_V2_AFTER_EACH_NEGATIVE",
|
||||
"nextTask": "M12-01G"
|
||||
}
|
||||
40
tests/golden/M12-01G/manifest.json
Normal file
40
tests/golden/M12-01G/manifest.json
Normal file
@@ -0,0 +1,40 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-01G",
|
||||
"parentTask": "M12-01",
|
||||
"parityId": "N-023-ASSET-CATALOG-SCHEMA",
|
||||
"enablingTask": true,
|
||||
"parityStateChange": false,
|
||||
"implementationClass": "NOT_APPLICABLE",
|
||||
"transaction": {
|
||||
"sourceRow": "asset-catalog:index:v1",
|
||||
"targetRow": "asset-catalog:index:v2",
|
||||
"receiptRow": "asset-catalog:migration:v1-to-v2",
|
||||
"faultPoints": ["AFTER_TARGET_PUT", "AFTER_SOURCE_DELETE"],
|
||||
"failureCode": "STORAGE_TRANSACTION",
|
||||
"rollbackPolicy": "PRESERVE_SOURCE_TARGET_RECEIPT_AND_UNRELATED_ROWS"
|
||||
},
|
||||
"artifacts": {
|
||||
"indexedDBMigration": {
|
||||
"path": "web/app/src/storage/asset-catalog-indexeddb.ts",
|
||||
"sha256": "283a08bccb5ea301bd2aef8f01d4496972e3962f75e340479336c50e3539ba57"
|
||||
},
|
||||
"browserSuite": {
|
||||
"path": "web/tests/e2e/asset-catalog-indexeddb-migration.spec.ts",
|
||||
"sha256": "82c40f38898277b4053a9654537ec9c21bc01a784d1091831e139361575a81e9"
|
||||
},
|
||||
"sourceFixture": {
|
||||
"path": "tests/golden/M12-01D/catalog-v1.json",
|
||||
"sha256": "1cc43d181afefd63b53cb9c3626bb58195fad20187d6e534adc1ecbe65f75da5"
|
||||
},
|
||||
"targetFixture": {
|
||||
"path": "tests/golden/M12-01D/catalog-v2.json",
|
||||
"sha256": "38e5d1771b3d2d63ce5e10268eac4513f2043b0cbf71ab1799c1868bc2aa97fb"
|
||||
},
|
||||
"migrationReport": {
|
||||
"path": "tests/golden/M12-01D/migration-report.json",
|
||||
"sha256": "57b972c1bbb9ae326c3f264c225c21546682442ff3194fbc343e1c46a2cd410a"
|
||||
}
|
||||
},
|
||||
"nextTask": "M12-01H"
|
||||
}
|
||||
43
tests/golden/M12-01H/manifest.json
Normal file
43
tests/golden/M12-01H/manifest.json
Normal file
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-01H",
|
||||
"parentTask": "M12-01",
|
||||
"parityId": "N-023-ASSET-CATALOG-SCHEMA",
|
||||
"enablingTask": true,
|
||||
"parityStateChange": false,
|
||||
"implementationClass": "NOT_APPLICABLE",
|
||||
"restart": {
|
||||
"contexts": ["INITIAL_PAGE", "RELOADED_PAGE", "WORKER_GENERATION_1", "WORKER_GENERATION_2"],
|
||||
"catalogCount": 3,
|
||||
"assetCount": 2,
|
||||
"manifestSha256": "0c08ed1af1dd0998c809f76d969fd21d8fdae28ad37cf5571bdc99b16bf3ec90",
|
||||
"catalogOrder": [
|
||||
"44444444-4444-4444-8444-444444444444",
|
||||
"fe3ca14c-95d7-549f-a13b-1bb4c07b6074",
|
||||
"b4bb3608-9267-5aba-bb9e-9e97b006d5ab"
|
||||
],
|
||||
"assetOrder": [
|
||||
"asset:ac88c6147ada877adccf4df8ca54d64e1a9cb50a13514212f6d19b1da1660f8d",
|
||||
"asset:bb91ef0dddf69bb7d87dd4217a01e7f549b50ad628db0367d3896c6840b3a326"
|
||||
]
|
||||
},
|
||||
"artifacts": {
|
||||
"indexedDBReader": {
|
||||
"path": "web/app/src/storage/asset-catalog-indexeddb.ts",
|
||||
"sha256": "283a08bccb5ea301bd2aef8f01d4496972e3962f75e340479336c50e3539ba57"
|
||||
},
|
||||
"restartWorker": {
|
||||
"path": "web/app/src/workers/asset-catalog-restart-test.worker.ts",
|
||||
"sha256": "e6007d352555be046b89d0becd719692652ee0418cc97087bf7599155f2a538e"
|
||||
},
|
||||
"browserSuite": {
|
||||
"path": "web/tests/e2e/asset-catalog-restart.spec.ts",
|
||||
"sha256": "7945ff38dd474a74c265594b66534a280eb69407509137e60d41f1bea3b3c19b"
|
||||
},
|
||||
"targetFixture": {
|
||||
"path": "tests/golden/M12-01D/catalog-v2.json",
|
||||
"sha256": "38e5d1771b3d2d63ce5e10268eac4513f2043b0cbf71ab1799c1868bc2aa97fb"
|
||||
}
|
||||
},
|
||||
"nextTask": "M12-01I"
|
||||
}
|
||||
98
tests/golden/M12-02A/asset-preview-inventory.json
Normal file
98
tests/golden/M12-02A/asset-preview-inventory.json
Normal file
@@ -0,0 +1,98 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-02A",
|
||||
"parentTask": "M12-02",
|
||||
"parityId": "N-023-ASSET-PREVIEW",
|
||||
"enablingTask": true,
|
||||
"parityStateChange": false,
|
||||
"blenderVersion": "5.2.0",
|
||||
"sources": [
|
||||
{ "role": "PREVIEW_DNA", "path": "blender-5.2.0/source/blender/makesdna/DNA_ID.h", "sha256": "27d0eac02df737f2d2298eeef45e66eae0d76da66542ccdf32400b3e9bd904a9" },
|
||||
{ "role": "PREVIEW_SLOT_ENUM", "path": "blender-5.2.0/source/blender/makesdna/DNA_ID_enums.h", "sha256": "9b97042ca408924c2efa92b49bc44a4f2f949b11768fb89b2c1b71c9c796cd61" },
|
||||
{ "role": "PREVIEW_API", "path": "blender-5.2.0/source/blender/blenkernel/BKE_preview_image.hh", "sha256": "25656ad3ef44bb6d00b6e6f9748d26fd04a358d7bb9f876da4194c05d1e5a9a1" },
|
||||
{ "role": "PREVIEW_IMPLEMENTATION", "path": "blender-5.2.0/source/blender/blenkernel/intern/preview_image.cc", "sha256": "886ae47b7f4950b7b3dc558ac1973c0b114a265d837aa130e4479dd8b438db86" },
|
||||
{ "role": "PREVIEW_RNA", "path": "blender-5.2.0/source/blender/makesrna/intern/rna_ID.cc", "sha256": "d97b3346a3d36e5198989087cbb6a24f43d9d6d535a6f795392a47f77ccdfc2c" },
|
||||
{ "role": "ASSET_PREVIEW_GENERATOR", "path": "blender-5.2.0/source/blender/editors/asset/intern/asset_ops.cc", "sha256": "94ae9ce907d1060b3f4dc7536ddd66590efb8e1680bf7d3dc72ce1ce53523732" },
|
||||
{ "role": "PREVIEW_BLEND_READER", "path": "blender-5.2.0/source/blender/blenloader/intern/readblenentry.cc", "sha256": "dd10bdbdd5f42a09722411e8b99ce34749186d256e91413b7cb5bdef422b8cde" },
|
||||
{ "role": "PREVIEW_SIZE_CONSTANTS", "path": "blender-5.2.0/source/blender/imbuf/IMB_thumbs.hh", "sha256": "c7d5ddf7c3fbbdd731eac7f0761cada3e8e0df024d8d2c7b48d777e517761be1" },
|
||||
{ "role": "ICON_SIZE_CONSTANTS", "path": "blender-5.2.0/source/blender/blenkernel/BKE_icons.hh", "sha256": "c16c52503a2fe2e5df9c2925b04d6ce64468cf2c5d98fd85e0e47423cfc9d2aa" },
|
||||
{ "role": "CURRENT_WEB_V1", "path": "web/protocol/asset-library-io.ts", "sha256": "5c62539db3833a2113007dfbdfd12ca06704d86e0cf0e57ad97f7fbf6acda7f4" },
|
||||
{ "role": "CURRENT_WEB_V2", "path": "web/protocol/asset-catalog-v2.ts", "sha256": "0949838efb2f69466368185b80bb1d2e851672d78311fcd5270eb0814576e5d7" }
|
||||
],
|
||||
"fixtures": [
|
||||
{ "role": "LOADED_RGBA8_PNG", "path": "tests/files/web/media/sequencer-frame.png", "sha256": "295b083db2299ab904947eb39c17173de70c211882b0d855537d8f3cc27698ed" },
|
||||
{ "role": "ASSET_NO_PREVIEW_BLEND", "path": "tests/files/web/m12_asset_catalog_v1/m12_asset_catalog_v1.blend", "sha256": "8facfe82e3ca0a0605c139ef5bdcbb82d27a6953a6add4e008b68af90bc1211f" }
|
||||
],
|
||||
"storage": {
|
||||
"slotCount": 2,
|
||||
"slots": [
|
||||
{ "index": 0, "name": "ICON", "defaultRenderMaxHeight": 32 },
|
||||
{ "index": 1, "name": "PREVIEW", "defaultRenderMaxHeight": 128, "customAssetMaxHeight": 256 }
|
||||
],
|
||||
"fields": [
|
||||
{ "name": "w", "cType": "unsigned int[2]", "persistence": "BLEND", "semantic": "PIXEL_WIDTH" },
|
||||
{ "name": "h", "cType": "unsigned int[2]", "persistence": "BLEND", "semantic": "PIXEL_HEIGHT" },
|
||||
{ "name": "flag", "cType": "short[2]", "persistence": "BLEND_WITH_RUNTIME_BITS_CLEARED", "semantic": "CHANGED_USER_EDITED_RENDERING" },
|
||||
{ "name": "changed_timestamp", "cType": "short[2]", "persistence": "BLEND", "semantic": "CHANGE_COUNTER" },
|
||||
{ "name": "rect", "cType": "unsigned int*[2]", "persistence": "BLEND_ARRAY", "semantic": "ONE_PACKED_RGBA32_VALUE_PER_PIXEL" },
|
||||
{ "name": "runtime", "cType": "PreviewImageRuntime*", "persistence": "RUNTIME_ONLY", "semantic": "GPU_DEFERRED_LOADING_AND_USER_COUNT" }
|
||||
],
|
||||
"pixelFormat": "RGBA8_PACKED_UINT32",
|
||||
"byteComponents": 4,
|
||||
"alphaMode": "PREMULTIPLIED",
|
||||
"colorSpace": null,
|
||||
"colorSpaceFinding": "NO_COLOR_SPACE_FIELD_OR_RNA_PROPERTY; BYTE_BUFFER_INTERPRETATION_DEPENDS_ON_PRODUCER_PIPELINE"
|
||||
},
|
||||
"rna": {
|
||||
"idProperty": { "identifier": "preview", "type": "POINTER", "readOnly": true, "nullWhenAbsent": true },
|
||||
"imagePreviewProperties": [
|
||||
{ "identifier": "is_image_custom", "type": "BOOLEAN", "readOnly": false, "arrayLength": 0 },
|
||||
{ "identifier": "image_size", "type": "INT", "readOnly": false, "arrayLength": 2 },
|
||||
{ "identifier": "image_pixels", "type": "INT", "readOnly": false, "arrayLength": 0 },
|
||||
{ "identifier": "image_pixels_float", "type": "FLOAT", "readOnly": false, "arrayLength": 0 },
|
||||
{ "identifier": "is_icon_custom", "type": "BOOLEAN", "readOnly": false, "arrayLength": 0 },
|
||||
{ "identifier": "icon_size", "type": "INT", "readOnly": false, "arrayLength": 2 },
|
||||
{ "identifier": "icon_pixels", "type": "INT", "readOnly": false, "arrayLength": 0 },
|
||||
{ "identifier": "icon_pixels_float", "type": "FLOAT", "readOnly": false, "arrayLength": 0 },
|
||||
{ "identifier": "icon_id", "type": "INT", "readOnly": true, "arrayLength": 0 }
|
||||
],
|
||||
"lengthRules": {
|
||||
"packedPixels": "width*height",
|
||||
"floatComponents": "width*height*4",
|
||||
"floatConversion": "BYTE_COMPONENT_DIVIDED_BY_255_WITHOUT_COLOR_TRANSFORM"
|
||||
}
|
||||
},
|
||||
"runtimeStates": {
|
||||
"noPreview": {
|
||||
"state": "ABSENT_POINTER",
|
||||
"assetCount": 3,
|
||||
"assetTypes": ["Object", "Material", "World"],
|
||||
"previewValues": [null, null, null]
|
||||
},
|
||||
"loadedPreview": {
|
||||
"sourceSize": [8, 8],
|
||||
"imageSize": [8, 8],
|
||||
"iconSize": [32, 32],
|
||||
"imagePackedPixelCount": 64,
|
||||
"imageFloatComponentCount": 256,
|
||||
"iconPackedPixelCount": 1024,
|
||||
"imageCustom": false,
|
||||
"iconCustom": false
|
||||
},
|
||||
"emptyBufferRule": "NULL_RECT_OR_ZERO_WIDTH_OR_ZERO_HEIGHT_IS_NO_IMAGE_FOR_THAT_SLOT",
|
||||
"invalidDeferredRule": "RUNTIME_TAG_ONLY_NOT_A_PERSISTED_COLOR_OR_CONTENT_IDENTITY"
|
||||
},
|
||||
"currentWeb": {
|
||||
"v1Fields": ["assetId", "sha256", "mimeType", "width", "height", "byteLength"],
|
||||
"v2Fields": ["sha256", "mimeType", "width", "height", "byteLength"],
|
||||
"noPreviewRepresentation": { "v1": "OPTIONAL_PROPERTY_ABSENT", "v2": "NULL" },
|
||||
"missingSemantics": ["slot", "colorSpace", "alphaMode", "sourceSha256", "generatorIdentity", "deferredOrInvalidState"]
|
||||
},
|
||||
"nonGoals": [
|
||||
"Preview content identity schema",
|
||||
"Decode budgets",
|
||||
"OPFS commit ordering",
|
||||
"Browser display parity"
|
||||
],
|
||||
"nextTask": "M12-02B"
|
||||
}
|
||||
28
tests/golden/M12-02B/identity.json
Normal file
28
tests/golden/M12-02B/identity.json
Normal file
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"assetId": "asset:4e9e5a3755581b0f3b604748fc5c64f4f51f14b5c2efd485a7093edeae4dbabd",
|
||||
"slot": "PREVIEW",
|
||||
"source": {
|
||||
"mimeType": "image/png",
|
||||
"byteLength": 261,
|
||||
"sha256": "295b083db2299ab904947eb39c17173de70c211882b0d855537d8f3cc27698ed"
|
||||
},
|
||||
"content": {
|
||||
"mimeType": "image/png",
|
||||
"byteLength": 513,
|
||||
"sha256": "ff139c4a1c5d388c78c5168dfd3272e80ea0d1b15b3743e29a38cd908e8c70e7",
|
||||
"width": 8,
|
||||
"height": 8,
|
||||
"pixelFormat": "RGBA8",
|
||||
"colorSpace": "SRGB",
|
||||
"alphaMode": "STRAIGHT"
|
||||
},
|
||||
"generator": {
|
||||
"name": "BLENDER_ASSET_PREVIEW_IDENTITY",
|
||||
"version": "5.2.0",
|
||||
"executableSha256": "d4483926610484ef9c2ad9241aae1469f934d955ebe791f1920e263e0ba85b82",
|
||||
"scriptSha256": "753a26be90f7d97828737ebc3a4ab88275a7c655b4f9992406c7c35fba6535ce",
|
||||
"settingsSha256": "07ebc55d4b6cbb293badf0640874846912df3d23549997cf6f87f4c325280ca0"
|
||||
},
|
||||
"identitySha256": "3139b1df11615fd8c7caaf920a0ba2c93e8921d999374876a2c65d889d256e5f"
|
||||
}
|
||||
31
tests/golden/M12-02B/manifest.json
Normal file
31
tests/golden/M12-02B/manifest.json
Normal file
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-02B",
|
||||
"parentTask": "M12-02",
|
||||
"parityId": "N-023-ASSET-PREVIEW",
|
||||
"enablingTask": true,
|
||||
"parityStateChange": false,
|
||||
"implementationClass": "NOT_APPLICABLE",
|
||||
"generatorSettings": {
|
||||
"schemaVersion": 1,
|
||||
"format": "PNG",
|
||||
"colorMode": "RGBA",
|
||||
"colorDepth": 8,
|
||||
"compression": 0,
|
||||
"displayDevice": "sRGB",
|
||||
"viewTransform": "Standard",
|
||||
"look": "None",
|
||||
"exposure": 0,
|
||||
"gamma": 1
|
||||
},
|
||||
"generatorSettingsSha256": "07ebc55d4b6cbb293badf0640874846912df3d23549997cf6f87f4c325280ca0",
|
||||
"artifacts": {
|
||||
"protocol": { "path": "web/protocol/asset-preview.ts", "sha256": "2a1d877af42424014097c669e9d44c21b27e3171be185320554693cbefcd7438" },
|
||||
"errorContract": { "path": "web/protocol/error.ts", "sha256": "6aec7b8a9d6903d83ae67718db3ae775d709cabb207cf2a02968d4ff7c5f26c0" },
|
||||
"generator": { "path": "tools/web/generate-asset-preview-identity.py", "sha256": "753a26be90f7d97828737ebc3a4ab88275a7c655b4f9992406c7c35fba6535ce" },
|
||||
"blender": { "path": "build_blender_5.2.0/bin/blender", "sha256": "d4483926610484ef9c2ad9241aae1469f934d955ebe791f1920e263e0ba85b82" },
|
||||
"source": { "path": "tests/files/web/media/sequencer-frame.png", "sha256": "295b083db2299ab904947eb39c17173de70c211882b0d855537d8f3cc27698ed" },
|
||||
"content": { "path": "tests/golden/M12-02B/preview.png", "sha256": "ff139c4a1c5d388c78c5168dfd3272e80ea0d1b15b3743e29a38cd908e8c70e7" }
|
||||
},
|
||||
"nextTask": "M12-02C"
|
||||
}
|
||||
BIN
tests/golden/M12-02B/preview.png
Normal file
BIN
tests/golden/M12-02B/preview.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 513 B |
34
tests/golden/M12-02C/manifest.json
Normal file
34
tests/golden/M12-02C/manifest.json
Normal file
@@ -0,0 +1,34 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-02C",
|
||||
"parentTask": "M12-02",
|
||||
"parityId": "N-023-ASSET-PREVIEW",
|
||||
"enablingTask": true,
|
||||
"parityStateChange": false,
|
||||
"implementationClass": "NOT_APPLICABLE",
|
||||
"budget": {
|
||||
"maxEncodedBytes": 16777216,
|
||||
"maxWidth": 4096,
|
||||
"maxHeight": 4096,
|
||||
"maxPixels": 16777216,
|
||||
"maxDecodedBytes": 67108864,
|
||||
"maxCompressionRatio": 100
|
||||
},
|
||||
"preDecodeOrder": [
|
||||
"IDENTITY_PARSE",
|
||||
"ENCODED_BYTE_BUDGET",
|
||||
"CONTENT_SHA256",
|
||||
"MIME_AND_HEADER",
|
||||
"DIMENSION_BINDING",
|
||||
"PIXEL_AND_DECODED_BYTE_BUDGET",
|
||||
"COMPRESSION_RATIO"
|
||||
],
|
||||
"negativeCaseCount": 8,
|
||||
"artifacts": {
|
||||
"decodeProtocol": { "path": "web/protocol/asset-preview-decode.ts", "sha256": "3d1c491af2503a7a6012541ed43400d680f8e666cc12a54db284aeb6ac18ff63" },
|
||||
"identityProtocol": { "path": "web/protocol/asset-preview.ts", "sha256": "2a1d877af42424014097c669e9d44c21b27e3171be185320554693cbefcd7438" },
|
||||
"identityGolden": { "path": "tests/golden/M12-02B/identity.json", "sha256": "1b1eb8416ce4aa4d83b0dc42b9cb375f1da965e3f0cb9650991289fc619a0a7b" },
|
||||
"contentPNG": { "path": "tests/golden/M12-02B/preview.png", "sha256": "ff139c4a1c5d388c78c5168dfd3272e80ea0d1b15b3743e29a38cd908e8c70e7" }
|
||||
},
|
||||
"nextTask": "M12-02D"
|
||||
}
|
||||
48
tests/golden/M12-02D/manifest.json
Normal file
48
tests/golden/M12-02D/manifest.json
Normal file
@@ -0,0 +1,48 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-02D",
|
||||
"parentTask": "M12-02",
|
||||
"parityId": "N-023-ASSET-PREVIEW",
|
||||
"enablingTask": true,
|
||||
"parityStateChange": false,
|
||||
"implementationClass": "NOT_APPLICABLE",
|
||||
"commitOrder": [
|
||||
"PRE_DECODE_GATE",
|
||||
"OPFS_WRITE",
|
||||
"OPFS_READBACK",
|
||||
"CATALOG_TRANSACTION"
|
||||
],
|
||||
"faultPoints": [
|
||||
"BEFORE_OPFS_WRITE",
|
||||
"AFTER_OPFS_WRITE",
|
||||
"AFTER_CATALOG_PUT"
|
||||
],
|
||||
"failureCode": "STORAGE_TRANSACTION",
|
||||
"artifacts": {
|
||||
"commitCoordinator": {
|
||||
"path": "web/app/src/storage/asset-preview-opfs-commit.ts",
|
||||
"sha256": "36418e480b108eb885b5d8da6633174ed1face1fa62742a64372a45280e727a2"
|
||||
},
|
||||
"browserSuite": {
|
||||
"path": "web/tests/e2e/asset-preview-opfs-commit.spec.ts",
|
||||
"sha256": "043b9b06d4c0275938cc1d4f9837df95f58f281130f3c0f2b90c10540244592e"
|
||||
},
|
||||
"unitSuite": {
|
||||
"path": "web/tests/unit/asset-preview-opfs-commit.test.mjs",
|
||||
"sha256": "f489a1d9a4c5fb24a99bce6d31841534c7cf3981b53076a0d9e19d106e9d0d74"
|
||||
},
|
||||
"decodeProtocol": {
|
||||
"path": "web/protocol/asset-preview-decode.ts",
|
||||
"sha256": "3d1c491af2503a7a6012541ed43400d680f8e666cc12a54db284aeb6ac18ff63"
|
||||
},
|
||||
"identityGolden": {
|
||||
"path": "tests/golden/M12-02B/identity.json",
|
||||
"sha256": "1b1eb8416ce4aa4d83b0dc42b9cb375f1da965e3f0cb9650991289fc619a0a7b"
|
||||
},
|
||||
"contentPNG": {
|
||||
"path": "tests/golden/M12-02B/preview.png",
|
||||
"sha256": "ff139c4a1c5d388c78c5168dfd3272e80ea0d1b15b3743e29a38cd908e8c70e7"
|
||||
}
|
||||
},
|
||||
"nextTask": "M12-02E"
|
||||
}
|
||||
41
tests/golden/M12-02E/manifest.json
Normal file
41
tests/golden/M12-02E/manifest.json
Normal file
@@ -0,0 +1,41 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-02E",
|
||||
"parentTask": "M12-02",
|
||||
"parityId": "N-023-ASSET-PREVIEW",
|
||||
"enablingTask": true,
|
||||
"parityStateChange": false,
|
||||
"implementationClass": "NOT_APPLICABLE",
|
||||
"claims": [
|
||||
"ONE_CONTENT_HASH_ONE_OPFS_PAYLOAD",
|
||||
"DISTINCT_ASSET_IDENTITY_PRESERVED",
|
||||
"DISTINCT_ASSET_METADATA_PRESERVED",
|
||||
"REOPENED_HEAD_VERIFIED"
|
||||
],
|
||||
"assetCount": 2,
|
||||
"physicalPayloadCount": 1,
|
||||
"contentSha256": "ff139c4a1c5d388c78c5168dfd3272e80ea0d1b15b3743e29a38cd908e8c70e7",
|
||||
"artifacts": {
|
||||
"commitCoordinator": {
|
||||
"path": "web/app/src/storage/asset-preview-opfs-commit.ts",
|
||||
"sha256": "36418e480b108eb885b5d8da6633174ed1face1fa62742a64372a45280e727a2"
|
||||
},
|
||||
"browserSuite": {
|
||||
"path": "web/tests/e2e/asset-preview-dedup.spec.ts",
|
||||
"sha256": "4e53b7a35eb109b152bd6dc0c3348dcb08879d17619968d37fc761c67aa38b40"
|
||||
},
|
||||
"unitSuite": {
|
||||
"path": "web/tests/unit/asset-preview-dedup.test.mjs",
|
||||
"sha256": "e023fdd33e0f40c1331dfdd73cd287dc684256b9d134971ab17db8cfe2a83835"
|
||||
},
|
||||
"catalogFixture": {
|
||||
"path": "tests/golden/M12-01D/catalog-v2.json",
|
||||
"sha256": "38e5d1771b3d2d63ce5e10268eac4513f2043b0cbf71ab1799c1868bc2aa97fb"
|
||||
},
|
||||
"contentPNG": {
|
||||
"path": "tests/golden/M12-02B/preview.png",
|
||||
"sha256": "ff139c4a1c5d388c78c5168dfd3272e80ea0d1b15b3743e29a38cd908e8c70e7"
|
||||
}
|
||||
},
|
||||
"nextTask": "M12-02F"
|
||||
}
|
||||
35
tests/golden/M12-02F/manifest.json
Normal file
35
tests/golden/M12-02F/manifest.json
Normal file
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-02F",
|
||||
"parentTask": "M12-02",
|
||||
"parityId": "N-023-ASSET-PREVIEW",
|
||||
"enablingTask": true,
|
||||
"parityStateChange": false,
|
||||
"implementationClass": "NOT_APPLICABLE",
|
||||
"states": ["READY", "QUARANTINED", "REOPENED_QUARANTINED"],
|
||||
"failureCode": "ASSET_SOURCE_HASH_MISMATCH",
|
||||
"catalogMutationOnCorruption": false,
|
||||
"artifacts": {
|
||||
"quarantineProtocol": {
|
||||
"path": "web/app/src/storage/asset-preview-quarantine.ts",
|
||||
"sha256": "a5f3330dbd16d9f578d85d9504c980fffea85b834b77340a307ce21ce9b1cb04"
|
||||
},
|
||||
"browserSuite": {
|
||||
"path": "web/tests/e2e/asset-preview-quarantine.spec.ts",
|
||||
"sha256": "d8e1d0741765e8f8bfd47b45cf03213d8629efdbbf77dfd33846785a3ec80c27"
|
||||
},
|
||||
"unitSuite": {
|
||||
"path": "web/tests/unit/asset-preview-quarantine.test.mjs",
|
||||
"sha256": "79c836c7a3be4e9f305a962775444c766577cca87fa6d1698811e75eb21f2d9a"
|
||||
},
|
||||
"commitCoordinator": {
|
||||
"path": "web/app/src/storage/asset-preview-opfs-commit.ts",
|
||||
"sha256": "36418e480b108eb885b5d8da6633174ed1face1fa62742a64372a45280e727a2"
|
||||
},
|
||||
"contentPNG": {
|
||||
"path": "tests/golden/M12-02B/preview.png",
|
||||
"sha256": "ff139c4a1c5d388c78c5168dfd3272e80ea0d1b15b3743e29a38cd908e8c70e7"
|
||||
}
|
||||
},
|
||||
"nextTask": "M12-02G"
|
||||
}
|
||||
39
tests/golden/M12-02G/manifest.json
Normal file
39
tests/golden/M12-02G/manifest.json
Normal file
@@ -0,0 +1,39 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-02G",
|
||||
"parentTask": "M12-02",
|
||||
"parityId": "N-023-ASSET-PREVIEW",
|
||||
"enablingTask": true,
|
||||
"parityStateChange": false,
|
||||
"implementationClass": "NOT_APPLICABLE",
|
||||
"sequence": [
|
||||
"REMOVE_FIRST_REFERENCE",
|
||||
"RETAIN_PAYLOAD",
|
||||
"REMOVE_FINAL_REFERENCE",
|
||||
"COLLECT_PAYLOAD"
|
||||
],
|
||||
"otherProjectPayload": "PRESERVED_READY",
|
||||
"artifacts": {
|
||||
"referenceGC": {
|
||||
"path": "web/app/src/storage/asset-preview-reference-gc.ts",
|
||||
"sha256": "76b9d8ccd3e7992356f33adc694001f9b0ff364788234389eacdb09198d1415e"
|
||||
},
|
||||
"browserSuite": {
|
||||
"path": "web/tests/e2e/asset-preview-reference-gc.spec.ts",
|
||||
"sha256": "2e9e9b47883997092c5afb0fb7859a484754764de19006e24a8ff2bdeb24f35a"
|
||||
},
|
||||
"unitSuite": {
|
||||
"path": "web/tests/unit/asset-preview-reference-gc.test.mjs",
|
||||
"sha256": "c5de3122b5d8aab17daf0179cb4f5bb0b5d299408818849cbe7b18e40a47706e"
|
||||
},
|
||||
"opfsStorage": {
|
||||
"path": "web/app/src/storage/opfs-files.ts",
|
||||
"sha256": "2e8ef9d72194bf803a7e823fb2b7de30b9f10ae6dd4b031b81b97ff82eee9cc6"
|
||||
},
|
||||
"contentPNG": {
|
||||
"path": "tests/golden/M12-02B/preview.png",
|
||||
"sha256": "ff139c4a1c5d388c78c5168dfd3272e80ea0d1b15b3743e29a38cd908e8c70e7"
|
||||
}
|
||||
},
|
||||
"nextTask": "M12-02H"
|
||||
}
|
||||
17
tests/golden/M12-02H/desktop-report.json
Normal file
17
tests/golden/M12-02H/desktop-report.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-02H",
|
||||
"generator": "BLENDER_ASSET_PREVIEW_IDENTITY",
|
||||
"blenderVersion": "5.2.0",
|
||||
"width": 8,
|
||||
"height": 8,
|
||||
"pixelCount": 64,
|
||||
"pixelFormat": "RGBA8",
|
||||
"colorSpace": "SRGB",
|
||||
"alphaMode": "STRAIGHT",
|
||||
"uniquePixelCount": 1,
|
||||
"referencePixel": [51, 102, 204, 255],
|
||||
"rgbaSha256": "c2ff81750b41193ce1a06d47d0ff18168a756136dbf0f2586cd0638d4bf0ef00",
|
||||
"sourceContentMaxFloatError": 0,
|
||||
"contentSha256": "ff139c4a1c5d388c78c5168dfd3272e80ea0d1b15b3743e29a38cd908e8c70e7"
|
||||
}
|
||||
64
tests/golden/M12-02H/manifest.json
Normal file
64
tests/golden/M12-02H/manifest.json
Normal file
@@ -0,0 +1,64 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-02H",
|
||||
"parentTask": "M12-02",
|
||||
"parityId": "N-023-ASSET-PREVIEW",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": true,
|
||||
"implementationClass": "LOCAL_EXACT",
|
||||
"completedSlice": "A-preview-desktop-browser-main-offscreen-display",
|
||||
"backends": [
|
||||
"BLENDER_5_2_DESKTOP",
|
||||
"MAIN_THREAD_CANVAS_2D",
|
||||
"OFFSCREEN_CANVAS_2D"
|
||||
],
|
||||
"reference": {
|
||||
"width": 8,
|
||||
"height": 8,
|
||||
"pixelFormat": "RGBA8",
|
||||
"colorSpace": "SRGB",
|
||||
"alphaMode": "STRAIGHT",
|
||||
"rgbaSha256": "c2ff81750b41193ce1a06d47d0ff18168a756136dbf0f2586cd0638d4bf0ef00"
|
||||
},
|
||||
"thresholds": {
|
||||
"maxMeanAbsoluteError": 0,
|
||||
"maxRootMeanSquaredError": 0,
|
||||
"maxP95ChannelError": 0,
|
||||
"maxBadPixelRatio": 0,
|
||||
"badPixelChannelError": 0,
|
||||
"foregroundDeltaFromReferenceBackground": 1,
|
||||
"minForegroundIntersectionOverUnion": 1,
|
||||
"maxAlphaCoverageDeltaRatio": 0
|
||||
},
|
||||
"artifacts": {
|
||||
"displayRuntime": {
|
||||
"path": "web/app/src/assets/AssetPreviewDisplay.ts",
|
||||
"sha256": "e4a46a40291427afc185caf016b02120ea71639ab4ab4ac250a5c3de28ee8d28"
|
||||
},
|
||||
"displayWorker": {
|
||||
"path": "web/app/src/workers/asset-preview-display-test.worker.ts",
|
||||
"sha256": "6322562f54b608b7eaac4ca3bc0f8d861f47bb8e9b37b3c2ae3d61163108724f"
|
||||
},
|
||||
"desktopChecker": {
|
||||
"path": "tools/web/check-asset-preview-display.mjs",
|
||||
"sha256": "d03d766e69ea0547be2c247b5d7ef8fd5ceab6b399dc996eba711fa0cac0ca54"
|
||||
},
|
||||
"desktopReport": {
|
||||
"path": "tests/golden/M12-02H/desktop-report.json",
|
||||
"sha256": "cdf841f5d27362f6df380772ada8b7b1427d051a8b46b5c2c20aab0b597c25d0"
|
||||
},
|
||||
"browserSuite": {
|
||||
"path": "web/tests/e2e/asset-preview-display.spec.ts",
|
||||
"sha256": "340d386c6a854c44cd6f6207e3699f870b8ded2aada4747afd6ff1103c719520"
|
||||
},
|
||||
"unitSuite": {
|
||||
"path": "web/tests/unit/asset-preview-display.test.mjs",
|
||||
"sha256": "f10a05900c4d1282251f7a76e7c413a18602910f55fe8400f1713f548eba3873"
|
||||
},
|
||||
"contentPNG": {
|
||||
"path": "tests/golden/M12-02B/preview.png",
|
||||
"sha256": "ff139c4a1c5d388c78c5168dfd3272e80ea0d1b15b3743e29a38cd908e8c70e7"
|
||||
}
|
||||
},
|
||||
"nextTask": "M12-03A"
|
||||
}
|
||||
255
tests/golden/M12-03A/library-operation-inventory.json
Normal file
255
tests/golden/M12-03A/library-operation-inventory.json
Normal file
@@ -0,0 +1,255 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-03A",
|
||||
"enablingTask": true,
|
||||
"parityStateChange": false,
|
||||
"blenderVersion": "5.2.0",
|
||||
"sources": [
|
||||
{
|
||||
"role": "LINK_APPEND_CONTEXT_API",
|
||||
"path": "blender-5.2.0/source/blender/blenkernel/BKE_blendfile_link_append.hh",
|
||||
"sha256": "3676283eca608a12fa6485c438374dfbe07a787efe22fd7719aadb8ccb8c81f9"
|
||||
},
|
||||
{
|
||||
"role": "LINK_APPEND_CLOSURE",
|
||||
"path": "blender-5.2.0/source/blender/blenkernel/intern/blendfile_link_append.cc",
|
||||
"sha256": "b6e7f839a934eabd708c5465fdcf00e138e1f84837ae6690198b14a5069b6d23"
|
||||
},
|
||||
{
|
||||
"role": "LINK_APPEND_OPERATORS",
|
||||
"path": "blender-5.2.0/source/blender/windowmanager/intern/wm_files_link.cc",
|
||||
"sha256": "d67d555f8534e6794ba7e520d95faef5a0a83017415517c8821690fa4accfb8d"
|
||||
},
|
||||
{
|
||||
"role": "PYTHON_LIBRARY_LOAD",
|
||||
"path": "blender-5.2.0/source/blender/python/intern/bpy_library_load.cc",
|
||||
"sha256": "41b80637140582c3c75fabe234a8c33e9749c75cfc5c8f9c748401c18b253cab"
|
||||
},
|
||||
{
|
||||
"role": "BLEND_LIBRARY_READER",
|
||||
"path": "blender-5.2.0/source/blender/blenloader/BLO_readfile.hh",
|
||||
"sha256": "24e65071b94e7fbc754e12563b9698f2d92a5aab06b89763950d2d4f7d66c623"
|
||||
},
|
||||
{
|
||||
"role": "OVERRIDE_STORAGE",
|
||||
"path": "blender-5.2.0/source/blender/makesdna/DNA_ID.h",
|
||||
"sha256": "27d0eac02df737f2d2298eeef45e66eae0d76da66542ccdf32400b3e9bd904a9"
|
||||
},
|
||||
{
|
||||
"role": "OVERRIDE_API",
|
||||
"path": "blender-5.2.0/source/blender/blenkernel/BKE_lib_override.hh",
|
||||
"sha256": "78545dad30c66a61e1f9754ba8017422b8d7fd3a4b41e522299e27f951762fde"
|
||||
},
|
||||
{
|
||||
"role": "OVERRIDE_CLOSURE",
|
||||
"path": "blender-5.2.0/source/blender/blenkernel/intern/lib_override.cc",
|
||||
"sha256": "34ed9f0edd6549c77e73dc958ec189717bb6eb7dda3531109161546b8c532808"
|
||||
},
|
||||
{
|
||||
"role": "CURRENT_WEB_LIBRARY_GATE",
|
||||
"path": "web/protocol/asset-library-io.ts",
|
||||
"sha256": "5c62539db3833a2113007dfbdfd12ca06704d86e0cf0e57ad97f7fbf6acda7f4"
|
||||
}
|
||||
],
|
||||
"runtimeFixture": {
|
||||
"path": "tests/files/web/image_resource_matrix.blend",
|
||||
"sha256": "21e16821b62dad84539560bfa53ac755f097dbcd33ca2d614c07123461cdd74e",
|
||||
"nestedLibraries": [
|
||||
{
|
||||
"filepath": "//resources/image_resource_library.blend",
|
||||
"isArchive": false
|
||||
}
|
||||
]
|
||||
},
|
||||
"dataBlockSurface": {
|
||||
"discoverableCollections": [
|
||||
"actions",
|
||||
"annotations",
|
||||
"armatures",
|
||||
"brushes",
|
||||
"cache_files",
|
||||
"cameras",
|
||||
"collections",
|
||||
"curves",
|
||||
"fonts",
|
||||
"grease_pencils",
|
||||
"hair_curves",
|
||||
"images",
|
||||
"lattices",
|
||||
"lightprobes",
|
||||
"lights",
|
||||
"linestyles",
|
||||
"masks",
|
||||
"materials",
|
||||
"meshes",
|
||||
"metaballs",
|
||||
"movieclips",
|
||||
"node_groups",
|
||||
"objects",
|
||||
"paint_curves",
|
||||
"palettes",
|
||||
"particles",
|
||||
"pointclouds",
|
||||
"scenes",
|
||||
"screens",
|
||||
"sounds",
|
||||
"speakers",
|
||||
"texts",
|
||||
"textures",
|
||||
"volumes",
|
||||
"workspaces",
|
||||
"worlds"
|
||||
],
|
||||
"onlyAppendableCollections": ["screens", "workspaces"],
|
||||
"nonRootRoles": [
|
||||
{"collection": "libraries", "role": "SOURCE_AND_TRANSITIVE_LIBRARY_METADATA"},
|
||||
{"collection": "shape_keys", "role": "EMBEDDED_OWNER_DEPENDENCY"},
|
||||
{"collection": "window_managers", "role": "CURRENT_FILE_RUNTIME_ONLY"},
|
||||
{"collection": "all_ids", "role": "AGGREGATE_QUERY_NOT_LIBRARY_SECTION"}
|
||||
]
|
||||
},
|
||||
"operatorSurface": {
|
||||
"appendProperties": [
|
||||
"filepath", "directory", "filename", "files", "check_existing", "filter_blender",
|
||||
"filter_backup", "filter_image", "filter_movie", "filter_python", "filter_font",
|
||||
"filter_sound", "filter_text", "filter_archive", "filter_btx", "filter_alembic",
|
||||
"filter_usd", "filter_obj", "filter_volume", "filter_folder", "filter_blenlib",
|
||||
"filemode", "display_type", "sort_method", "link", "do_reuse_local_id",
|
||||
"clear_asset_data", "autoselect", "active_collection", "instance_collections",
|
||||
"instance_object_data", "set_fake", "use_recursive"
|
||||
],
|
||||
"linkProperties": [
|
||||
"filepath", "directory", "filename", "files", "check_existing", "filter_blender",
|
||||
"filter_backup", "filter_image", "filter_movie", "filter_python", "filter_font",
|
||||
"filter_sound", "filter_text", "filter_archive", "filter_btx", "filter_alembic",
|
||||
"filter_usd", "filter_obj", "filter_volume", "filter_folder", "filter_blenlib",
|
||||
"filemode", "relative_path", "display_type", "sort_method", "link",
|
||||
"do_reuse_local_id", "clear_asset_data", "autoselect", "active_collection",
|
||||
"instance_collections", "instance_object_data"
|
||||
],
|
||||
"pythonLoadArguments": [
|
||||
"filepath", "link", "pack", "relative", "set_fake", "recursive", "reuse_local_id",
|
||||
"assets_only", "clear_asset_data", "create_liboverrides", "reuse_liboverrides",
|
||||
"create_liboverrides_runtime"
|
||||
]
|
||||
},
|
||||
"operations": [
|
||||
{
|
||||
"operation": "APPEND",
|
||||
"entryPoints": ["WM_OT_append", "bpy.data.libraries.load(link=False)"],
|
||||
"rootCollections": "ALL_DISCOVERABLE",
|
||||
"dataBlockRoles": [
|
||||
"SOURCE_LIBRARY",
|
||||
"DIRECT_SELECTED_ROOT",
|
||||
"INDIRECT_ID_DEPENDENCY",
|
||||
"TRANSITIVE_LIBRARY_DEPENDENCY",
|
||||
"EMBEDDED_OWNER_DEPENDENCY",
|
||||
"LIBOVERRIDE_DEPENDENCY",
|
||||
"REUSABLE_LOCAL_ID",
|
||||
"INSTANTIATED_COLLECTION_OBJECT_OR_OBJECT_DATA"
|
||||
],
|
||||
"closure": {
|
||||
"walker": "BKE_library_foreach_ID_link",
|
||||
"walkFlags": ["IDWALK_NOP"],
|
||||
"ignoredAsIndependentEdges": [
|
||||
"IDWALK_CB_EMBEDDED",
|
||||
"IDWALK_CB_EMBEDDED_NOT_OWNING",
|
||||
"IDWALK_CB_INTERNAL",
|
||||
"IDWALK_CB_LOOPBACK"
|
||||
],
|
||||
"selectedRootTag": "DIRECT",
|
||||
"discoveredDependencyTag": "INDIRECT",
|
||||
"overrideDependencyTags": ["LIBOVERRIDE_DEPENDENCY", "LIBOVERRIDE_DEPENDENCY_ONLY"],
|
||||
"terminalActions": ["KEEP_LINKED", "REUSE_LOCAL", "MAKE_LOCAL", "COPY_LOCAL"],
|
||||
"recursiveCrossLibraryLocalization": "CONTROLLED_BY_USE_RECURSIVE"
|
||||
}
|
||||
},
|
||||
{
|
||||
"operation": "LINK",
|
||||
"entryPoints": ["WM_OT_link", "bpy.data.libraries.load(link=True)"],
|
||||
"rootCollections": "DISCOVERABLE_EXCEPT_ONLY_APPENDABLE",
|
||||
"dataBlockRoles": [
|
||||
"SOURCE_LIBRARY",
|
||||
"DIRECT_LINKED_ROOT",
|
||||
"INDIRECT_LINKED_ID_DEPENDENCY",
|
||||
"TRANSITIVE_LIBRARY_DEPENDENCY",
|
||||
"EMBEDDED_OWNER_DEPENDENCY",
|
||||
"INSTANTIATED_COLLECTION_OBJECT_OR_OBJECT_DATA"
|
||||
],
|
||||
"closure": {
|
||||
"readerStages": ["BLO_library_link_begin", "BLO_library_link_named_part", "BLO_library_link_end"],
|
||||
"selectedRootTag": "ID_TAG_EXTERN",
|
||||
"discoveredDependencyTag": "ID_TAG_INDIRECT",
|
||||
"sourceOwnership": "ID.lib",
|
||||
"transitiveLibraryOwnership": "Library.runtime.parent",
|
||||
"localization": "NONE"
|
||||
}
|
||||
},
|
||||
{
|
||||
"operation": "LIBRARY_OVERRIDE",
|
||||
"entryPoints": ["bpy.data.libraries.load(link=True, create_liboverrides=True)", "BKE_blendfile_override"],
|
||||
"rootCollections": "LINK_ROOT_SURFACE_SUBJECT_TO_OVERRIDE_HIERARCHY",
|
||||
"dataBlockRoles": [
|
||||
"LINKED_REFERENCE_ROOT",
|
||||
"LINKED_REFERENCE_DEPENDENCY",
|
||||
"LOCAL_OVERRIDE_ID",
|
||||
"LOCAL_HIERARCHY_ROOT",
|
||||
"SYSTEM_OVERRIDE_DEPENDENCY",
|
||||
"OVERRIDE_PROPERTY",
|
||||
"OVERRIDE_PROPERTY_OPERATION",
|
||||
"REFERENCE_AND_LOCAL_SUBITEM"
|
||||
],
|
||||
"closure": {
|
||||
"referencePointer": "IDOverrideLibrary.reference",
|
||||
"hierarchyRootPointer": "IDOverrideLibrary.hierarchy_root",
|
||||
"propertyPath": "IDOverrideLibraryProperty.rna_path",
|
||||
"operationCollection": "IDOverrideLibraryProperty.operations",
|
||||
"creation": "BKE_lib_override_library_create",
|
||||
"resync": "BKE_lib_override_library_resync",
|
||||
"operationDiff": "BKE_lib_override_library_operations_create",
|
||||
"dependencyRule": "REFERENCE_POINTER_GRAPH_WITH_LOCAL_OVERRIDE_REMAP",
|
||||
"linkedReferencePreserved": true
|
||||
}
|
||||
}
|
||||
],
|
||||
"overrideRNA": {
|
||||
"IDOverrideLibrary": [
|
||||
{"identifier": "reference", "type": "POINTER", "isReadonly": true},
|
||||
{"identifier": "hierarchy_root", "type": "POINTER", "isReadonly": true},
|
||||
{"identifier": "is_in_hierarchy", "type": "BOOLEAN", "isReadonly": false},
|
||||
{"identifier": "is_system_override", "type": "BOOLEAN", "isReadonly": false},
|
||||
{"identifier": "properties", "type": "COLLECTION", "isReadonly": true}
|
||||
],
|
||||
"IDOverrideLibraryProperty": [
|
||||
{"identifier": "rna_path", "type": "STRING", "isReadonly": true},
|
||||
{"identifier": "operations", "type": "COLLECTION", "isReadonly": true}
|
||||
],
|
||||
"IDOverrideLibraryPropertyOperation": [
|
||||
{"identifier": "operation", "type": "ENUM", "isReadonly": true},
|
||||
{"identifier": "flag", "type": "ENUM", "isReadonly": true},
|
||||
{"identifier": "subitem_reference_name", "type": "STRING", "isReadonly": true},
|
||||
{"identifier": "subitem_local_name", "type": "STRING", "isReadonly": true},
|
||||
{"identifier": "subitem_reference_id", "type": "POINTER", "isReadonly": true},
|
||||
{"identifier": "subitem_local_id", "type": "POINTER", "isReadonly": true},
|
||||
{"identifier": "subitem_reference_index", "type": "INT", "isReadonly": true},
|
||||
{"identifier": "subitem_local_index", "type": "INT", "isReadonly": true},
|
||||
{"identifier": "label", "type": "STRING", "isReadonly": true},
|
||||
{"identifier": "tooltip", "type": "STRING", "isReadonly": true}
|
||||
]
|
||||
},
|
||||
"currentWebGap": {
|
||||
"represented": ["LIBRARY_SOURCE", "LIBRARY_DEPENDENCY_IDS", "READ_ONLY_FLAG"],
|
||||
"missing": [
|
||||
"PER_ID_SOURCE_LIBRARY",
|
||||
"DIRECT_INDIRECT_ID_CLASSIFICATION",
|
||||
"APPEND_LOCAL_OWNERSHIP",
|
||||
"APPEND_REUSE_WEAK_REFERENCE",
|
||||
"OVERRIDE_REFERENCE",
|
||||
"OVERRIDE_HIERARCHY_ROOT",
|
||||
"OVERRIDE_PROPERTY_OPERATIONS",
|
||||
"INVALIDATION_TOKEN"
|
||||
],
|
||||
"mutationGate": "LIBRARY_MUTATION_UNAVAILABLE"
|
||||
},
|
||||
"nextTask": "M12-03B"
|
||||
}
|
||||
80
tests/golden/M12-03B/library-operation-bindings.json
Normal file
80
tests/golden/M12-03B/library-operation-bindings.json
Normal file
@@ -0,0 +1,80 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-03B",
|
||||
"source": {
|
||||
"schemaVersion": 1,
|
||||
"sourceLibraryId": "library:f35430c19c85351788053ceb44ba4dc01ec0a190a985197e60826d9d52c55a94",
|
||||
"sourceLocator": "project-assets/libraries/m12-library-source.blend",
|
||||
"sourceSha256": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
|
||||
},
|
||||
"bindings": [
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"operation": "APPEND",
|
||||
"source": {
|
||||
"schemaVersion": 1,
|
||||
"sourceLibraryId": "library:f35430c19c85351788053ceb44ba4dc01ec0a190a985197e60826d9d52c55a94",
|
||||
"sourceLocator": "project-assets/libraries/m12-library-source.blend",
|
||||
"sourceSha256": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
|
||||
},
|
||||
"sourceDataBlockId": "Object/M12Asset",
|
||||
"owner": {
|
||||
"kind": "LOCAL_MAIN",
|
||||
"projectId": "project:m12",
|
||||
"localDataBlockId": "Object/M12Asset"
|
||||
},
|
||||
"readOnly": false,
|
||||
"referenceReadOnly": false,
|
||||
"sourceGeneration": 3,
|
||||
"sourceRevision": 7,
|
||||
"dependencyClosureSha256": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
|
||||
"invalidationToken": "libtoken:c650807d1afb1c64d1e9deba45120b2bff5336dfdff52ce61c5d3645be923e6a"
|
||||
},
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"operation": "LINK",
|
||||
"source": {
|
||||
"schemaVersion": 1,
|
||||
"sourceLibraryId": "library:f35430c19c85351788053ceb44ba4dc01ec0a190a985197e60826d9d52c55a94",
|
||||
"sourceLocator": "project-assets/libraries/m12-library-source.blend",
|
||||
"sourceSha256": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
|
||||
},
|
||||
"sourceDataBlockId": "Object/M12Asset",
|
||||
"owner": {
|
||||
"kind": "SOURCE_LIBRARY",
|
||||
"sourceLibraryId": "library:f35430c19c85351788053ceb44ba4dc01ec0a190a985197e60826d9d52c55a94",
|
||||
"sourceDataBlockId": "Object/M12Asset"
|
||||
},
|
||||
"readOnly": true,
|
||||
"referenceReadOnly": true,
|
||||
"sourceGeneration": 3,
|
||||
"sourceRevision": 7,
|
||||
"dependencyClosureSha256": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
|
||||
"invalidationToken": "libtoken:028c1336cb8f27596daa8754654be461ab10af66caa35f706eac3f4b9480cfa4"
|
||||
},
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"operation": "LIBRARY_OVERRIDE",
|
||||
"source": {
|
||||
"schemaVersion": 1,
|
||||
"sourceLibraryId": "library:f35430c19c85351788053ceb44ba4dc01ec0a190a985197e60826d9d52c55a94",
|
||||
"sourceLocator": "project-assets/libraries/m12-library-source.blend",
|
||||
"sourceSha256": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
|
||||
},
|
||||
"sourceDataBlockId": "Object/M12Asset",
|
||||
"owner": {
|
||||
"kind": "LOCAL_OVERRIDE",
|
||||
"projectId": "project:m12",
|
||||
"localDataBlockId": "Object/M12AssetOverride",
|
||||
"referenceSourceDataBlockId": "Object/M12Asset",
|
||||
"hierarchyRootDataBlockId": "Collection/M12Root"
|
||||
},
|
||||
"readOnly": false,
|
||||
"referenceReadOnly": true,
|
||||
"sourceGeneration": 3,
|
||||
"sourceRevision": 7,
|
||||
"dependencyClosureSha256": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
|
||||
"invalidationToken": "libtoken:a308528792e6056af25bebb3a349ac7e1ff5c4e40189d2cb7aad453a8a8299fe"
|
||||
}
|
||||
]
|
||||
}
|
||||
42
tests/golden/M12-03B/manifest.json
Normal file
42
tests/golden/M12-03B/manifest.json
Normal file
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-03B",
|
||||
"parentTask": "M12-03",
|
||||
"enablingTask": true,
|
||||
"parityStateChange": false,
|
||||
"operations": ["APPEND", "LINK", "LIBRARY_OVERRIDE"],
|
||||
"ownershipSemantics": {
|
||||
"APPEND": {"owner": "LOCAL_MAIN", "readOnly": false, "referenceReadOnly": false},
|
||||
"LINK": {"owner": "SOURCE_LIBRARY", "readOnly": true, "referenceReadOnly": true},
|
||||
"LIBRARY_OVERRIDE": {"owner": "LOCAL_OVERRIDE", "readOnly": false, "referenceReadOnly": true}
|
||||
},
|
||||
"invalidationFields": [
|
||||
"operation",
|
||||
"sourceLibraryId",
|
||||
"sourceSha256",
|
||||
"sourceDataBlockId",
|
||||
"owner",
|
||||
"sourceGeneration",
|
||||
"sourceRevision",
|
||||
"dependencyClosureSha256"
|
||||
],
|
||||
"artifacts": {
|
||||
"parentInventory": {
|
||||
"path": "tests/golden/M12-03A/library-operation-inventory.json",
|
||||
"sha256": "0dcb16233b52b3c0be2373f489d6bf3c771c9d6564993ff98b5d63dcd322fef7"
|
||||
},
|
||||
"protocol": {
|
||||
"path": "web/protocol/library-operation-identity.ts",
|
||||
"sha256": "5371133bd98e05935cd75bab582abedec32a36559af8d212f0bc8a534ef19451"
|
||||
},
|
||||
"golden": {
|
||||
"path": "tests/golden/M12-03B/library-operation-bindings.json",
|
||||
"sha256": "b39c0f26697ac688c1203ae4e3e27d8a02686c7c9da9afc438c89a0b4d69370f"
|
||||
},
|
||||
"unitSuite": {
|
||||
"path": "web/tests/unit/library-operation-identity.test.mjs",
|
||||
"sha256": "0e5b2c82d481180eb8eb22de16ad8cdef5e58fa7423c26011faaffbac788e547"
|
||||
}
|
||||
},
|
||||
"nextTask": "M12-03C"
|
||||
}
|
||||
202
tests/golden/M12-03C/desktop-append-report.json
Normal file
202
tests/golden/M12-03C/desktop-append-report.json
Normal file
@@ -0,0 +1,202 @@
|
||||
{
|
||||
"appendedGraph": {
|
||||
"edges": [
|
||||
{
|
||||
"from": "Object/M12 Append Object",
|
||||
"relation": "OBJECT_DATA",
|
||||
"to": "Mesh/M12 Append Mesh"
|
||||
},
|
||||
{
|
||||
"from": "Mesh/M12 Append Mesh",
|
||||
"relation": "MATERIAL_SLOT[0]",
|
||||
"to": "Material/M12 Append Material"
|
||||
},
|
||||
{
|
||||
"from": "Material/M12 Append Material",
|
||||
"relation": "NODE_IMAGE[M12 Append Image Node]",
|
||||
"to": "Image/M12 Append Image"
|
||||
}
|
||||
],
|
||||
"geometry": {
|
||||
"edges": 4,
|
||||
"loops": 4,
|
||||
"materialSlots": [
|
||||
"M12 Append Material"
|
||||
],
|
||||
"polygons": 1,
|
||||
"uvLayers": [
|
||||
"UVMap"
|
||||
],
|
||||
"vertices": 4
|
||||
},
|
||||
"ids": {
|
||||
"IMAGE": {
|
||||
"idType": "IMAGE",
|
||||
"isLibraryOverride": false,
|
||||
"library": null,
|
||||
"name": "M12 Append Image",
|
||||
"nameFull": "M12 Append Image"
|
||||
},
|
||||
"MATERIAL": {
|
||||
"idType": "MATERIAL",
|
||||
"isLibraryOverride": false,
|
||||
"library": null,
|
||||
"name": "M12 Append Material",
|
||||
"nameFull": "M12 Append Material"
|
||||
},
|
||||
"MESH": {
|
||||
"idType": "MESH",
|
||||
"isLibraryOverride": false,
|
||||
"library": null,
|
||||
"name": "M12 Append Mesh",
|
||||
"nameFull": "M12 Append Mesh"
|
||||
},
|
||||
"OBJECT": {
|
||||
"idType": "OBJECT",
|
||||
"isLibraryOverride": false,
|
||||
"library": null,
|
||||
"name": "M12 Append Object",
|
||||
"nameFull": "M12 Append Object"
|
||||
}
|
||||
},
|
||||
"image": {
|
||||
"channels": 4,
|
||||
"colorspace": "sRGB",
|
||||
"packed": true,
|
||||
"pixelFloat32Sha256": "6f0f8c231d65149e69e6ed12d370bcfa095ef90adc202065492ea8c8ef17e45a",
|
||||
"size": [
|
||||
2,
|
||||
2
|
||||
]
|
||||
},
|
||||
"root": {
|
||||
"idType": "OBJECT",
|
||||
"isLibraryOverride": false,
|
||||
"library": null,
|
||||
"name": "M12 Append Object",
|
||||
"nameFull": "M12 Append Object"
|
||||
},
|
||||
"sourceMarker": "M12-03C"
|
||||
},
|
||||
"blenderVersion": "5.2.0",
|
||||
"nextTask": "M12-03D",
|
||||
"operation": "APPEND",
|
||||
"schemaVersion": 1,
|
||||
"selectedRoots": [
|
||||
"Object/M12 Append Object"
|
||||
],
|
||||
"source": {
|
||||
"file": "m12_append_source.blend",
|
||||
"sha256": "5b60d02926efd588a6ca300ba31414cdf37dbc48786c17b383a70319057c0606"
|
||||
},
|
||||
"sourceGraph": {
|
||||
"edges": [
|
||||
{
|
||||
"from": "Object/M12 Append Object",
|
||||
"relation": "OBJECT_DATA",
|
||||
"to": "Mesh/M12 Append Mesh"
|
||||
},
|
||||
{
|
||||
"from": "Mesh/M12 Append Mesh",
|
||||
"relation": "MATERIAL_SLOT[0]",
|
||||
"to": "Material/M12 Append Material"
|
||||
},
|
||||
{
|
||||
"from": "Material/M12 Append Material",
|
||||
"relation": "NODE_IMAGE[M12 Append Image Node]",
|
||||
"to": "Image/M12 Append Image"
|
||||
}
|
||||
],
|
||||
"geometry": {
|
||||
"edges": 4,
|
||||
"loops": 4,
|
||||
"materialSlots": [
|
||||
"M12 Append Material"
|
||||
],
|
||||
"polygons": 1,
|
||||
"uvLayers": [
|
||||
"UVMap"
|
||||
],
|
||||
"vertices": 4
|
||||
},
|
||||
"ids": {
|
||||
"IMAGE": {
|
||||
"idType": "IMAGE",
|
||||
"isLibraryOverride": false,
|
||||
"library": null,
|
||||
"name": "M12 Append Image",
|
||||
"nameFull": "M12 Append Image"
|
||||
},
|
||||
"MATERIAL": {
|
||||
"idType": "MATERIAL",
|
||||
"isLibraryOverride": false,
|
||||
"library": null,
|
||||
"name": "M12 Append Material",
|
||||
"nameFull": "M12 Append Material"
|
||||
},
|
||||
"MESH": {
|
||||
"idType": "MESH",
|
||||
"isLibraryOverride": false,
|
||||
"library": null,
|
||||
"name": "M12 Append Mesh",
|
||||
"nameFull": "M12 Append Mesh"
|
||||
},
|
||||
"OBJECT": {
|
||||
"idType": "OBJECT",
|
||||
"isLibraryOverride": false,
|
||||
"library": null,
|
||||
"name": "M12 Append Object",
|
||||
"nameFull": "M12 Append Object"
|
||||
}
|
||||
},
|
||||
"image": {
|
||||
"channels": 4,
|
||||
"colorspace": "sRGB",
|
||||
"packed": true,
|
||||
"pixelFloat32Sha256": "6f0f8c231d65149e69e6ed12d370bcfa095ef90adc202065492ea8c8ef17e45a",
|
||||
"size": [
|
||||
2,
|
||||
2
|
||||
]
|
||||
},
|
||||
"root": {
|
||||
"idType": "OBJECT",
|
||||
"isLibraryOverride": false,
|
||||
"library": null,
|
||||
"name": "M12 Append Object",
|
||||
"nameFull": "M12 Append Object"
|
||||
},
|
||||
"sourceMarker": "M12-03C"
|
||||
},
|
||||
"stableMapping": [
|
||||
{
|
||||
"local": "Object/M12 Append Object",
|
||||
"owner": "LOCAL_MAIN",
|
||||
"readOnly": false,
|
||||
"source": "Object/M12 Append Object"
|
||||
},
|
||||
{
|
||||
"local": "Mesh/M12 Append Mesh",
|
||||
"owner": "LOCAL_MAIN",
|
||||
"readOnly": false,
|
||||
"source": "Mesh/M12 Append Mesh"
|
||||
},
|
||||
{
|
||||
"local": "Material/M12 Append Material",
|
||||
"owner": "LOCAL_MAIN",
|
||||
"readOnly": false,
|
||||
"source": "Material/M12 Append Material"
|
||||
},
|
||||
{
|
||||
"local": "Image/M12 Append Image",
|
||||
"owner": "LOCAL_MAIN",
|
||||
"readOnly": false,
|
||||
"source": "Image/M12 Append Image"
|
||||
}
|
||||
],
|
||||
"target": {
|
||||
"file": "m12_append_target.blend",
|
||||
"sha256": "5cde4927f47e33f0338de38184ce5ba971825fcefd1d8dc6feb48d41a6cdb60c"
|
||||
},
|
||||
"task": "M12-03C"
|
||||
}
|
||||
39
tests/golden/M12-03C/manifest.json
Normal file
39
tests/golden/M12-03C/manifest.json
Normal file
@@ -0,0 +1,39 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M12-03C",
|
||||
"parentTask": "M12-03",
|
||||
"enablingTask": true,
|
||||
"parityStateChange": false,
|
||||
"runtime": "BLENDER_5_2_DESKTOP",
|
||||
"operation": "APPEND",
|
||||
"selectedRoots": ["Object/M12 Append Object"],
|
||||
"dependencyTypes": ["OBJECT", "MESH", "MATERIAL", "IMAGE"],
|
||||
"containerDeterminism": "SESSION_BOUND_SEMANTIC_REPORT_EXACT",
|
||||
"artifacts": {
|
||||
"parentContract": {
|
||||
"path": "tests/golden/M12-03B/manifest.json",
|
||||
"sha256": "f388aedb9c0901932cf90c058f2f2b83259d9797cd6b144566a25e37a348c64b"
|
||||
},
|
||||
"generator": {
|
||||
"path": "tools/web/generate-library-append-fixture.py",
|
||||
"sha256": "b9d8e3bd24966b0d7d419382d7ef0b35ae8def9ee2c2236dfd3ad1a90aebe66f"
|
||||
},
|
||||
"checker": {
|
||||
"path": "tools/web/check-library-append-fixture.mjs",
|
||||
"sha256": "6f8cc0d51be19423cf6fb7203c3c16f8d27e0fbb3b5b357bad5dec6c5ceb432d"
|
||||
},
|
||||
"sourceBlend": {
|
||||
"path": "tests/files/web/m12_library_append_v1/m12_append_source.blend",
|
||||
"sha256": "5b60d02926efd588a6ca300ba31414cdf37dbc48786c17b383a70319057c0606"
|
||||
},
|
||||
"targetBlend": {
|
||||
"path": "tests/files/web/m12_library_append_v1/m12_append_target.blend",
|
||||
"sha256": "5cde4927f47e33f0338de38184ce5ba971825fcefd1d8dc6feb48d41a6cdb60c"
|
||||
},
|
||||
"desktopReport": {
|
||||
"path": "tests/golden/M12-03C/desktop-append-report.json",
|
||||
"sha256": "b1d7b8b9e832d18d69081f63981062800e0f00f0c9aec025b18274510ed76e2a"
|
||||
}
|
||||
},
|
||||
"nextTask": "M12-03D"
|
||||
}
|
||||
Reference in New Issue
Block a user