nx 19.3.0-canary.20240607-7495f06 → 19.3.0-canary.20240611-1600875
Sign up to get free protection for your applications and to get access to all the features.
- package/migrations.json +6 -0
- package/package.json +12 -12
- package/src/command-line/init/implementation/dot-nx/add-nx-scripts.js +38 -13
- package/src/command-line/release/utils/git.d.ts +2 -2
- package/src/command-line/release/utils/git.js +19 -11
- package/src/command-line/release/version.d.ts +1 -1
- package/src/command-line/release/version.js +1 -1
- package/src/command-line/yargs-utils/shared-options.d.ts +1 -1
- package/src/core/graph/main.js +1 -1
- package/src/generators/utils/project-configuration.js +1 -1
- package/src/hasher/file-hasher.js +1 -1
- package/src/plugins/js/project-graph/build-dependencies/target-project-locator.js +3 -1
- package/src/plugins/package-json-workspaces/create-nodes.d.ts +2 -2
- package/src/plugins/package-json-workspaces/create-nodes.js +34 -11
- package/src/project-graph/error-types.js +10 -0
- package/src/project-graph/file-utils.js +1 -1
- package/src/project-graph/plugins/internal-api.js +1 -1
- package/src/project-graph/utils/normalize-project-nodes.js +24 -6
- package/src/project-graph/utils/project-configuration-utils.js +9 -1
- package/src/tasks-runner/create-task-graph.js +32 -33
- package/src/utils/ab-testing.d.ts +1 -1
- package/src/utils/find-matching-projects.js +13 -1
package/migrations.json
CHANGED
@@ -77,6 +77,12 @@
|
|
77
77
|
"version": "19.2.0-beta.2",
|
78
78
|
"description": "Updates the default workspace data directory to .nx/workspace-data",
|
79
79
|
"implementation": "./src/migrations/update-19-2-0/move-workspace-data-directory"
|
80
|
+
},
|
81
|
+
"19-2-2-update-nx-wrapper": {
|
82
|
+
"cli": "nx",
|
83
|
+
"version": "19.2.2-beta.0",
|
84
|
+
"description": "Updates the nx wrapper.",
|
85
|
+
"implementation": "./src/migrations/update-17-3-0/update-nxw"
|
80
86
|
}
|
81
87
|
}
|
82
88
|
}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "nx",
|
3
|
-
"version": "19.3.0-canary.
|
3
|
+
"version": "19.3.0-canary.20240611-1600875",
|
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": {
|
@@ -70,7 +70,7 @@
|
|
70
70
|
"yargs-parser": "21.1.1",
|
71
71
|
"node-machine-id": "1.1.12",
|
72
72
|
"ora": "5.3.0",
|
73
|
-
"@nrwl/tao": "19.3.0-canary.
|
73
|
+
"@nrwl/tao": "19.3.0-canary.20240611-1600875"
|
74
74
|
},
|
75
75
|
"peerDependencies": {
|
76
76
|
"@swc-node/register": "^1.8.0",
|
@@ -85,16 +85,16 @@
|
|
85
85
|
}
|
86
86
|
},
|
87
87
|
"optionalDependencies": {
|
88
|
-
"@nx/nx-darwin-x64": "19.3.0-canary.
|
89
|
-
"@nx/nx-darwin-arm64": "19.3.0-canary.
|
90
|
-
"@nx/nx-linux-x64-gnu": "19.3.0-canary.
|
91
|
-
"@nx/nx-linux-x64-musl": "19.3.0-canary.
|
92
|
-
"@nx/nx-win32-x64-msvc": "19.3.0-canary.
|
93
|
-
"@nx/nx-linux-arm64-gnu": "19.3.0-canary.
|
94
|
-
"@nx/nx-linux-arm64-musl": "19.3.0-canary.
|
95
|
-
"@nx/nx-linux-arm-gnueabihf": "19.3.0-canary.
|
96
|
-
"@nx/nx-win32-arm64-msvc": "19.3.0-canary.
|
97
|
-
"@nx/nx-freebsd-x64": "19.3.0-canary.
|
88
|
+
"@nx/nx-darwin-x64": "19.3.0-canary.20240611-1600875",
|
89
|
+
"@nx/nx-darwin-arm64": "19.3.0-canary.20240611-1600875",
|
90
|
+
"@nx/nx-linux-x64-gnu": "19.3.0-canary.20240611-1600875",
|
91
|
+
"@nx/nx-linux-x64-musl": "19.3.0-canary.20240611-1600875",
|
92
|
+
"@nx/nx-win32-x64-msvc": "19.3.0-canary.20240611-1600875",
|
93
|
+
"@nx/nx-linux-arm64-gnu": "19.3.0-canary.20240611-1600875",
|
94
|
+
"@nx/nx-linux-arm64-musl": "19.3.0-canary.20240611-1600875",
|
95
|
+
"@nx/nx-linux-arm-gnueabihf": "19.3.0-canary.20240611-1600875",
|
96
|
+
"@nx/nx-win32-arm64-msvc": "19.3.0-canary.20240611-1600875",
|
97
|
+
"@nx/nx-freebsd-x64": "19.3.0-canary.20240611-1600875"
|
98
98
|
},
|
99
99
|
"nx-migrations": {
|
100
100
|
"migrations": "./migrations.json",
|
@@ -11,17 +11,36 @@ const nxWrapperPath = (p = path) => p.join('.nx', 'nxw.js');
|
|
11
11
|
exports.nxWrapperPath = nxWrapperPath;
|
12
12
|
const NODE_MISSING_ERR = 'Nx requires NodeJS to be available. To install NodeJS and NPM, see: https://nodejs.org/en/download/ .';
|
13
13
|
const NPM_MISSING_ERR = 'Nx requires npm to be available. To install NodeJS and NPM, see: https://nodejs.org/en/download/ .';
|
14
|
-
const BATCH_SCRIPT_CONTENTS =
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
14
|
+
const BATCH_SCRIPT_CONTENTS = [
|
15
|
+
// don't log command to console
|
16
|
+
`@ECHO OFF`,
|
17
|
+
// Prevents path_to_root from being inherited by child processes
|
18
|
+
`SETLOCAL`,
|
19
|
+
`SET path_to_root=%~dp0`,
|
20
|
+
// Checks if node is available
|
21
|
+
`WHERE node >nul 2>nul`,
|
22
|
+
`IF %ERRORLEVEL% NEQ 0 (ECHO ${NODE_MISSING_ERR} & GOTO exit)`,
|
23
|
+
// Checks if npm is available
|
24
|
+
`WHERE npm >nul 2>nul`,
|
25
|
+
`IF %ERRORLEVEL% NEQ 0 (ECHO ${NPM_MISSING_ERR} & GOTO exit)`,
|
26
|
+
// Executes the nx wrapper script
|
27
|
+
`node ${path.win32.join('%path_to_root%', (0, exports.nxWrapperPath)(path.win32))} %*`,
|
28
|
+
// Exits with the same error code as the previous command
|
29
|
+
`:exit`,
|
30
|
+
` cmd /c exit /b %ERRORLEVEL%`,
|
31
|
+
].join('\r\n');
|
32
|
+
const SHELL_SCRIPT_CONTENTS = [
|
33
|
+
// Execute in bash
|
34
|
+
`#!/bin/bash`,
|
35
|
+
// Checks if node is available
|
36
|
+
`command -v node >/dev/null 2>&1 || { echo >&2 "${NODE_MISSING_ERR}"; exit 1; }`,
|
37
|
+
// Checks if npm is available
|
38
|
+
`command -v npm >/dev/null 2>&1 || { echo >&2 "${NPM_MISSING_ERR}"; exit 1; }`,
|
39
|
+
// Gets the path to the root of the project
|
40
|
+
`path_to_root=$(dirname $BASH_SOURCE)`,
|
41
|
+
// Executes the nx wrapper script
|
42
|
+
`node ${path.posix.join('$path_to_root', (0, exports.nxWrapperPath)(path.posix))} $@`,
|
43
|
+
].join('\n');
|
25
44
|
function generateDotNxSetup(version) {
|
26
45
|
const host = new tree_1.FsTree(process.cwd(), false, '.nx setup');
|
27
46
|
writeMinimalNxJson(host, version);
|
@@ -54,8 +73,14 @@ function writeMinimalNxJson(host, version) {
|
|
54
73
|
}
|
55
74
|
exports.writeMinimalNxJson = writeMinimalNxJson;
|
56
75
|
function updateGitIgnore(host) {
|
57
|
-
|
58
|
-
|
76
|
+
let contents = host.read('.gitignore', 'utf-8') ?? '';
|
77
|
+
if (!contents.includes('.nx/installation')) {
|
78
|
+
contents = [contents, '.nx/installation'].join('\n');
|
79
|
+
}
|
80
|
+
if (!contents.includes('.nx/cache')) {
|
81
|
+
contents = [contents, '.nx/cache'].join('\n');
|
82
|
+
}
|
83
|
+
host.write('.gitignore', contents);
|
59
84
|
}
|
60
85
|
exports.updateGitIgnore = updateGitIgnore;
|
61
86
|
// Gets the sanitized contents for nxw.js
|
@@ -27,12 +27,12 @@ export declare function getLatestGitTagForPattern(releaseTagPattern: string, add
|
|
27
27
|
extractedVersion: string;
|
28
28
|
} | null>;
|
29
29
|
export declare function getGitDiff(from: string | undefined, to?: string): Promise<RawGitCommit[]>;
|
30
|
-
export declare function
|
31
|
-
export declare function gitAdd({ changedFiles, deletedFiles, dryRun, verbose, logFn, }: {
|
30
|
+
export declare function gitAdd({ changedFiles, deletedFiles, dryRun, verbose, logFn, cwd, }: {
|
32
31
|
changedFiles?: string[];
|
33
32
|
deletedFiles?: string[];
|
34
33
|
dryRun?: boolean;
|
35
34
|
verbose?: boolean;
|
35
|
+
cwd?: string;
|
36
36
|
logFn?: (...messages: string[]) => void;
|
37
37
|
}): Promise<string>;
|
38
38
|
export declare function gitCommit({ messages, additionalArgs, dryRun, verbose, logFn, }: {
|
@@ -1,11 +1,12 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.getFirstGitCommit = exports.getCommitHash = exports.parseGitCommit = exports.parseConventionalCommitsMessage = exports.parseCommits = exports.gitPush = exports.gitTag = exports.gitCommit = exports.gitAdd = exports.
|
3
|
+
exports.getFirstGitCommit = exports.getCommitHash = exports.parseGitCommit = exports.parseConventionalCommitsMessage = exports.parseCommits = exports.gitPush = exports.gitTag = exports.gitCommit = exports.gitAdd = exports.getGitDiff = exports.getLatestGitTagForPattern = void 0;
|
4
4
|
/**
|
5
5
|
* Special thanks to changelogen for the original inspiration for many of these utilities:
|
6
6
|
* https://github.com/unjs/changelogen
|
7
7
|
*/
|
8
8
|
const utils_1 = require("../../../tasks-runner/utils");
|
9
|
+
const app_root_1 = require("../../../utils/app-root");
|
9
10
|
const exec_command_1 = require("./exec-command");
|
10
11
|
function escapeRegExp(string) {
|
11
12
|
return string.replace(/[/\-\\^$*+?.()|[\]{}]/g, '\\$&');
|
@@ -97,18 +98,21 @@ async function getGitDiff(from, to = 'HEAD') {
|
|
97
98
|
});
|
98
99
|
}
|
99
100
|
exports.getGitDiff = getGitDiff;
|
100
|
-
async function getChangedTrackedFiles() {
|
101
|
-
const result = await (0, exec_command_1.execCommand)('git', ['status', '--porcelain']
|
101
|
+
async function getChangedTrackedFiles(cwd) {
|
102
|
+
const result = await (0, exec_command_1.execCommand)('git', ['status', '--porcelain'], {
|
103
|
+
cwd,
|
104
|
+
});
|
102
105
|
const lines = result.split('\n').filter((l) => l.trim().length > 0);
|
103
106
|
return new Set(lines.map((l) => l.substring(3)));
|
104
107
|
}
|
105
|
-
|
106
|
-
async function gitAdd({ changedFiles, deletedFiles, dryRun, verbose, logFn, }) {
|
108
|
+
async function gitAdd({ changedFiles, deletedFiles, dryRun, verbose, logFn, cwd, }) {
|
107
109
|
logFn = logFn || console.log;
|
110
|
+
// Default to running git add related commands from the workspace root
|
111
|
+
cwd = cwd || app_root_1.workspaceRoot;
|
108
112
|
let ignoredFiles = [];
|
109
113
|
let filesToAdd = [];
|
110
114
|
for (const f of changedFiles ?? []) {
|
111
|
-
const isFileIgnored = await isIgnored(f);
|
115
|
+
const isFileIgnored = await isIgnored(f, cwd);
|
112
116
|
if (isFileIgnored) {
|
113
117
|
ignoredFiles.push(f);
|
114
118
|
}
|
@@ -117,9 +121,9 @@ async function gitAdd({ changedFiles, deletedFiles, dryRun, verbose, logFn, }) {
|
|
117
121
|
}
|
118
122
|
}
|
119
123
|
if (deletedFiles?.length > 0) {
|
120
|
-
const changedTrackedFiles = await getChangedTrackedFiles();
|
124
|
+
const changedTrackedFiles = await getChangedTrackedFiles(cwd);
|
121
125
|
for (const f of deletedFiles ?? []) {
|
122
|
-
const isFileIgnored = await isIgnored(f);
|
126
|
+
const isFileIgnored = await isIgnored(f, cwd);
|
123
127
|
if (isFileIgnored) {
|
124
128
|
ignoredFiles.push(f);
|
125
129
|
// git add will fail if trying to add an untracked file that doesn't exist
|
@@ -151,13 +155,17 @@ async function gitAdd({ changedFiles, deletedFiles, dryRun, verbose, logFn, }) {
|
|
151
155
|
if (dryRun) {
|
152
156
|
return;
|
153
157
|
}
|
154
|
-
return (0, exec_command_1.execCommand)('git', commandArgs
|
158
|
+
return (0, exec_command_1.execCommand)('git', commandArgs, {
|
159
|
+
cwd,
|
160
|
+
});
|
155
161
|
}
|
156
162
|
exports.gitAdd = gitAdd;
|
157
|
-
async function isIgnored(filePath) {
|
163
|
+
async function isIgnored(filePath, cwd) {
|
158
164
|
try {
|
159
165
|
// This command will error if the file is not ignored
|
160
|
-
await (0, exec_command_1.execCommand)('git', ['check-ignore', filePath]
|
166
|
+
await (0, exec_command_1.execCommand)('git', ['check-ignore', filePath], {
|
167
|
+
cwd,
|
168
|
+
});
|
161
169
|
return true;
|
162
170
|
}
|
163
171
|
catch {
|
@@ -18,7 +18,7 @@ export interface ReleaseVersionGeneratorSchema {
|
|
18
18
|
currentVersionResolverMetadata?: Record<string, unknown>;
|
19
19
|
fallbackCurrentVersionResolver?: 'disk';
|
20
20
|
firstRelease?: boolean;
|
21
|
-
versionPrefix?: typeof validReleaseVersionPrefixes[number];
|
21
|
+
versionPrefix?: (typeof validReleaseVersionPrefixes)[number];
|
22
22
|
skipLockFileUpdate?: boolean;
|
23
23
|
installArgs?: string;
|
24
24
|
installIgnoreScripts?: boolean;
|
@@ -378,7 +378,7 @@ function resolveGeneratorData({ collectionName, generatorName, configGeneratorOp
|
|
378
378
|
* the @nx/js generator config in their nx.json so we need to be clear about what the problem is)
|
379
379
|
*/
|
380
380
|
if (collectionName === '@nx/js') {
|
381
|
-
throw new Error('The @nx/js plugin is required in order to version your JavaScript packages.
|
381
|
+
throw new Error('The @nx/js plugin is required in order to version your JavaScript packages. Run "nx add @nx/js" to add it to your workspace.');
|
382
382
|
}
|
383
383
|
throw new Error(`Unable to resolve the package ${collectionName} in order to load the generator called ${generatorName}. Is the package installed?`);
|
384
384
|
}
|
@@ -57,7 +57,7 @@ export declare function withOverrides<T extends {
|
|
57
57
|
__overrides_unparsed__: string[];
|
58
58
|
};
|
59
59
|
declare const allOutputStyles: readonly ["dynamic", "static", "stream", "stream-without-prefixes", "compact"];
|
60
|
-
export type OutputStyle = typeof allOutputStyles[number];
|
60
|
+
export type OutputStyle = (typeof allOutputStyles)[number];
|
61
61
|
export declare function withOutputStyleOption(yargs: Argv, choices?: ReadonlyArray<OutputStyle>): Argv<{
|
62
62
|
"output-style": string;
|
63
63
|
}>;
|