nx 19.0.4 → 19.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.json +2 -1
- package/package.json +13 -14
- package/src/adapter/ngcli-adapter.js +6 -3
- package/src/command-line/migrate/migrate.js +16 -6
- package/src/command-line/release/utils/github.js +1 -1
- package/src/command-line/release/utils/shared.js +5 -3
- package/src/command-line/run/executor-utils.js +5 -0
- package/src/config/misc-interfaces.d.ts +2 -1
- package/src/config/workspace-json-project-json.d.ts +1 -0
- package/src/core/graph/main.js +1 -1
- package/src/daemon/server/server.js +1 -1
- package/src/generators/utils/json.js +2 -1
- package/src/plugins/js/lock-file/npm-parser.js +10 -1
- package/src/plugins/js/lock-file/utils/pnpm-normalizer.js +3 -3
- package/src/plugins/target-defaults/target-defaults-plugin.d.ts +31 -0
- package/src/plugins/target-defaults/target-defaults-plugin.js +9 -0
- package/src/project-graph/utils/retrieve-workspace-files.d.ts +3 -3
- package/src/utils/find-matching-projects.js +1 -13
- package/src/utils/json.js +1 -1
- package/src/utils/package-json.d.ts +1 -1
- package/src/utils/package-json.js +8 -2
- package/src/utils/package-manager.d.ts +1 -1
- package/src/utils/package-manager.js +21 -10
- package/src/utils/plugins/plugin-capabilities.js +24 -1
package/.eslintrc.json
CHANGED
@@ -100,7 +100,8 @@
|
|
100
100
|
"events", // This is coming from @storybook/builder-manager since it uses the browser polyfill
|
101
101
|
"process", // This is coming from @storybook/builder-manager since it uses the browser polyfill
|
102
102
|
"prettier", // This is coming from @storybook/builder-manager since it uses the browser polyfill
|
103
|
-
"util" // This is coming from @storybook/builder-manager since it uses the browser polyfill
|
103
|
+
"util", // This is coming from @storybook/builder-manager since it uses the browser polyfill
|
104
|
+
"js-yaml" // The rule is failing with alias dependencies
|
104
105
|
]
|
105
106
|
}
|
106
107
|
]
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "nx",
|
3
|
-
"version": "19.0.
|
3
|
+
"version": "19.0.6",
|
4
4
|
"private": false,
|
5
5
|
"description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.",
|
6
6
|
"repository": {
|
@@ -35,7 +35,6 @@
|
|
35
35
|
"dependencies": {
|
36
36
|
"@yarnpkg/lockfile": "^1.1.0",
|
37
37
|
"@yarnpkg/parsers": "3.0.0-rc.46",
|
38
|
-
"@zkochan/js-yaml": "0.0.6",
|
39
38
|
"axios": "^1.6.0",
|
40
39
|
"chalk": "^4.1.0",
|
41
40
|
"cli-cursor": "3.1.0",
|
@@ -49,7 +48,7 @@
|
|
49
48
|
"fs-extra": "^11.1.0",
|
50
49
|
"ignore": "^5.0.4",
|
51
50
|
"jest-diff": "^29.4.1",
|
52
|
-
"js-yaml": "
|
51
|
+
"js-yaml": "npm:@zkochan/js-yaml@0.0.7",
|
53
52
|
"jsonc-parser": "3.2.0",
|
54
53
|
"lines-and-columns": "~2.0.3",
|
55
54
|
"minimatch": "9.0.3",
|
@@ -66,7 +65,7 @@
|
|
66
65
|
"yargs-parser": "21.1.1",
|
67
66
|
"node-machine-id": "1.1.12",
|
68
67
|
"ora": "5.3.0",
|
69
|
-
"@nrwl/tao": "19.0.
|
68
|
+
"@nrwl/tao": "19.0.6"
|
70
69
|
},
|
71
70
|
"peerDependencies": {
|
72
71
|
"@swc-node/register": "^1.8.0",
|
@@ -81,16 +80,16 @@
|
|
81
80
|
}
|
82
81
|
},
|
83
82
|
"optionalDependencies": {
|
84
|
-
"@nx/nx-darwin-x64": "19.0.
|
85
|
-
"@nx/nx-darwin-arm64": "19.0.
|
86
|
-
"@nx/nx-linux-x64-gnu": "19.0.
|
87
|
-
"@nx/nx-linux-x64-musl": "19.0.
|
88
|
-
"@nx/nx-win32-x64-msvc": "19.0.
|
89
|
-
"@nx/nx-linux-arm64-gnu": "19.0.
|
90
|
-
"@nx/nx-linux-arm64-musl": "19.0.
|
91
|
-
"@nx/nx-linux-arm-gnueabihf": "19.0.
|
92
|
-
"@nx/nx-win32-arm64-msvc": "19.0.
|
93
|
-
"@nx/nx-freebsd-x64": "19.0.
|
83
|
+
"@nx/nx-darwin-x64": "19.0.6",
|
84
|
+
"@nx/nx-darwin-arm64": "19.0.6",
|
85
|
+
"@nx/nx-linux-x64-gnu": "19.0.6",
|
86
|
+
"@nx/nx-linux-x64-musl": "19.0.6",
|
87
|
+
"@nx/nx-win32-x64-msvc": "19.0.6",
|
88
|
+
"@nx/nx-linux-arm64-gnu": "19.0.6",
|
89
|
+
"@nx/nx-linux-arm64-musl": "19.0.6",
|
90
|
+
"@nx/nx-linux-arm-gnueabihf": "19.0.6",
|
91
|
+
"@nx/nx-win32-arm64-msvc": "19.0.6",
|
92
|
+
"@nx/nx-freebsd-x64": "19.0.6"
|
94
93
|
},
|
95
94
|
"nx-migrations": {
|
96
95
|
"migrations": "./migrations.json",
|
@@ -791,12 +791,10 @@ async function getWrappedWorkspaceNodeModulesArchitectHost(workspace, root, proj
|
|
791
791
|
const [packageName, builderName] = builderStr.split(':');
|
792
792
|
const { executorsFilePath, executorConfig } = this.readExecutorsJson(packageName, builderName);
|
793
793
|
const builderInfo = this.readExecutor(packageName, builderName);
|
794
|
-
const { builders, executors } = (0, fileutils_1.readJsonFile)(executorsFilePath);
|
795
794
|
return {
|
796
795
|
name: builderStr,
|
797
796
|
builderName,
|
798
|
-
description:
|
799
|
-
executors?.[builderName]?.description,
|
797
|
+
description: executorConfig.description,
|
800
798
|
optionSchema: builderInfo.schema,
|
801
799
|
import: (0, schema_utils_1.resolveImplementation)(executorConfig.implementation, (0, path_1.dirname)(executorsFilePath)),
|
802
800
|
};
|
@@ -813,6 +811,11 @@ async function getWrappedWorkspaceNodeModulesArchitectHost(workspace, root, proj
|
|
813
811
|
if (!executorConfig) {
|
814
812
|
throw new Error(`Cannot find builder '${builder}' in ${executorsFilePath}.`);
|
815
813
|
}
|
814
|
+
if (typeof executorConfig === 'string') {
|
815
|
+
// Angular CLI can have a builder pointing to another package:builder
|
816
|
+
const [packageName, executorName] = executorConfig.split(':');
|
817
|
+
return this.readExecutorsJson(packageName, executorName);
|
818
|
+
}
|
816
819
|
return { executorsFilePath, executorConfig, isNgCompat: true };
|
817
820
|
}
|
818
821
|
readExecutor(nodeModule, executor) {
|
@@ -377,9 +377,9 @@ const LEGACY_NRWL_PACKAGE_GROUP = [
|
|
377
377
|
];
|
378
378
|
async function normalizeVersionWithTagCheck(pkg, version) {
|
379
379
|
// This doesn't seem like a valid version, lets check if its a tag on the registry.
|
380
|
-
if (version && !(0, semver_1.
|
380
|
+
if (version && !(0, semver_1.parse)(version)) {
|
381
381
|
try {
|
382
|
-
return (0, package_manager_1.
|
382
|
+
return (0, package_manager_1.resolvePackageVersionUsingRegistry)(pkg, version);
|
383
383
|
}
|
384
384
|
catch {
|
385
385
|
// fall through to old logic
|
@@ -634,6 +634,9 @@ async function getPackageMigrationsUsingInstall(packageName, packageVersion) {
|
|
634
634
|
}
|
635
635
|
result = { ...migrations, packageGroup, version: packageJson.version };
|
636
636
|
}
|
637
|
+
catch (e) {
|
638
|
+
logger_1.logger.warn(`Unable to fetch migrations for ${packageName}@${packageVersion}: ${e.message}`);
|
639
|
+
}
|
637
640
|
finally {
|
638
641
|
await cleanup();
|
639
642
|
}
|
@@ -871,7 +874,14 @@ function runInstall() {
|
|
871
874
|
(0, child_process_1.execSync)(pmCommands.install, { stdio: [0, 1, 2] });
|
872
875
|
}
|
873
876
|
async function executeMigrations(root, migrations, isVerbose, shouldCreateCommits, commitPrefix) {
|
874
|
-
|
877
|
+
let initialDeps = getStringifiedPackageJsonDeps(root);
|
878
|
+
const installDepsIfChanged = () => {
|
879
|
+
const currentDeps = getStringifiedPackageJsonDeps(root);
|
880
|
+
if (initialDeps !== currentDeps) {
|
881
|
+
runInstall();
|
882
|
+
}
|
883
|
+
initialDeps = currentDeps;
|
884
|
+
};
|
875
885
|
const migrationsWithNoChanges = [];
|
876
886
|
const sortedMigrations = migrations.sort((a, b) => {
|
877
887
|
// special case for the split configuration migration to run first
|
@@ -912,6 +922,7 @@ async function executeMigrations(root, migrations, isVerbose, shouldCreateCommit
|
|
912
922
|
loggingQueue.forEach((log) => logger_1.logger.info(' ' + log));
|
913
923
|
}
|
914
924
|
if (shouldCreateCommits) {
|
925
|
+
installDepsIfChanged();
|
915
926
|
const commitMessage = `${commitPrefix}${m.name}`;
|
916
927
|
try {
|
917
928
|
const committedSha = commitChanges(commitMessage);
|
@@ -935,9 +946,8 @@ async function executeMigrations(root, migrations, isVerbose, shouldCreateCommit
|
|
935
946
|
throw e;
|
936
947
|
}
|
937
948
|
}
|
938
|
-
|
939
|
-
|
940
|
-
runInstall();
|
949
|
+
if (!shouldCreateCommits) {
|
950
|
+
installDepsIfChanged();
|
941
951
|
}
|
942
952
|
return migrationsWithNoChanges;
|
943
953
|
}
|
@@ -223,7 +223,7 @@ async function resolveGithubToken() {
|
|
223
223
|
const ghCLIPath = (0, path_1.joinPathFragments)(process.env.XDG_CONFIG_HOME || (0, path_1.joinPathFragments)((0, node_os_1.homedir)(), '.config'), 'gh', 'hosts.yml');
|
224
224
|
if ((0, node_fs_1.existsSync)(ghCLIPath)) {
|
225
225
|
const yamlContents = await node_fs_1.promises.readFile(ghCLIPath, 'utf8');
|
226
|
-
const { load } = require('
|
226
|
+
const { load } = require('js-yaml');
|
227
227
|
const ghCLIConfig = load(yamlContents);
|
228
228
|
if (ghCLIConfig['github.com']) {
|
229
229
|
// Web based session (the token is already embedded in the config)
|
@@ -162,9 +162,11 @@ function createGitTagValues(releaseGroups, releaseGroupToFilteredProjects, versi
|
|
162
162
|
}
|
163
163
|
// For fixed groups we want one tag for the overall group
|
164
164
|
const projectVersionData = versionData[releaseGroupProjectNames[0]]; // all at the same version, so we can just pick the first one
|
165
|
-
|
166
|
-
|
167
|
-
|
165
|
+
if (projectVersionData.newVersion !== null) {
|
166
|
+
tags.push((0, utils_1.interpolate)(releaseGroup.releaseTagPattern, {
|
167
|
+
version: projectVersionData.newVersion,
|
168
|
+
}));
|
169
|
+
}
|
168
170
|
}
|
169
171
|
return tags;
|
170
172
|
}
|
@@ -68,6 +68,11 @@ function readExecutorJson(nodeModule, executor, root, projects) {
|
|
68
68
|
if (!executorConfig) {
|
69
69
|
throw new Error(`Cannot find executor '${executor}' in ${executorsFilePath}.`);
|
70
70
|
}
|
71
|
+
if (typeof executorConfig === 'string') {
|
72
|
+
// Angular CLI can have a builder pointing to another package:builder
|
73
|
+
const [packageName, executorName] = executorConfig.split(':');
|
74
|
+
return readExecutorJson(packageName, executorName, root, projects);
|
75
|
+
}
|
71
76
|
const isNgCompat = !executorsJson.executors?.[executor];
|
72
77
|
return { executorsFilePath, executorConfig, isNgCompat };
|
73
78
|
}
|
@@ -25,13 +25,14 @@ export interface GeneratorsJsonEntry {
|
|
25
25
|
'x-use-standalone-layout'?: boolean;
|
26
26
|
}
|
27
27
|
export type OutputCaptureMethod = 'direct-nodejs' | 'pipe';
|
28
|
-
export interface
|
28
|
+
export interface ExecutorJsonEntryConfig {
|
29
29
|
schema: string;
|
30
30
|
implementation: string;
|
31
31
|
batchImplementation?: string;
|
32
32
|
description?: string;
|
33
33
|
hasher?: string;
|
34
34
|
}
|
35
|
+
export type ExecutorsJsonEntry = string | ExecutorJsonEntryConfig;
|
35
36
|
export type Dependencies = 'dependencies' | 'devDependencies';
|
36
37
|
export interface PackageJsonUpdateForPackage {
|
37
38
|
version: string;
|