diff --git a/.ado/azure-pipelines.yml b/.ado/azure-pipelines.yml index de4039b839f..e1200b300ef 100644 --- a/.ado/azure-pipelines.yml +++ b/.ado/azure-pipelines.yml @@ -28,6 +28,14 @@ jobs: yarn prettier displayName: 'check prettier' + - script: | + yarn align-deps + displayName: 'run align-deps' + + - script: | + yarn lint-lockfile + displayName: 'run lint-lockfile' + - script: | yarn buildci displayName: 'yarn buildci [test]' diff --git a/lage.config.js b/lage.config.js index df11d3de158..395f8d29e9a 100644 --- a/lage.config.js +++ b/lage.config.js @@ -6,7 +6,7 @@ module.exports = { buildci: ['build', 'test', 'depcheck'], bundle: ['build-tools', 'build'], clean: [], - depcheck: ['build-tools'], + depcheck: ['build-tools', 'align-deps'], lint: ['build-tools'], prettier: ['build-tools'], ['prettier-fix']: ['build-tools'], diff --git a/package.json b/package.json index fe786babf4f..300a5a0559e 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "check-for-changed-files": "cd scripts && yarn fluentui-scripts checkForModifiedFiles", "checkchange": "beachball check --changehint \"Run 'yarn change' to generate a change file\"", "align-deps": "rnx-align-deps --no-unmanaged --requirements react-native@0.74", - "depcheck": "yarn align-deps && lage depcheck", + "depcheck": "lage depcheck", "lint": "lage lint", "preinstall": "node ./scripts/use-yarn-please.js", "prettier": "lage prettier", @@ -40,6 +40,7 @@ "@react-native/metro-babel-transformer": "^0.74.0", "@react-native/metro-config": "^0.74.0", "@rnx-kit/align-deps": "^3.0.0", + "@rnx-kit/lint-lockfile": "^0.1.0", "babel-jest": "^29.7.0", "beachball": "^2.20.0", "eslint": "^8.0.0", @@ -76,6 +77,16 @@ "presets": [ "microsoft/react-native" ], + "lint": { + "lockfile": { + "noDuplicates": { + "packages": [ + "#react-native", + "@babel/core" + ] + } + } + }, "requirements": { "development": [ "react-native@0.74" diff --git a/yarn.lock b/yarn.lock index e1ad1c01a0a..0ced5b2fc26 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4114,6 +4114,7 @@ __metadata: "@react-native/metro-babel-transformer": "npm:^0.74.0" "@react-native/metro-config": "npm:^0.74.0" "@rnx-kit/align-deps": "npm:^3.0.0" + "@rnx-kit/lint-lockfile": "npm:^0.1.0" babel-jest: "npm:^29.7.0" beachball: "npm:^2.20.0" eslint: "npm:^8.0.0" @@ -6600,16 +6601,16 @@ __metadata: languageName: node linkType: hard -"@rnx-kit/config@npm:^0.7.0": - version: 0.7.3 - resolution: "@rnx-kit/config@npm:0.7.3" +"@rnx-kit/config@npm:^0.7.0, @rnx-kit/config@npm:^0.7.4": + version: 0.7.4 + resolution: "@rnx-kit/config@npm:0.7.4" dependencies: "@rnx-kit/console": "npm:^2.0.0" "@rnx-kit/tools-node": "npm:^3.0.0" "@rnx-kit/tools-packages": "npm:^0.1.0" lodash.merge: "npm:^4.6.2" semver: "npm:^7.0.0" - checksum: 10c0/0c29594647714c7467f1263ed48b371fd53ceefd6fef8231deb9f7cd08f6113d84e1b25747a89acf5d936a0d6bd420eabbc8afc890c9ccbb5fd823cb198a9812 + checksum: 10c0/f237eacf8082eb5068d88a4b8302c115014edc0131475e756e52052426421f0799caa82208e7691b2e1673b859422bd9f5f8a9a192841f0e19c16ab7de090dd5 languageName: node linkType: hard @@ -6653,6 +6654,19 @@ __metadata: languageName: node linkType: hard +"@rnx-kit/lint-lockfile@npm:^0.1.0": + version: 0.1.0 + resolution: "@rnx-kit/lint-lockfile@npm:0.1.0" + dependencies: + "@rnx-kit/config": "npm:^0.7.4" + "@rnx-kit/tools-workspaces": "npm:^0.2.3" + js-yaml: "npm:^4.1.0" + bin: + lint-lockfile: lib/cli.js + checksum: 10c0/534491cdf8c058a63862fd5e38209eee5a5ed8fe725a5e6d085076ed1b8a1b4f8ed08578b9174044c53f1ddebb197624d0b767c744b7565f36b6d3cfb13b0668 + languageName: node + linkType: hard + "@rnx-kit/metro-config@npm:^2.0.0": version: 2.0.1 resolution: "@rnx-kit/metro-config@npm:2.0.1" @@ -6836,16 +6850,16 @@ __metadata: languageName: node linkType: hard -"@rnx-kit/tools-workspaces@npm:^0.2.0, @rnx-kit/tools-workspaces@npm:^0.2.1": - version: 0.2.2 - resolution: "@rnx-kit/tools-workspaces@npm:0.2.2" +"@rnx-kit/tools-workspaces@npm:^0.2.0, @rnx-kit/tools-workspaces@npm:^0.2.1, @rnx-kit/tools-workspaces@npm:^0.2.3": + version: 0.2.3 + resolution: "@rnx-kit/tools-workspaces@npm:0.2.3" dependencies: fast-glob: "npm:^3.2.7" find-up: "npm:^5.0.0" micromatch: "npm:^4.0.0" read-yaml-file: "npm:^2.1.0" strip-json-comments: "npm:^3.1.1" - checksum: 10c0/3a0f258d8be28818c7b6c7b5c490c7aa20a1181e7499b1ccce23e3043f41a767e9f1a5eefe5f696de11eaf3ad84777587059c78169694e85aeda9f97882e5ae6 + checksum: 10c0/b9528f560092c8ba8eeafb818cef2363ba99ffd7b3f0e3738cfe0316b35211ab7b6aa08d9eb3ef555c02b6048c591adafdca2934e674066256c06860cb1cf668 languageName: node linkType: hard