From c3439d7ecd5cb69af07c88969090ff3971286bd6 Mon Sep 17 00:00:00 2001 From: Micah Godbolt Date: Fri, 16 Sep 2022 09:30:06 -0700 Subject: [PATCH 1/4] chnage getAllPackageInfo to accept omitted path list, and use list to remove non v8 packages from manifest --- scripts/generate-package-manifest.js | 5 ++++- scripts/monorepo/getAllPackageInfo.js | 20 +++++++++++++++----- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/scripts/generate-package-manifest.js b/scripts/generate-package-manifest.js index ec7ddfce4c87f9..15bce68b0b2431 100644 --- a/scripts/generate-package-manifest.js +++ b/scripts/generate-package-manifest.js @@ -6,7 +6,10 @@ const { getAllPackageInfo, findGitRoot } = require('./monorepo/index'); // Generate "manifest" file with package.jsons of all the monorepo packages (mainly for ODSP) -const allPackageInfo = getAllPackageInfo(); +const ommittedPackagePaths = ['react-components/', 'packages/fluentui/', 'web-components/', 'apps/']; + +const allPackageInfo = getAllPackageInfo(ommittedPackagePaths); + const fuirVersion = allPackageInfo['@fluentui/react'].packageJson.version; const packageInfoString = JSON.stringify(allPackageInfo, null, 2); diff --git a/scripts/monorepo/getAllPackageInfo.js b/scripts/monorepo/getAllPackageInfo.js index 2969aec5a486e1..3d891f702cac44 100644 --- a/scripts/monorepo/getAllPackageInfo.js +++ b/scripts/monorepo/getAllPackageInfo.js @@ -11,9 +11,10 @@ let packageInfo; let cwdForPackageInfo; /** + * @param {string[]} omittedPaths - paths to ommit from the list * @returns {import('./index').AllPackageInfo} */ -function getAllPackageInfo() { +function getAllPackageInfo(omittedPaths) { if (packageInfo && cwdForPackageInfo === process.cwd()) { return packageInfo; } @@ -28,10 +29,19 @@ function getAllPackageInfo() { const gitRoot = findGitRoot(); for (const [packageName, packagePath] of Object.entries(packagePaths)) { - packageInfo[packageName] = { - packagePath: path.relative(gitRoot, packagePath), - packageJson: fs.readJSONSync(path.join(packagePath, 'package.json')), - }; + let keep = true; + omittedPaths.forEach(omittedPath => { + if (packagePath.split('\\').join('/').includes(omittedPath)) { + keep = false; + return; + } + }); + if (keep) { + packageInfo[packageName] = { + packagePath: path.relative(gitRoot, packagePath), + packageJson: fs.readJSONSync(path.join(packagePath, 'package.json')), + }; + } } return packageInfo; From 6653ea3815d7d846b5989a8757046e7fb15e658e Mon Sep 17 00:00:00 2001 From: Micah Godbolt Date: Fri, 16 Sep 2022 09:35:29 -0700 Subject: [PATCH 2/4] add type --- scripts/monorepo/index.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/monorepo/index.d.ts b/scripts/monorepo/index.d.ts index 04ff833a6fe6fc..402959527226c6 100644 --- a/scripts/monorepo/index.d.ts +++ b/scripts/monorepo/index.d.ts @@ -33,7 +33,7 @@ export declare function findRepoDeps(options?: { dev?: boolean; }): PackageInfo[]; -export declare function getAllPackageInfo(): AllPackageInfo; +export declare function getAllPackageInfo(omittedPaths: string[]): AllPackageInfo; /** * Determines whether a package is converged, based on its version. From fb8666b4d1b0f62402a240f6ad8e954776a3ef71 Mon Sep 17 00:00:00 2001 From: Micah Godbolt Date: Fri, 16 Sep 2022 09:46:24 -0700 Subject: [PATCH 3/4] possible null omitted paths --- scripts/monorepo/getAllPackageInfo.js | 15 ++++++++------- scripts/monorepo/index.d.ts | 2 +- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/scripts/monorepo/getAllPackageInfo.js b/scripts/monorepo/getAllPackageInfo.js index 3d891f702cac44..472e1cae9f88e6 100644 --- a/scripts/monorepo/getAllPackageInfo.js +++ b/scripts/monorepo/getAllPackageInfo.js @@ -11,7 +11,7 @@ let packageInfo; let cwdForPackageInfo; /** - * @param {string[]} omittedPaths - paths to ommit from the list + * @param {string[]?} omittedPaths - paths to ommit from the list * @returns {import('./index').AllPackageInfo} */ function getAllPackageInfo(omittedPaths) { @@ -30,12 +30,13 @@ function getAllPackageInfo(omittedPaths) { for (const [packageName, packagePath] of Object.entries(packagePaths)) { let keep = true; - omittedPaths.forEach(omittedPath => { - if (packagePath.split('\\').join('/').includes(omittedPath)) { - keep = false; - return; - } - }); + omittedPaths && + omittedPaths.forEach(omittedPath => { + if (packagePath.split('\\').join('/').includes(omittedPath)) { + keep = false; + return; + } + }); if (keep) { packageInfo[packageName] = { packagePath: path.relative(gitRoot, packagePath), diff --git a/scripts/monorepo/index.d.ts b/scripts/monorepo/index.d.ts index 402959527226c6..ba6157a4ca2bb6 100644 --- a/scripts/monorepo/index.d.ts +++ b/scripts/monorepo/index.d.ts @@ -33,7 +33,7 @@ export declare function findRepoDeps(options?: { dev?: boolean; }): PackageInfo[]; -export declare function getAllPackageInfo(omittedPaths: string[]): AllPackageInfo; +export declare function getAllPackageInfo(omittedPaths: ?string[]): AllPackageInfo; /** * Determines whether a package is converged, based on its version. From 8b00cf2040cbba55bb6e337491be6d16259ae34e Mon Sep 17 00:00:00 2001 From: Micah Godbolt Date: Tue, 20 Sep 2022 13:38:54 -0700 Subject: [PATCH 4/4] revert getAllPackageInfo and just do logic in package manifest --- scripts/generate-package-manifest.js | 13 +++++++++++-- scripts/monorepo/getAllPackageInfo.js | 21 +++++---------------- scripts/monorepo/index.d.ts | 2 +- 3 files changed, 17 insertions(+), 19 deletions(-) diff --git a/scripts/generate-package-manifest.js b/scripts/generate-package-manifest.js index 15bce68b0b2431..278df5908a14c7 100644 --- a/scripts/generate-package-manifest.js +++ b/scripts/generate-package-manifest.js @@ -6,10 +6,19 @@ const { getAllPackageInfo, findGitRoot } = require('./monorepo/index'); // Generate "manifest" file with package.jsons of all the monorepo packages (mainly for ODSP) -const ommittedPackagePaths = ['react-components/', 'packages/fluentui/', 'web-components/', 'apps/']; +const ommittedPackagePaths = ['react-components', 'packages/fluentui', 'web-components', 'apps/']; -const allPackageInfo = getAllPackageInfo(ommittedPackagePaths); +const allPackageInfo = getAllPackageInfo(); +for (const key in allPackageInfo) { + const normalizedPath = allPackageInfo[key]?.packagePath.split('\\').join('/'); + ommittedPackagePaths.forEach(omittedPath => { + if (normalizedPath.includes(omittedPath)) { + delete allPackageInfo[key]; + return; + } + }); +} const fuirVersion = allPackageInfo['@fluentui/react'].packageJson.version; const packageInfoString = JSON.stringify(allPackageInfo, null, 2); diff --git a/scripts/monorepo/getAllPackageInfo.js b/scripts/monorepo/getAllPackageInfo.js index 472e1cae9f88e6..2969aec5a486e1 100644 --- a/scripts/monorepo/getAllPackageInfo.js +++ b/scripts/monorepo/getAllPackageInfo.js @@ -11,10 +11,9 @@ let packageInfo; let cwdForPackageInfo; /** - * @param {string[]?} omittedPaths - paths to ommit from the list * @returns {import('./index').AllPackageInfo} */ -function getAllPackageInfo(omittedPaths) { +function getAllPackageInfo() { if (packageInfo && cwdForPackageInfo === process.cwd()) { return packageInfo; } @@ -29,20 +28,10 @@ function getAllPackageInfo(omittedPaths) { const gitRoot = findGitRoot(); for (const [packageName, packagePath] of Object.entries(packagePaths)) { - let keep = true; - omittedPaths && - omittedPaths.forEach(omittedPath => { - if (packagePath.split('\\').join('/').includes(omittedPath)) { - keep = false; - return; - } - }); - if (keep) { - packageInfo[packageName] = { - packagePath: path.relative(gitRoot, packagePath), - packageJson: fs.readJSONSync(path.join(packagePath, 'package.json')), - }; - } + packageInfo[packageName] = { + packagePath: path.relative(gitRoot, packagePath), + packageJson: fs.readJSONSync(path.join(packagePath, 'package.json')), + }; } return packageInfo; diff --git a/scripts/monorepo/index.d.ts b/scripts/monorepo/index.d.ts index ba6157a4ca2bb6..04ff833a6fe6fc 100644 --- a/scripts/monorepo/index.d.ts +++ b/scripts/monorepo/index.d.ts @@ -33,7 +33,7 @@ export declare function findRepoDeps(options?: { dev?: boolean; }): PackageInfo[]; -export declare function getAllPackageInfo(omittedPaths: ?string[]): AllPackageInfo; +export declare function getAllPackageInfo(): AllPackageInfo; /** * Determines whether a package is converged, based on its version.