nx 20.0.0-beta.6 → 20.0.0-beta.8
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/bin/init-local.js +0 -39
- package/bin/nx.js +3 -13
- package/migrations.json +5 -0
- package/package.json +11 -11
- package/release/changelog-renderer/index.d.ts +60 -38
- package/release/changelog-renderer/index.js +260 -236
- package/src/adapter/compat.d.ts +1 -1
- package/src/adapter/compat.js +1 -1
- package/src/command-line/add/add.js +2 -2
- package/src/command-line/affected/affected.js +0 -2
- package/src/command-line/nx-commands.js +31 -10
- package/src/command-line/release/changelog.d.ts +2 -2
- package/src/command-line/release/changelog.js +28 -29
- package/src/command-line/release/utils/git.js +2 -2
- package/src/command-line/release/utils/resolve-changelog-renderer.d.ts +2 -2
- package/src/command-line/release/utils/resolve-changelog-renderer.js +3 -3
- package/src/command-line/run/run-one.js +0 -2
- package/src/command-line/run/run.js +0 -1
- package/src/command-line/run-many/run-many.js +1 -4
- package/src/command-line/yargs-utils/shared-options.js +2 -2
- package/src/config/misc-interfaces.d.ts +3 -15
- package/src/config/nx-json.d.ts +4 -3
- package/src/config/project-graph.d.ts +0 -2
- package/src/core/graph/main.js +1 -1
- package/src/daemon/client/client.js +1 -3
- package/src/devkit-exports.d.ts +3 -4
- package/src/devkit-exports.js +3 -6
- package/src/executors/utils/convert-nx-executor.js +0 -1
- package/src/generators/utils/nx-json.d.ts +1 -1
- package/src/migrations/update-20-0-0/move-use-daemon-process.d.ts +2 -0
- package/src/migrations/update-20-0-0/move-use-daemon-process.js +25 -0
- package/src/native/nx.wasm32-wasi.wasm +0 -0
- package/src/plugins/js/project-graph/build-dependencies/target-project-locator.js +2 -12
- package/src/project-graph/build-project-graph.js +3 -41
- package/src/project-graph/error-types.d.ts +4 -10
- package/src/project-graph/error-types.js +1 -12
- package/src/project-graph/file-utils.js +1 -1
- package/src/project-graph/nx-deps-cache.d.ts +0 -1
- package/src/project-graph/nx-deps-cache.js +0 -1
- package/src/project-graph/plugins/internal-api.d.ts +2 -5
- package/src/project-graph/plugins/internal-api.js +0 -1
- package/src/project-graph/plugins/isolation/messaging.d.ts +3 -23
- package/src/project-graph/plugins/isolation/plugin-pool.js +0 -23
- package/src/project-graph/plugins/isolation/plugin-worker.js +0 -19
- package/src/project-graph/plugins/loader.js +2 -3
- package/src/project-graph/plugins/public-api.d.ts +6 -7
- package/src/project-graph/plugins/utils.d.ts +1 -7
- package/src/project-graph/plugins/utils.js +0 -37
- package/src/project-graph/utils/project-configuration-utils.js +1 -1
- package/src/tasks-runner/batch/run-batch.js +0 -1
- package/src/tasks-runner/cache.d.ts +2 -0
- package/src/tasks-runner/cache.js +7 -2
- package/src/tasks-runner/create-task-graph.js +4 -4
- package/src/tasks-runner/init-tasks-runner.js +0 -2
- package/src/tasks-runner/run-command.js +15 -2
- package/src/utils/command-line-utils.d.ts +3 -0
- package/src/utils/command-line-utils.js +24 -33
- package/src/utils/plugins/plugin-capabilities.js +2 -3
- package/src/utils/app-root.d.ts +0 -8
- package/src/utils/app-root.js +0 -12
- package/src/utils/nx-plugin.deprecated.d.ts +0 -31
- package/src/utils/nx-plugin.deprecated.js +0 -20
- package/src/utils/workspace-configuration-check.d.ts +0 -1
- package/src/utils/workspace-configuration-check.js +0 -36
@@ -1,6 +1,7 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.Cache = exports.DbCache = void 0;
|
4
|
+
exports.dbCacheEnabled = dbCacheEnabled;
|
4
5
|
exports.getCache = getCache;
|
5
6
|
const workspace_root_1 = require("../utils/workspace-root");
|
6
7
|
const path_1 = require("path");
|
@@ -19,11 +20,15 @@ const update_manager_1 = require("../nx-cloud/update-manager");
|
|
19
20
|
const get_cloud_options_1 = require("../nx-cloud/utilities/get-cloud-options");
|
20
21
|
const is_ci_1 = require("../utils/is-ci");
|
21
22
|
const output_1 = require("../utils/output");
|
23
|
+
function dbCacheEnabled(nxJson = (0, nx_json_1.readNxJson)()) {
|
24
|
+
return (process.env.NX_DISABLE_DB !== 'true' &&
|
25
|
+
nxJson.useLegacyCache !== true &&
|
26
|
+
process.env.NX_DB_CACHE !== 'false');
|
27
|
+
}
|
22
28
|
// Do not change the order of these arguments as this function is used by nx cloud
|
23
29
|
function getCache(options) {
|
24
30
|
const nxJson = (0, nx_json_1.readNxJson)();
|
25
|
-
return
|
26
|
-
(nxJson.enableDbCache === true || process.env.NX_DB_CACHE === 'true')
|
31
|
+
return dbCacheEnabled(nxJson)
|
27
32
|
? new DbCache({
|
28
33
|
// Remove this in Nx 21
|
29
34
|
nxCloudRemoteCache: (0, nx_cloud_utils_1.isNxCloudUsed)(nxJson) ? options.remoteCache : null,
|
@@ -54,10 +54,10 @@ class ProcessTasks {
|
|
54
54
|
}
|
55
55
|
}
|
56
56
|
this.filterDummyTasks();
|
57
|
-
for (const
|
58
|
-
if (this.dependencies[
|
59
|
-
this.dependencies[
|
60
|
-
...new Set(this.dependencies[
|
57
|
+
for (const taskId of Object.keys(this.dependencies)) {
|
58
|
+
if (this.dependencies[taskId].length > 0) {
|
59
|
+
this.dependencies[taskId] = [
|
60
|
+
...new Set(this.dependencies[taskId].filter((d) => d !== taskId)).values(),
|
61
61
|
];
|
62
62
|
}
|
63
63
|
}
|
@@ -1,7 +1,6 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.initTasksRunner = initTasksRunner;
|
4
|
-
const workspace_configuration_check_1 = require("../utils/workspace-configuration-check");
|
5
4
|
const configuration_1 = require("../config/configuration");
|
6
5
|
const project_graph_1 = require("../project-graph/project-graph");
|
7
6
|
const run_command_1 = require("./run-command");
|
@@ -12,7 +11,6 @@ const dotenv_1 = require("../utils/dotenv");
|
|
12
11
|
async function initTasksRunner(nxArgs) {
|
13
12
|
perf_hooks_1.performance.mark('init-local');
|
14
13
|
(0, dotenv_1.loadRootEnvFiles)();
|
15
|
-
(0, workspace_configuration_check_1.workspaceConfigurationCheck)();
|
16
14
|
const nxJson = (0, configuration_1.readNxJson)();
|
17
15
|
if (nxArgs.verbose) {
|
18
16
|
process.env.NX_VERBOSE_LOGGING = 'true';
|
@@ -511,12 +511,21 @@ function loadTasksRunner(modulePath) {
|
|
511
511
|
}
|
512
512
|
function getRunner(nxArgs, nxJson) {
|
513
513
|
let runner = nxArgs.runner;
|
514
|
-
runner = runner
|
514
|
+
runner = runner ?? 'default';
|
515
515
|
if (runner !== 'default' && !nxJson.tasksRunnerOptions?.[runner]) {
|
516
516
|
throw new Error(`Could not find runner configuration for ${runner}`);
|
517
517
|
}
|
518
518
|
const modulePath = getTasksRunnerPath(runner, nxJson);
|
519
519
|
try {
|
520
|
+
if (isCustomRunnerPath(modulePath)) {
|
521
|
+
output_1.output.warn({
|
522
|
+
title: `Custom task runners will no longer be supported in Nx 21.`,
|
523
|
+
bodyLines: [
|
524
|
+
`Use Nx Cloud or the Nx Powerpack caches instead.`,
|
525
|
+
`For more information, see https://nx.dev/features/powerpack/custom-caching`,
|
526
|
+
],
|
527
|
+
});
|
528
|
+
}
|
520
529
|
const tasksRunner = loadTasksRunner(modulePath);
|
521
530
|
return {
|
522
531
|
tasksRunner,
|
@@ -527,6 +536,7 @@ function getRunner(nxArgs, nxJson) {
|
|
527
536
|
throw new Error(`Could not find runner configuration for ${runner}`);
|
528
537
|
}
|
529
538
|
}
|
539
|
+
const defaultTasksRunnerPath = require.resolve('./default-tasks-runner');
|
530
540
|
function getTasksRunnerPath(runner, nxJson) {
|
531
541
|
let modulePath = nxJson.tasksRunnerOptions?.[runner]?.runner;
|
532
542
|
if (modulePath) {
|
@@ -544,7 +554,7 @@ function getTasksRunnerPath(runner, nxJson) {
|
|
544
554
|
process.env.NX_CLOUD_ACCESS_TOKEN ||
|
545
555
|
// Nx Cloud ID specified in nxJson
|
546
556
|
nxJson.nxCloudId;
|
547
|
-
return isCloudRunner ? 'nx-cloud' :
|
557
|
+
return isCloudRunner ? 'nx-cloud' : defaultTasksRunnerPath;
|
548
558
|
}
|
549
559
|
function getRunnerOptions(runner, nxJson, nxArgs, isCloudDefault) {
|
550
560
|
const defaultCacheableOperations = [];
|
@@ -588,3 +598,6 @@ function getRunnerOptions(runner, nxJson, nxArgs, isCloudDefault) {
|
|
588
598
|
}
|
589
599
|
return result;
|
590
600
|
}
|
601
|
+
function isCustomRunnerPath(modulePath) {
|
602
|
+
return !['nx-cloud', '@nrwl/nx-cloud', defaultTasksRunnerPath].includes(modulePath);
|
603
|
+
}
|
@@ -7,6 +7,9 @@ export interface RawNxArgs extends NxArgs {
|
|
7
7
|
export interface NxArgs {
|
8
8
|
targets?: string[];
|
9
9
|
configuration?: string;
|
10
|
+
/**
|
11
|
+
* @deprecated Custom task runners will no longer be supported in Nx 21. Use Nx Cloud or Nx Powerpack instead.
|
12
|
+
*/
|
10
13
|
runner?: string;
|
11
14
|
parallel?: number;
|
12
15
|
untracked?: boolean;
|
@@ -139,41 +139,32 @@ function readParallelFromArgsAndEnv(args) {
|
|
139
139
|
}
|
140
140
|
function normalizeNxArgsRunner(nxArgs, nxJson, options) {
|
141
141
|
if (!nxArgs.runner) {
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
if (options.printWarnings) {
|
148
|
-
if (runnerExists) {
|
149
|
-
output_1.output.note({
|
150
|
-
title: `No explicit --runner argument provided, but found environment variable ${envKey} so using its value: ${output_1.output.bold(`${runner}`)}`,
|
151
|
-
});
|
152
|
-
}
|
153
|
-
else if (nxArgs.verbose ||
|
154
|
-
process.env.NX_VERBOSE_LOGGING === 'true') {
|
155
|
-
output_1.output.warn({
|
156
|
-
title: `Could not find ${output_1.output.bold(`${runner}`)} within \`nx.json\` tasksRunnerOptions.`,
|
157
|
-
bodyLines: [
|
158
|
-
`${output_1.output.bold(`${runner}`)} was set by ${envKey}`,
|
159
|
-
``,
|
160
|
-
`To suppress this message, either:`,
|
161
|
-
` - provide a valid task runner with --runner`,
|
162
|
-
` - ensure NX_TASKS_RUNNER matches a task runner defined in nx.json`,
|
163
|
-
],
|
164
|
-
});
|
165
|
-
}
|
166
|
-
}
|
142
|
+
const envKey = 'NX_TASKS_RUNNER';
|
143
|
+
const runner = process.env[envKey];
|
144
|
+
if (runner) {
|
145
|
+
const runnerExists = nxJson.tasksRunnerOptions?.[runner];
|
146
|
+
if (options.printWarnings) {
|
167
147
|
if (runnerExists) {
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
title: 'NX_RUNNER is deprecated, please use NX_TASKS_RUNNER instead.',
|
172
|
-
});
|
173
|
-
}
|
174
|
-
nxArgs.runner = runner;
|
148
|
+
output_1.output.note({
|
149
|
+
title: `No explicit --runner argument provided, but found environment variable ${envKey} so using its value: ${output_1.output.bold(`${runner}`)}`,
|
150
|
+
});
|
175
151
|
}
|
176
|
-
|
152
|
+
else if (nxArgs.verbose ||
|
153
|
+
process.env.NX_VERBOSE_LOGGING === 'true') {
|
154
|
+
output_1.output.warn({
|
155
|
+
title: `Could not find ${output_1.output.bold(`${runner}`)} within \`nx.json\` tasksRunnerOptions.`,
|
156
|
+
bodyLines: [
|
157
|
+
`${output_1.output.bold(`${runner}`)} was set by ${envKey}`,
|
158
|
+
``,
|
159
|
+
`To suppress this message, either:`,
|
160
|
+
` - provide a valid task runner with --runner`,
|
161
|
+
` - ensure NX_TASKS_RUNNER matches a task runner defined in nx.json`,
|
162
|
+
],
|
163
|
+
});
|
164
|
+
}
|
165
|
+
}
|
166
|
+
if (runnerExists) {
|
167
|
+
nxArgs.runner = runner;
|
177
168
|
}
|
178
169
|
}
|
179
170
|
}
|
@@ -20,7 +20,7 @@ function tryGetCollection(packageJsonPath, collectionFile, propName) {
|
|
20
20
|
}
|
21
21
|
async function getPluginCapabilities(workspaceRoot, pluginName, projects, includeRuntimeCapabilities = false) {
|
22
22
|
try {
|
23
|
-
const { json: packageJson, path: packageJsonPath } =
|
23
|
+
const { json: packageJson, path: packageJsonPath } = (0, plugins_1.readPluginPackageJson)(pluginName, projects, (0, installation_directory_1.getNxRequirePaths)(workspaceRoot));
|
24
24
|
const pluginModule = includeRuntimeCapabilities
|
25
25
|
? await tryGetModule(packageJson, workspaceRoot)
|
26
26
|
: {};
|
@@ -62,8 +62,7 @@ async function tryGetModule(packageJson, workspaceRoot) {
|
|
62
62
|
packageJson['schematics'] ??
|
63
63
|
packageJson['builders']) {
|
64
64
|
const [pluginPromise] = (0, loader_1.loadNxPlugin)(packageJson.name, workspaceRoot);
|
65
|
-
|
66
|
-
return plugin;
|
65
|
+
return await pluginPromise;
|
67
66
|
}
|
68
67
|
else {
|
69
68
|
return {
|
package/src/utils/app-root.d.ts
DELETED
package/src/utils/app-root.js
DELETED
@@ -1,12 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.workspaceRoot = exports.appRootPath = void 0;
|
4
|
-
// TODO(v16): Remove this file
|
5
|
-
const workspace_root_1 = require("./workspace-root");
|
6
|
-
Object.defineProperty(exports, "workspaceRoot", { enumerable: true, get: function () { return workspace_root_1.workspaceRoot; } });
|
7
|
-
/**
|
8
|
-
* The root of the workspace.
|
9
|
-
*
|
10
|
-
* @deprecated use workspaceRoot instead
|
11
|
-
*/
|
12
|
-
exports.appRootPath = workspace_root_1.workspaceRoot;
|
@@ -1,31 +0,0 @@
|
|
1
|
-
import { ProjectGraphProcessor } from '../config/project-graph';
|
2
|
-
import { TargetConfiguration } from '../config/workspace-json-project-json';
|
3
|
-
import { NxPluginV2 } from '../project-graph/plugins';
|
4
|
-
/**
|
5
|
-
* @deprecated Add targets to the projects in a {@link CreateNodes} function instead. This will be removed in Nx 20
|
6
|
-
*/
|
7
|
-
export type ProjectTargetConfigurator = (file: string) => Record<string, TargetConfiguration>;
|
8
|
-
/**
|
9
|
-
* @deprecated Use {@link NxPluginV2} instead. This will be removed in Nx 20
|
10
|
-
*/
|
11
|
-
export type NxPluginV1 = {
|
12
|
-
name: string;
|
13
|
-
/**
|
14
|
-
* @deprecated Use {@link CreateNodes} and {@link CreateDependencies} instead. This will be removed in Nx 20
|
15
|
-
*/
|
16
|
-
processProjectGraph?: ProjectGraphProcessor;
|
17
|
-
/**
|
18
|
-
* @deprecated Add targets to the projects inside of {@link CreateNodes} instead. This will be removed in Nx 20
|
19
|
-
*/
|
20
|
-
registerProjectTargets?: ProjectTargetConfigurator;
|
21
|
-
/**
|
22
|
-
* A glob pattern to search for non-standard project files.
|
23
|
-
* @example: ["*.csproj", "pom.xml"]
|
24
|
-
* @deprecated Use {@link CreateNodes} instead. This will be removed in Nx 20
|
25
|
-
*/
|
26
|
-
projectFilePatterns?: string[];
|
27
|
-
};
|
28
|
-
/**
|
29
|
-
* @todo(@agentender) v20: Remove this fn when we remove readWorkspaceConfig
|
30
|
-
*/
|
31
|
-
export declare function getDefaultPluginsSync(root: string): NxPluginV2[];
|
@@ -1,20 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.getDefaultPluginsSync = getDefaultPluginsSync;
|
4
|
-
const angular_json_1 = require("../adapter/angular-json");
|
5
|
-
const project_json_1 = require("../plugins/project-json/build-nodes/project-json");
|
6
|
-
const PackageJsonWorkspacesPlugin = require("../plugins/package-json");
|
7
|
-
/**
|
8
|
-
* @todo(@agentender) v20: Remove this fn when we remove readWorkspaceConfig
|
9
|
-
*/
|
10
|
-
function getDefaultPluginsSync(root) {
|
11
|
-
const plugins = [
|
12
|
-
require('../plugins/js'),
|
13
|
-
...((0, angular_json_1.shouldMergeAngularProjects)(root, false)
|
14
|
-
? [require('../adapter/angular-json').NxAngularJsonPlugin]
|
15
|
-
: []),
|
16
|
-
PackageJsonWorkspacesPlugin,
|
17
|
-
project_json_1.default,
|
18
|
-
];
|
19
|
-
return plugins;
|
20
|
-
}
|
@@ -1 +0,0 @@
|
|
1
|
-
export declare function workspaceConfigurationCheck(): void;
|
@@ -1,36 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.workspaceConfigurationCheck = workspaceConfigurationCheck;
|
4
|
-
const workspace_root_1 = require("./workspace-root");
|
5
|
-
const fs_1 = require("fs");
|
6
|
-
const path_1 = require("path");
|
7
|
-
const output_1 = require("./output");
|
8
|
-
const fileutils_1 = require("../utils/fileutils");
|
9
|
-
//TODO: vsavkin remove after Nx 19
|
10
|
-
function workspaceConfigurationCheck() {
|
11
|
-
if ((0, fs_1.existsSync)((0, path_1.join)(workspace_root_1.workspaceRoot, 'workspace.json'))) {
|
12
|
-
output_1.output.warn({
|
13
|
-
title: 'workspace.json is ignored',
|
14
|
-
bodyLines: [
|
15
|
-
'Nx no longer reads configuration from workspace.json.',
|
16
|
-
'Run "nx g @nx/workspace:fix-configuration" to split workspace.json into individual project.json files.',
|
17
|
-
],
|
18
|
-
});
|
19
|
-
return;
|
20
|
-
}
|
21
|
-
if ((0, fs_1.existsSync)((0, path_1.join)(workspace_root_1.workspaceRoot, 'angular.json'))) {
|
22
|
-
const angularJson = (0, fileutils_1.readJsonFile)((0, path_1.join)(workspace_root_1.workspaceRoot, 'angular.json'));
|
23
|
-
const v2Props = Object.values(angularJson.projects).find((p) => !!p.targets);
|
24
|
-
if (angularJson.version === 2 || v2Props) {
|
25
|
-
output_1.output.error({
|
26
|
-
title: 'angular.json format is incorrect',
|
27
|
-
bodyLines: [
|
28
|
-
'Nx no longer supports the v2 format of angular.json.',
|
29
|
-
'Run "nx g @nx/workspace:fix-configuration" to split angular.json into individual project.json files. (Recommended)',
|
30
|
-
'If you want to preserve angular.json, run "nx g @nx/workspace:fix-configuration --reformat"',
|
31
|
-
],
|
32
|
-
});
|
33
|
-
process.exit(1);
|
34
|
-
}
|
35
|
-
}
|
36
|
-
}
|