From 4df8cdd2d34a911c1f0e37ba48a8fd1c8cfedd91 Mon Sep 17 00:00:00 2001 From: cable Date: Thu, 10 Oct 2024 14:21:38 -0700 Subject: [PATCH 1/3] fix: diff-gen - deprecation in sets not being detected --- .../src/lib/deprecated-token-detection.js | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/tools/diff-generator/src/lib/deprecated-token-detection.js b/tools/diff-generator/src/lib/deprecated-token-detection.js index a970b38c..5b2f061f 100644 --- a/tools/diff-generator/src/lib/deprecated-token-detection.js +++ b/tools/diff-generator/src/lib/deprecated-token-detection.js @@ -26,7 +26,7 @@ export default function detectDeprecatedTokens(renamedTokens, changes) { const possibleMistakenRevert = { ...changes.deleted }; Object.keys(changes.added).forEach((token) => { if ( - (token !== undefined && !deprecatedTokens[token].deprecated) || + (token !== undefined && !isDeprecated(deprecatedTokens[token])) || renamedTokens[token] !== undefined ) { delete deprecatedTokens[token]; @@ -42,3 +42,19 @@ export default function detectDeprecatedTokens(renamedTokens, changes) { result.reverted = possibleMistakenRevert; return result; } + +function isDeprecated(tokenObj) { + if (typeof tokenObj !== "object") { + return false; + } else if (tokenObj.deprecated) { + return true; + } else { + let result = false; + + Object.keys(tokenObj).forEach((property) => { + result = result || isDeprecated(tokenObj[property]); + }); + + return result; + } +} From 44733e2f4bdee0b5aec2c0428201b38f4c2ea498 Mon Sep 17 00:00:00 2001 From: cable Date: Thu, 10 Oct 2024 15:33:49 -0700 Subject: [PATCH 2/3] fix: diff-gen - not detecting un-deprecated tokens --- .../src/lib/deprecated-token-detection.js | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/tools/diff-generator/src/lib/deprecated-token-detection.js b/tools/diff-generator/src/lib/deprecated-token-detection.js index 5b2f061f..c1cd7ca5 100644 --- a/tools/diff-generator/src/lib/deprecated-token-detection.js +++ b/tools/diff-generator/src/lib/deprecated-token-detection.js @@ -34,8 +34,10 @@ export default function detectDeprecatedTokens(renamedTokens, changes) { }); Object.keys(changes.deleted).forEach((token) => { const t = possibleMistakenRevert[token]; // a token marked as deleted - if (t === undefined || (typeof t !== "string" && !("deprecated" in t))) { + if (t === undefined || !wasUndeprecated(t)) { delete possibleMistakenRevert[token]; + } else { + delete changes.deleted[token]; } }); result.deprecated = deprecatedTokens; @@ -58,3 +60,19 @@ function isDeprecated(tokenObj) { return result; } } + +function wasUndeprecated(tokenObj) { + if (typeof tokenObj !== "object") { + return false; + } else if ("deprecated" in tokenObj && tokenObj.deprecated === undefined) { + return true; + } else { + let result = false; + + Object.keys(tokenObj).forEach((property) => { + result = result || wasUndeprecated(tokenObj[property]); + }); + + return result; + } +} From 951064bf626cbd65fbe014a9e9fde10581d0a325 Mon Sep 17 00:00:00 2001 From: cable Date: Fri, 11 Oct 2024 09:13:08 -0700 Subject: [PATCH 3/3] chore: remove invalid test case --- tools/diff-generator/test/addedToken.test.js | 3 --- .../test/test-schemas/added-set-tokens-out-of-order.json | 2 -- 2 files changed, 5 deletions(-) diff --git a/tools/diff-generator/test/addedToken.test.js b/tools/diff-generator/test/addedToken.test.js index 11b7e4c9..7e37b7e6 100644 --- a/tools/diff-generator/test/addedToken.test.js +++ b/tools/diff-generator/test/addedToken.test.js @@ -167,9 +167,6 @@ const expectedSeveralAddedSetTokens = { $schema: "https://opensource.adobe.com/spectrum-tokens/schemas/token-types/alias.json", value: "{gray-800}", - deprecated: true, - deprecated_comment: - "Express will merge with Spectrum with the release of Spectrum 2.", uuid: "60caae29-d389-421e-a574-b26bcaeed3bf", }, }, diff --git a/tools/diff-generator/test/test-schemas/added-set-tokens-out-of-order.json b/tools/diff-generator/test/test-schemas/added-set-tokens-out-of-order.json index 01e07447..dca132d1 100644 --- a/tools/diff-generator/test/test-schemas/added-set-tokens-out-of-order.json +++ b/tools/diff-generator/test/test-schemas/added-set-tokens-out-of-order.json @@ -78,8 +78,6 @@ "express": { "$schema": "https://opensource.adobe.com/spectrum-tokens/schemas/token-types/alias.json", "value": "{gray-800}", - "deprecated": true, - "deprecated_comment": "Express will merge with Spectrum with the release of Spectrum 2.", "uuid": "60caae29-d389-421e-a574-b26bcaeed3bf" } }