From 5807c4ef93876b2f8e29c62911ccb84ac72b0e8c Mon Sep 17 00:00:00 2001 From: Matthias Osswald Date: Thu, 21 Mar 2024 08:35:29 +0100 Subject: [PATCH 1/3] fix: Update list of deprecated libs - Sort entries - Remove non-existent sap.dragonfly - Fix typo for sap.landvisz - Add missing sap.sac.grid --- src/linter/json/ManifestLinter.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/linter/json/ManifestLinter.ts b/src/linter/json/ManifestLinter.ts index b93104ff2..4026bf54f 100644 --- a/src/linter/json/ManifestLinter.ts +++ b/src/linter/json/ManifestLinter.ts @@ -20,19 +20,19 @@ interface locType { const deprecatedLibraries: string[] = [ "sap.ca.scfld.md", "sap.ca.ui", - "sap.dragonfly", - "sap.landviz", + "sap.landvisz", // Removed in 1.120 "sap.makit", "sap.me", + "sap.sac.grid", // Removed in 1.114 "sap.ui.commons", "sap.ui.suite", "sap.ui.ux3", "sap.ui.vtm", "sap.uiext.inbox", "sap.webanalytics.core", - "sap.zen.dsh", "sap.zen.commons", "sap.zen.crosstab", + "sap.zen.dsh", ]; const deprecatedComponents: string[] = [ From 4d4ef6ace251222d769d623ca722bf8642e38779 Mon Sep 17 00:00:00 2001 From: Max Reichmann Date: Thu, 21 Mar 2024 09:14:22 +0100 Subject: [PATCH 2/3] test: Update list of deprecated libs in manifest.json --- .../rules/NoDeprecatedApi/manifest.json | 8 ++++---- .../rules/snapshots/NoDeprecatedApi.ts.md | 14 +++++++------- .../rules/snapshots/NoDeprecatedApi.ts.snap | Bin 5730 -> 5732 bytes 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/test/fixtures/linter/rules/NoDeprecatedApi/manifest.json b/test/fixtures/linter/rules/NoDeprecatedApi/manifest.json index d948cbe38..b87d7d845 100644 --- a/test/fixtures/linter/rules/NoDeprecatedApi/manifest.json +++ b/test/fixtures/linter/rules/NoDeprecatedApi/manifest.json @@ -46,19 +46,19 @@ "sap.m": {}, "sap.ca.scfld.md": {}, "sap.ca.ui": {}, - "sap.dragonfly": {}, - "sap.landviz": {}, + "sap.landvisz": {}, "sap.makit": {}, "sap.me": {}, + "sap.sac.grid": {}, "sap.ui.commons": {}, "sap.ui.suite": {}, "sap.ui.ux3": {}, "sap.ui.vtm": {}, "sap.uiext.inbox": {}, "sap.webanalytics.core": {}, - "sap.zen.dsh": {}, "sap.zen.commons": {}, - "sap.zen.crosstab": {} + "sap.zen.crosstab": {}, + "sap.zen.dsh": {} }, "components": { "sap.zen.dsh.fioriwrapper": {} diff --git a/test/lib/linter/rules/snapshots/NoDeprecatedApi.ts.md b/test/lib/linter/rules/snapshots/NoDeprecatedApi.ts.md index b8dc00165..747097a28 100644 --- a/test/lib/linter/rules/snapshots/NoDeprecatedApi.ts.md +++ b/test/lib/linter/rules/snapshots/NoDeprecatedApi.ts.md @@ -819,7 +819,7 @@ Generated by [AVA](https://avajs.dev). column: 17, fatal: undefined, line: 49, - message: 'Use of deprecated library \'sap.dragonfly\'', + message: 'Use of deprecated library \'sap.landvisz\'', ruleId: 'ui5-linter-no-deprecated-library', severity: 2, }, @@ -827,7 +827,7 @@ Generated by [AVA](https://avajs.dev). column: 17, fatal: undefined, line: 50, - message: 'Use of deprecated library \'sap.landviz\'', + message: 'Use of deprecated library \'sap.makit\'', ruleId: 'ui5-linter-no-deprecated-library', severity: 2, }, @@ -835,7 +835,7 @@ Generated by [AVA](https://avajs.dev). column: 17, fatal: undefined, line: 51, - message: 'Use of deprecated library \'sap.makit\'', + message: 'Use of deprecated library \'sap.me\'', ruleId: 'ui5-linter-no-deprecated-library', severity: 2, }, @@ -843,7 +843,7 @@ Generated by [AVA](https://avajs.dev). column: 17, fatal: undefined, line: 52, - message: 'Use of deprecated library \'sap.me\'', + message: 'Use of deprecated library \'sap.sac.grid\'', ruleId: 'ui5-linter-no-deprecated-library', severity: 2, }, @@ -899,7 +899,7 @@ Generated by [AVA](https://avajs.dev). column: 17, fatal: undefined, line: 59, - message: 'Use of deprecated library \'sap.zen.dsh\'', + message: 'Use of deprecated library \'sap.zen.commons\'', ruleId: 'ui5-linter-no-deprecated-library', severity: 2, }, @@ -907,7 +907,7 @@ Generated by [AVA](https://avajs.dev). column: 17, fatal: undefined, line: 60, - message: 'Use of deprecated library \'sap.zen.commons\'', + message: 'Use of deprecated library \'sap.zen.crosstab\'', ruleId: 'ui5-linter-no-deprecated-library', severity: 2, }, @@ -915,7 +915,7 @@ Generated by [AVA](https://avajs.dev). column: 17, fatal: undefined, line: 61, - message: 'Use of deprecated library \'sap.zen.crosstab\'', + message: 'Use of deprecated library \'sap.zen.dsh\'', ruleId: 'ui5-linter-no-deprecated-library', severity: 2, }, diff --git a/test/lib/linter/rules/snapshots/NoDeprecatedApi.ts.snap b/test/lib/linter/rules/snapshots/NoDeprecatedApi.ts.snap index 0051e45c0d10f89d3fa6a50c0f4e5747a1edd6f7..e9ab931c3cbd5077a4002c2ce9f3bfb9b86559bc 100644 GIT binary patch literal 5732 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 literal 5730 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 From 9c822e232df77c8c8cfde140e4eef7b057da1074 Mon Sep 17 00:00:00 2001 From: Matthias Osswald Date: Thu, 21 Mar 2024 16:56:48 +0100 Subject: [PATCH 3/3] refactor: Add sap.fe libs --- src/linter/json/ManifestLinter.ts | 3 + .../rules/NoDeprecatedApi/manifest.json | 5 +- .../rules/snapshots/NoDeprecatedApi.ts.md | 60 ++++++++++++------ .../rules/snapshots/NoDeprecatedApi.ts.snap | Bin 5732 -> 5923 bytes 4 files changed, 49 insertions(+), 19 deletions(-) diff --git a/src/linter/json/ManifestLinter.ts b/src/linter/json/ManifestLinter.ts index 4026bf54f..a0cab52bb 100644 --- a/src/linter/json/ManifestLinter.ts +++ b/src/linter/json/ManifestLinter.ts @@ -20,6 +20,9 @@ interface locType { const deprecatedLibraries: string[] = [ "sap.ca.scfld.md", "sap.ca.ui", + "sap.fe.common", // Internal, removed in 1.110 + "sap.fe.plugins", // Internal, removed in 1.102 + "sap.fe.semantics", // Internal, removed in 1.104 "sap.landvisz", // Removed in 1.120 "sap.makit", "sap.me", diff --git a/test/fixtures/linter/rules/NoDeprecatedApi/manifest.json b/test/fixtures/linter/rules/NoDeprecatedApi/manifest.json index b87d7d845..3236d55b2 100644 --- a/test/fixtures/linter/rules/NoDeprecatedApi/manifest.json +++ b/test/fixtures/linter/rules/NoDeprecatedApi/manifest.json @@ -43,9 +43,12 @@ "minUI5Version": "1.119.0", "libs": { "sap.ui.core": {}, - "sap.m": {}, + "sap.m": {}, "sap.ca.scfld.md": {}, "sap.ca.ui": {}, + "sap.fe.common": {}, + "sap.fe.plugins": {}, + "sap.fe.semantics": {}, "sap.landvisz": {}, "sap.makit": {}, "sap.me": {}, diff --git a/test/lib/linter/rules/snapshots/NoDeprecatedApi.ts.md b/test/lib/linter/rules/snapshots/NoDeprecatedApi.ts.md index 747097a28..12c97140b 100644 --- a/test/lib/linter/rules/snapshots/NoDeprecatedApi.ts.md +++ b/test/lib/linter/rules/snapshots/NoDeprecatedApi.ts.md @@ -795,7 +795,7 @@ Generated by [AVA](https://avajs.dev). [ { coverageInfo: [], - errorCount: 20, + errorCount: 23, fatalErrorCount: 0, filePath: 'manifest.json', messages: [ @@ -819,7 +819,7 @@ Generated by [AVA](https://avajs.dev). column: 17, fatal: undefined, line: 49, - message: 'Use of deprecated library \'sap.landvisz\'', + message: 'Use of deprecated library \'sap.fe.common\'', ruleId: 'ui5-linter-no-deprecated-library', severity: 2, }, @@ -827,7 +827,7 @@ Generated by [AVA](https://avajs.dev). column: 17, fatal: undefined, line: 50, - message: 'Use of deprecated library \'sap.makit\'', + message: 'Use of deprecated library \'sap.fe.plugins\'', ruleId: 'ui5-linter-no-deprecated-library', severity: 2, }, @@ -835,7 +835,7 @@ Generated by [AVA](https://avajs.dev). column: 17, fatal: undefined, line: 51, - message: 'Use of deprecated library \'sap.me\'', + message: 'Use of deprecated library \'sap.fe.semantics\'', ruleId: 'ui5-linter-no-deprecated-library', severity: 2, }, @@ -843,7 +843,7 @@ Generated by [AVA](https://avajs.dev). column: 17, fatal: undefined, line: 52, - message: 'Use of deprecated library \'sap.sac.grid\'', + message: 'Use of deprecated library \'sap.landvisz\'', ruleId: 'ui5-linter-no-deprecated-library', severity: 2, }, @@ -851,7 +851,7 @@ Generated by [AVA](https://avajs.dev). column: 17, fatal: undefined, line: 53, - message: 'Use of deprecated library \'sap.ui.commons\'', + message: 'Use of deprecated library \'sap.makit\'', ruleId: 'ui5-linter-no-deprecated-library', severity: 2, }, @@ -859,7 +859,7 @@ Generated by [AVA](https://avajs.dev). column: 17, fatal: undefined, line: 54, - message: 'Use of deprecated library \'sap.ui.suite\'', + message: 'Use of deprecated library \'sap.me\'', ruleId: 'ui5-linter-no-deprecated-library', severity: 2, }, @@ -867,7 +867,7 @@ Generated by [AVA](https://avajs.dev). column: 17, fatal: undefined, line: 55, - message: 'Use of deprecated library \'sap.ui.ux3\'', + message: 'Use of deprecated library \'sap.sac.grid\'', ruleId: 'ui5-linter-no-deprecated-library', severity: 2, }, @@ -875,7 +875,7 @@ Generated by [AVA](https://avajs.dev). column: 17, fatal: undefined, line: 56, - message: 'Use of deprecated library \'sap.ui.vtm\'', + message: 'Use of deprecated library \'sap.ui.commons\'', ruleId: 'ui5-linter-no-deprecated-library', severity: 2, }, @@ -883,7 +883,7 @@ Generated by [AVA](https://avajs.dev). column: 17, fatal: undefined, line: 57, - message: 'Use of deprecated library \'sap.uiext.inbox\'', + message: 'Use of deprecated library \'sap.ui.suite\'', ruleId: 'ui5-linter-no-deprecated-library', severity: 2, }, @@ -891,7 +891,7 @@ Generated by [AVA](https://avajs.dev). column: 17, fatal: undefined, line: 58, - message: 'Use of deprecated library \'sap.webanalytics.core\'', + message: 'Use of deprecated library \'sap.ui.ux3\'', ruleId: 'ui5-linter-no-deprecated-library', severity: 2, }, @@ -899,7 +899,7 @@ Generated by [AVA](https://avajs.dev). column: 17, fatal: undefined, line: 59, - message: 'Use of deprecated library \'sap.zen.commons\'', + message: 'Use of deprecated library \'sap.ui.vtm\'', ruleId: 'ui5-linter-no-deprecated-library', severity: 2, }, @@ -907,7 +907,7 @@ Generated by [AVA](https://avajs.dev). column: 17, fatal: undefined, line: 60, - message: 'Use of deprecated library \'sap.zen.crosstab\'', + message: 'Use of deprecated library \'sap.uiext.inbox\'', ruleId: 'ui5-linter-no-deprecated-library', severity: 2, }, @@ -915,7 +915,23 @@ Generated by [AVA](https://avajs.dev). column: 17, fatal: undefined, line: 61, - message: 'Use of deprecated library \'sap.zen.dsh\'', + message: 'Use of deprecated library \'sap.webanalytics.core\'', + ruleId: 'ui5-linter-no-deprecated-library', + severity: 2, + }, + { + column: 17, + fatal: undefined, + line: 62, + message: 'Use of deprecated library \'sap.zen.commons\'', + ruleId: 'ui5-linter-no-deprecated-library', + severity: 2, + }, + { + column: 17, + fatal: undefined, + line: 63, + message: 'Use of deprecated library \'sap.zen.crosstab\'', ruleId: 'ui5-linter-no-deprecated-library', severity: 2, }, @@ -923,6 +939,14 @@ Generated by [AVA](https://avajs.dev). column: 17, fatal: undefined, line: 64, + message: 'Use of deprecated library \'sap.zen.dsh\'', + ruleId: 'ui5-linter-no-deprecated-library', + severity: 2, + }, + { + column: 17, + fatal: undefined, + line: 67, message: 'Use of deprecated component \'sap.zen.dsh.fioriwrapper\'', ruleId: 'ui5-linter-no-deprecated-component', severity: 2, @@ -930,7 +954,7 @@ Generated by [AVA](https://avajs.dev). { column: 13, fatal: undefined, - line: 76, + line: 79, message: 'Use of deprecated property \'sap.ui5/resources/js\'', ruleId: 'ui5-linter-no-deprecated-api', severity: 2, @@ -938,7 +962,7 @@ Generated by [AVA](https://avajs.dev). { column: 21, fatal: undefined, - line: 89, + line: 92, message: 'Use of deprecated property \'sap.ui5/models/odata-v4/settings/synchronizationMode\' of sap.ui.model.odata.v4.ODataModel', ruleId: 'ui5-linter-no-deprecated-api', severity: 2, @@ -946,7 +970,7 @@ Generated by [AVA](https://avajs.dev). { column: 21, fatal: undefined, - line: 95, + line: 98, message: 'Use of deprecated property \'sap.ui5/models/odata-v4-via-dataSource/settings/synchronizationMode\' of sap.ui.model.odata.v4.ODataModel', ruleId: 'ui5-linter-no-deprecated-api', severity: 2, @@ -954,7 +978,7 @@ Generated by [AVA](https://avajs.dev). { column: 17, fatal: undefined, - line: 99, + line: 102, message: 'Use of deprecated model type \'sap.ui5/models/odata/type="sap.ui.model.odata.ODataModel"\'', ruleId: 'ui5-linter-no-deprecated-api', severity: 2, diff --git a/test/lib/linter/rules/snapshots/NoDeprecatedApi.ts.snap b/test/lib/linter/rules/snapshots/NoDeprecatedApi.ts.snap index e9ab931c3cbd5077a4002c2ce9f3bfb9b86559bc..212108067fda9b3c8de9df2a754d62632b21e375 100644 GIT binary patch literal 5923 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