From 3d50dde0a2392638fcc7b99d7829c11d9e9214a5 Mon Sep 17 00:00:00 2001 From: Daco Harkes Date: Wed, 23 Apr 2025 09:45:59 +0200 Subject: [PATCH] [native_assets_cli] Cleanup JSON: `assetsForLinking` --- .../shared_definitions.generated.schema.json | 9 ---- .../test/data/build_output_macos.json | 14 ----- pkgs/code_assets/test/schema/schema_test.dart | 1 - .../shared_definitions.generated.schema.json | 9 ---- pkgs/data_assets/test/data/build_output.json | 20 ------- pkgs/data_assets/test/schema/schema_test.dart | 1 - .../hook/shared_definitions.schema.json | 5 -- .../schema/sdk/shared_definitions.schema.json | 11 +--- .../shared/shared_definitions.schema.json | 9 ---- pkgs/hooks/test/data/build_output.json | 17 ------ pkgs/hooks/test/schema/helpers.dart | 2 - pkgs/hooks/test/schema/schema_test.dart | 1 - pkgs/hooks/tool/generate_schemas.dart | 9 ---- pkgs/hooks/tool/generate_syntax.dart | 1 - pkgs/native_assets_cli/lib/src/config.dart | 8 +-- .../lib/src/hooks/syntax.g.dart | 53 ------------------- .../native_assets_cli/lib/src/validation.dart | 2 +- .../test/build_output_test.dart | 9 ---- 18 files changed, 4 insertions(+), 177 deletions(-) diff --git a/pkgs/code_assets/doc/schema/shared/shared_definitions.generated.schema.json b/pkgs/code_assets/doc/schema/shared/shared_definitions.generated.schema.json index 9bb0461d0..7484b53a8 100644 --- a/pkgs/code_assets/doc/schema/shared/shared_definitions.generated.schema.json +++ b/pkgs/code_assets/doc/schema/shared/shared_definitions.generated.schema.json @@ -36,15 +36,6 @@ }, { "properties": { - "assetsForLinking": { - "type": "object", - "additionalProperties": { - "type": "array", - "items": { - "$ref": "shared_definitions.schema.json#/definitions/Asset" - } - } - }, "assets_for_build": { "type": "array", "items": { diff --git a/pkgs/code_assets/test/data/build_output_macos.json b/pkgs/code_assets/test/data/build_output_macos.json index 36f5e3058..3df631fe7 100644 --- a/pkgs/code_assets/test/data/build_output_macos.json +++ b/pkgs/code_assets/test/data/build_output_macos.json @@ -50,20 +50,6 @@ "type": "code_assets/code" } ], - "assetsForLinking": { - "package_with_linker": [ - { - "encoding": { - "file": "/private/var/folders/2y/mngq9h194yzglt4kzttzfq6800klzg/T/iv6i0d/native_add/.dart_tool/native_assets_builder/native_add/c6b312c90c95d2d98ffb6760a738fb36/out/libnative_add.a", - "id": "package:native_add/src/native_add_bindings_generated.dart", - "link_mode": { - "type": "static" - } - }, - "type": "code_assets/code" - } - ] - }, "assets_for_build": [ { "encoding": { diff --git a/pkgs/code_assets/test/schema/schema_test.dart b/pkgs/code_assets/test/schema/schema_test.dart index 84351f36d..3b0af2606 100644 --- a/pkgs/code_assets/test/schema/schema_test.dart +++ b/pkgs/code_assets/test/schema/schema_test.dart @@ -122,7 +122,6 @@ FieldsFunction _codeFields(AllTestData allTestData) { for (final (field, expect) in codeAssetFields) for (final path in [ ['assets_for_build'], - ['assetsForLinking', 'package_with_linker'], ['assets_for_linking', 'package_with_linker'], ]) ([...path, 0, 'encoding', ...field], expect), diff --git a/pkgs/data_assets/doc/schema/shared/shared_definitions.generated.schema.json b/pkgs/data_assets/doc/schema/shared/shared_definitions.generated.schema.json index 46fc0ef6b..3a55622af 100644 --- a/pkgs/data_assets/doc/schema/shared/shared_definitions.generated.schema.json +++ b/pkgs/data_assets/doc/schema/shared/shared_definitions.generated.schema.json @@ -36,15 +36,6 @@ }, { "properties": { - "assetsForLinking": { - "type": "object", - "additionalProperties": { - "type": "array", - "items": { - "$ref": "shared_definitions.schema.json#/definitions/Asset" - } - } - }, "assets_for_build": { "type": "array", "items": { diff --git a/pkgs/data_assets/test/data/build_output.json b/pkgs/data_assets/test/data/build_output.json index 6722db227..4682169d3 100644 --- a/pkgs/data_assets/test/data/build_output.json +++ b/pkgs/data_assets/test/data/build_output.json @@ -18,26 +18,6 @@ "type": "data_assets/data" } ], - "assetsForLinking": { - "package_with_linker": [ - { - "encoding": { - "file": "/private/var/folders/2y/mngq9h194yzglt4kzttzfq6800klzg/T/0s5bKi/simple_link/assets/data_0.json", - "name": "assets/data_0.json", - "package": "simple_link" - }, - "type": "data_assets/data" - }, - { - "encoding": { - "file": "/private/var/folders/2y/mngq9h194yzglt4kzttzfq6800klzg/T/0s5bKi/simple_link/assets/data_1.json", - "name": "assets/data_1.json", - "package": "simple_link" - }, - "type": "data_assets/data" - } - ] - }, "assets_for_build": [ { "encoding": { diff --git a/pkgs/data_assets/test/schema/schema_test.dart b/pkgs/data_assets/test/schema/schema_test.dart index 5a1b2a78b..8e186d976 100644 --- a/pkgs/data_assets/test/schema/schema_test.dart +++ b/pkgs/data_assets/test/schema/schema_test.dart @@ -54,7 +54,6 @@ List<(List, void Function(ValidationResults result))> _dataFields({ for (final field in _dataAssetFields) for (final path in [ ['assets_for_build'], - ['assetsForLinking', 'package_with_linker'], ['assets_for_linking', 'package_with_linker'], ]) ([...path, 0, 'encoding', field], expectRequiredFieldMissing), diff --git a/pkgs/hooks/doc/schema/hook/shared_definitions.schema.json b/pkgs/hooks/doc/schema/hook/shared_definitions.schema.json index f4f73cfc6..5f27b7bc6 100644 --- a/pkgs/hooks/doc/schema/hook/shared_definitions.schema.json +++ b/pkgs/hooks/doc/schema/hook/shared_definitions.schema.json @@ -5,11 +5,6 @@ "BuildInput": {}, "BuildOutput": { "$ref": "../shared/shared_definitions.schema.json#/definitions/BuildOutput", - "properties": { - "assets_for_linking": { - "$comment": "Older SDKs will only read 'assetsForLinking', so it must be emitted as well." - } - }, "unevaluatedProperties": false }, "HookInput": {}, diff --git a/pkgs/hooks/doc/schema/sdk/shared_definitions.schema.json b/pkgs/hooks/doc/schema/sdk/shared_definitions.schema.json index cecabae5f..3f4d0e4b4 100644 --- a/pkgs/hooks/doc/schema/sdk/shared_definitions.schema.json +++ b/pkgs/hooks/doc/schema/sdk/shared_definitions.schema.json @@ -6,16 +6,7 @@ "$ref": "../shared/shared_definitions.schema.json#/definitions/BuildInput", "unevaluatedProperties": false }, - "BuildOutput": { - "properties": { - "assetsForLinking": { - "deprecated": true - }, - "assets_for_linking": { - "$comment": "Older hooks will still emit 'assetsForLinking', so it must be read." - } - } - }, + "BuildOutput": {}, "HookInput": {}, "HookOutput": {}, "LinkInput": { diff --git a/pkgs/hooks/doc/schema/shared/shared_definitions.schema.json b/pkgs/hooks/doc/schema/shared/shared_definitions.schema.json index 68a992377..4b3b5fd67 100644 --- a/pkgs/hooks/doc/schema/shared/shared_definitions.schema.json +++ b/pkgs/hooks/doc/schema/shared/shared_definitions.schema.json @@ -94,15 +94,6 @@ "BuildOutput": { "type": "object", "properties": { - "assetsForLinking": { - "type": "object", - "additionalProperties": { - "type": "array", - "items": { - "$ref": "#/definitions/Asset" - } - } - }, "assets_for_build": { "type": "array", "items": { diff --git a/pkgs/hooks/test/data/build_output.json b/pkgs/hooks/test/data/build_output.json index fdd963206..36d9356f7 100644 --- a/pkgs/hooks/test/data/build_output.json +++ b/pkgs/hooks/test/data/build_output.json @@ -14,23 +14,6 @@ "type": "some_other_asset_type" } ], - "assetsForLinking": { - "package_with_linker": [ - { - "encoding": { - "a_key": "some_value" - }, - "type": "some_asset_type" - }, - { - "encoding": { - "key": "foo", - "value": "bar" - }, - "type": "hooks/metadata" - } - ] - }, "assets_for_build": [ { "encoding": { diff --git a/pkgs/hooks/test/schema/helpers.dart b/pkgs/hooks/test/schema/helpers.dart index 856711499..bc97e7841 100644 --- a/pkgs/hooks/test/schema/helpers.dart +++ b/pkgs/hooks/test/schema/helpers.dart @@ -316,7 +316,6 @@ FieldsReturn _hookFields({ (['metadata'], expectOptionalFieldMissing), for (final path in [ ['assets_for_build'], - ['assetsForLinking', 'package_with_linker'], ['assets_for_linking', 'package_with_linker'], ]) ...[ ([...path], expectOptionalFieldMissing), @@ -330,7 +329,6 @@ FieldsReturn _hookFields({ if (inputOrOutput == InputOrOutput.output || hook == Hook.link) ['assets'], if (inputOrOutput == InputOrOutput.output && hook == Hook.build) ...[ ['assets_for_build'], - ['assetsForLinking', 'package_with_linker'], ['assets_for_linking', 'package_with_linker'], ], ]) ...[ diff --git a/pkgs/hooks/test/schema/schema_test.dart b/pkgs/hooks/test/schema/schema_test.dart index 51a0cf2a2..cc0c1e111 100644 --- a/pkgs/hooks/test/schema/schema_test.dart +++ b/pkgs/hooks/test/schema/schema_test.dart @@ -42,7 +42,6 @@ _metadataAssetFields({ if (inputOrOutput == InputOrOutput.input && hook == Hook.link) ['assets'], if (inputOrOutput == InputOrOutput.output && hook == Hook.build) ...[ ['assets_for_build'], - ['assetsForLinking', 'package_with_linker'], ['assets_for_linking', 'package_with_linker'], ], ]) ...[ diff --git a/pkgs/hooks/tool/generate_schemas.dart b/pkgs/hooks/tool/generate_schemas.dart index e00cea7ec..c018bae3a 100644 --- a/pkgs/hooks/tool/generate_schemas.dart +++ b/pkgs/hooks/tool/generate_schemas.dart @@ -34,15 +34,6 @@ void generateSharedDefinitions() { }; const buildOutputAssetOverride = { 'properties': { - 'assetsForLinking': { - 'type': 'object', - 'additionalProperties': { - 'type': 'array', - 'items': { - r'$ref': 'shared_definitions.schema.json#/definitions/Asset', - }, - }, - }, 'assets_for_linking': { 'type': 'object', 'additionalProperties': { diff --git a/pkgs/hooks/tool/generate_syntax.dart b/pkgs/hooks/tool/generate_syntax.dart index 88ee63605..4b5e02095 100644 --- a/pkgs/hooks/tool/generate_syntax.dart +++ b/pkgs/hooks/tool/generate_syntax.dart @@ -35,7 +35,6 @@ void main(List args) { 'Macos': 'MacOS', 'prefer-dynamic': 'preferDynamicOld', 'prefer-static': 'preferStaticOld', - 'assetsForLinking': 'assetsForLinkingOld', 'CodeAssetsCodeAsset': 'NativeCodeAssetNew', 'DataAssetsDataAsset': 'DataAssetNew', }, diff --git a/pkgs/native_assets_cli/lib/src/config.dart b/pkgs/native_assets_cli/lib/src/config.dart index de1b2c873..54c70ab23 100644 --- a/pkgs/native_assets_cli/lib/src/config.dart +++ b/pkgs/native_assets_cli/lib/src/config.dart @@ -441,8 +441,7 @@ class BuildOutput extends HookOutput { /// specified in the key, which can decide if they are bundled or not. Map> get _encodedAssetsForLinking => { for (final MapEntry(:key, :value) - in (_syntax.assetsForLinking ?? _syntax.assetsForLinkingOld ?? {}) - .entries) + in (_syntax.assetsForLinking ?? {}).entries) key: _parseAssets(value), }; @@ -619,7 +618,6 @@ extension type EncodedAssetBuildOutputBuilder._(BuildOutputBuilder _output) { syntax.Asset.fromJson(asset.toJson()), ); _syntax.assetsForLinking = assetsForLinking; - _syntax.assetsForLinkingOld = assetsForLinking; } } @@ -657,14 +655,12 @@ extension type EncodedAssetBuildOutputBuilder._(BuildOutputBuilder _output) { _syntax.assetsForBuild = list; case ToLinkHook(): final linkInPackage = routing.packageName; - final assetsForLinking = - _syntax.assetsForLinking ?? _syntax.assetsForLinkingOld ?? {}; + final assetsForLinking = _syntax.assetsForLinking ?? {}; final list = assetsForLinking[linkInPackage] ??= []; for (final asset in assets) { list.add(syntax.Asset.fromJson(asset.toJson())); } _syntax.assetsForLinking = assetsForLinking; - _syntax.assetsForLinkingOld = assetsForLinking; } } diff --git a/pkgs/native_assets_cli/lib/src/hooks/syntax.g.dart b/pkgs/native_assets_cli/lib/src/hooks/syntax.g.dart index aca96e7ad..a3f627569 100644 --- a/pkgs/native_assets_cli/lib/src/hooks/syntax.g.dart +++ b/pkgs/native_assets_cli/lib/src/hooks/syntax.g.dart @@ -233,12 +233,10 @@ class BuildOutput extends HookOutput { required super.assets, required List? assetsForBuild, required Map>? assetsForLinking, - required Map>? assetsForLinkingOld, required super.dependencies, required JsonObject? metadata, required super.timestamp, }) : super() { - this.assetsForLinkingOld = assetsForLinkingOld; this.assetsForBuild = assetsForBuild; this.assetsForLinking = assetsForLinking; this.metadata = metadata; @@ -248,66 +246,16 @@ class BuildOutput extends HookOutput { /// Setup all fields for [BuildOutput] that are not in /// [HookOutput]. void setup({ - required Map>? assetsForLinkingOld, required List? assetsForBuild, required Map>? assetsForLinking, required JsonObject? metadata, }) { - this.assetsForLinkingOld = assetsForLinkingOld; this.assetsForBuild = assetsForBuild; this.assetsForLinking = assetsForLinking; this.metadata = metadata; json.sortOnKey(); } - Map>? get assetsForLinkingOld { - final jsonValue = _reader.optionalMap('assetsForLinking'); - if (jsonValue == null) { - return null; - } - final result = >{}; - for (final MapEntry(:key, :value) in jsonValue.entries) { - result[key] = [ - for (final (index, item) in (value as List).indexed) - Asset.fromJson( - item as Map, - path: [...path, key, index], - ), - ]; - } - return result; - } - - set assetsForLinkingOld(Map>? value) { - if (value == null) { - json.remove('assetsForLinking'); - } else { - json['assetsForLinking'] = { - for (final MapEntry(:key, :value) in value.entries) - key: [for (final item in value) item.json], - }; - } - json.sortOnKey(); - } - - List _validateAssetsForLinkingOld() { - final mapErrors = _reader.validateOptionalMap('assetsForLinking'); - if (mapErrors.isNotEmpty) { - return mapErrors; - } - final jsonValue = _reader.optionalMap('assetsForLinking'); - if (jsonValue == null) { - return []; - } - final result = []; - for (final list in assetsForLinkingOld!.values) { - for (final element in list) { - result.addAll(element.validate()); - } - } - return result; - } - List? get assetsForBuild { final jsonValue = _reader.optionalList('assets_for_build'); if (jsonValue == null) return null; @@ -413,7 +361,6 @@ class BuildOutput extends HookOutput { @override List validate() => [ ...super.validate(), - ..._validateAssetsForLinkingOld(), ..._validateAssetsForBuild(), ..._validateAssetsForLinking(), ..._validateMetadata(), diff --git a/pkgs/native_assets_cli/lib/src/validation.dart b/pkgs/native_assets_cli/lib/src/validation.dart index 398d355ae..c82cb68f4 100644 --- a/pkgs/native_assets_cli/lib/src/validation.dart +++ b/pkgs/native_assets_cli/lib/src/validation.dart @@ -138,7 +138,7 @@ ValidationErrors _validateAssetsForLinking( if (!input.config.linkingEnabled) { if (output.assets.encodedAssetsForLinking.isNotEmpty) { const error = - 'BuildOutput.assetsForLinking is not empty while ' + 'BuildOutput.assets_for_linking is not empty while ' 'BuildInput.config.linkingEnabled is false'; errors.add(error); } diff --git a/pkgs/native_assets_cli/test/build_output_test.dart b/pkgs/native_assets_cli/test/build_output_test.dart index 71e4d710f..05f254435 100644 --- a/pkgs/native_assets_cli/test/build_output_test.dart +++ b/pkgs/native_assets_cli/test/build_output_test.dart @@ -85,15 +85,6 @@ void main() { 'type': 'my-asset-type', }, ], - 'assetsForLinking': { - 'package:linker1': [ - { - 'encoding': {'a-1': 'v-1'}, - 'type': 'my-asset-type', - }, - ], - 'package:linker2': [], - }, 'assets_for_linking': { 'package:linker1': [ {