nx 20.0.0-beta.0 → 20.0.0-canary.20240924-3e1a879
Sign up to get free protection for your applications and to get access to all the features.
- package/package.json +12 -12
- package/src/command-line/init/init-v2.js +1 -1
- package/src/native/nx.wasm32-wasi.wasm +0 -0
- package/src/tasks-runner/life-cycles/formatting-utils.d.ts +1 -1
- package/src/tasks-runner/life-cycles/formatting-utils.js +27 -15
- package/src/tasks-runner/life-cycles/task-history-life-cycle.js +3 -0
- package/src/tasks-runner/tasks-schedule.js +1 -1
- package/src/utils/task-history.d.ts +2 -2
- package/src/utils/task-history.js +4 -1
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "nx",
|
3
|
-
"version": "20.0.0-
|
3
|
+
"version": "20.0.0-canary.20240924-3e1a879",
|
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": {
|
@@ -68,7 +68,7 @@
|
|
68
68
|
"yargs-parser": "21.1.1",
|
69
69
|
"node-machine-id": "1.1.12",
|
70
70
|
"ora": "5.3.0",
|
71
|
-
"@nrwl/tao": "20.0.0-
|
71
|
+
"@nrwl/tao": "20.0.0-canary.20240924-3e1a879"
|
72
72
|
},
|
73
73
|
"peerDependencies": {
|
74
74
|
"@swc-node/register": "^1.8.0",
|
@@ -83,16 +83,16 @@
|
|
83
83
|
}
|
84
84
|
},
|
85
85
|
"optionalDependencies": {
|
86
|
-
"@nx/nx-darwin-x64": "20.0.0-
|
87
|
-
"@nx/nx-darwin-arm64": "20.0.0-
|
88
|
-
"@nx/nx-linux-x64-gnu": "20.0.0-
|
89
|
-
"@nx/nx-linux-x64-musl": "20.0.0-
|
90
|
-
"@nx/nx-win32-x64-msvc": "20.0.0-
|
91
|
-
"@nx/nx-linux-arm64-gnu": "20.0.0-
|
92
|
-
"@nx/nx-linux-arm64-musl": "20.0.0-
|
93
|
-
"@nx/nx-linux-arm-gnueabihf": "20.0.0-
|
94
|
-
"@nx/nx-win32-arm64-msvc": "20.0.0-
|
95
|
-
"@nx/nx-freebsd-x64": "20.0.0-
|
86
|
+
"@nx/nx-darwin-x64": "20.0.0-canary.20240924-3e1a879",
|
87
|
+
"@nx/nx-darwin-arm64": "20.0.0-canary.20240924-3e1a879",
|
88
|
+
"@nx/nx-linux-x64-gnu": "20.0.0-canary.20240924-3e1a879",
|
89
|
+
"@nx/nx-linux-x64-musl": "20.0.0-canary.20240924-3e1a879",
|
90
|
+
"@nx/nx-win32-x64-msvc": "20.0.0-canary.20240924-3e1a879",
|
91
|
+
"@nx/nx-linux-arm64-gnu": "20.0.0-canary.20240924-3e1a879",
|
92
|
+
"@nx/nx-linux-arm64-musl": "20.0.0-canary.20240924-3e1a879",
|
93
|
+
"@nx/nx-linux-arm-gnueabihf": "20.0.0-canary.20240924-3e1a879",
|
94
|
+
"@nx/nx-win32-arm64-msvc": "20.0.0-canary.20240924-3e1a879",
|
95
|
+
"@nx/nx-freebsd-x64": "20.0.0-canary.20240924-3e1a879"
|
96
96
|
},
|
97
97
|
"nx-migrations": {
|
98
98
|
"migrations": "./migrations.json",
|
@@ -29,7 +29,7 @@ function installPlugins(repoRoot, plugins, pmc, updatePackageScripts) {
|
|
29
29
|
(0, utils_1.runInstall)(repoRoot, pmc);
|
30
30
|
output_1.output.log({ title: '🔨 Configuring plugins' });
|
31
31
|
for (const plugin of plugins) {
|
32
|
-
(0, child_process_2.execSync)(`${pmc.exec} nx g ${plugin}:init --keepExistingVersions ${updatePackageScripts ? '--updatePackageScripts' : ''}
|
32
|
+
(0, child_process_2.execSync)(`${pmc.exec} nx g ${plugin}:init --keepExistingVersions ${updatePackageScripts ? '--updatePackageScripts' : ''}`, {
|
33
33
|
stdio: [0, 1, 2],
|
34
34
|
cwd: repoRoot,
|
35
35
|
});
|
Binary file
|
@@ -1,3 +1,3 @@
|
|
1
1
|
import { Task } from '../../config/task-graph';
|
2
2
|
export declare function formatFlags(leftPadding: string, flag: string, value: any): string;
|
3
|
-
export declare function formatTargetsAndProjects(projectNames: string[], targets: string[], tasks: Task[]):
|
3
|
+
export declare function formatTargetsAndProjects(projectNames: string[], targets: string[], tasks: Task[]): string;
|
@@ -20,24 +20,36 @@ function formatValue(value) {
|
|
20
20
|
}
|
21
21
|
}
|
22
22
|
function formatTargetsAndProjects(projectNames, targets, tasks) {
|
23
|
-
|
24
|
-
|
25
|
-
let
|
26
|
-
const
|
27
|
-
|
28
|
-
|
23
|
+
let targetsText = '';
|
24
|
+
let projectsText = '';
|
25
|
+
let dependentTasksText = '';
|
26
|
+
const tasksTargets = new Set();
|
27
|
+
const tasksProjects = new Set();
|
28
|
+
const dependentTasks = new Set();
|
29
|
+
tasks.forEach((task) => {
|
30
|
+
tasksTargets.add(task.target.target);
|
31
|
+
tasksProjects.add(task.target.project);
|
32
|
+
if (!projectNames.includes(task.target.project) ||
|
33
|
+
!targets.includes(task.target.target)) {
|
34
|
+
dependentTasks.add(task);
|
35
|
+
}
|
36
|
+
});
|
37
|
+
targets = targets.filter((t) => tasksTargets.has(t)); // filter out targets that don't exist
|
38
|
+
projectNames = projectNames.filter((p) => tasksProjects.has(p)); // filter out projects that don't exist
|
29
39
|
if (targets.length === 1) {
|
30
|
-
|
40
|
+
targetsText = `target ${output_1.output.bold(targets[0])}`;
|
31
41
|
}
|
32
42
|
else {
|
33
|
-
|
34
|
-
.map((t) => output_1.output.bold(t))
|
35
|
-
.join(', ')} for ${project}`;
|
43
|
+
targetsText = `targets ${targets.map((t) => output_1.output.bold(t)).join(', ')}`;
|
36
44
|
}
|
37
|
-
|
38
|
-
|
39
|
-
if (dependentTasks > 0) {
|
40
|
-
text += ` and ${output_1.output.bold(dependentTasks)} ${dependentTasks === 1 ? 'task' : 'tasks'} ${projectNames.length === 1 ? 'it depends on' : 'they depend on'}`;
|
45
|
+
if (projectNames.length === 1) {
|
46
|
+
projectsText = `project ${projectNames[0]}`;
|
41
47
|
}
|
42
|
-
|
48
|
+
else {
|
49
|
+
projectsText = `${projectNames.length} projects`;
|
50
|
+
}
|
51
|
+
if (dependentTasks.size > 0) {
|
52
|
+
dependentTasksText = ` and ${output_1.output.bold(dependentTasks.size)} ${dependentTasks.size === 1 ? 'task' : 'tasks'} ${projectNames.length === 1 ? 'it depends on' : 'they depend on'}`;
|
53
|
+
}
|
54
|
+
return `${targetsText} for ${projectsText}${dependentTasksText}`;
|
43
55
|
}
|
@@ -31,6 +31,9 @@ class TaskHistoryLifeCycle {
|
|
31
31
|
}
|
32
32
|
async endCommand() {
|
33
33
|
const entries = Array.from(this.taskRuns);
|
34
|
+
if (!this.taskHistory) {
|
35
|
+
return;
|
36
|
+
}
|
34
37
|
await this.taskHistory.recordTaskRuns(entries.map(([_, v]) => v));
|
35
38
|
const flakyTasks = await this.taskHistory.getFlakyTasks(entries.map(([hash]) => hash));
|
36
39
|
if (flakyTasks.length > 0) {
|
@@ -13,7 +13,7 @@ class TasksSchedule {
|
|
13
13
|
this.notScheduledTaskGraph = this.taskGraph;
|
14
14
|
this.reverseTaskDeps = (0, utils_1.calculateReverseDeps)(this.taskGraph);
|
15
15
|
this.reverseProjectGraph = (0, operators_1.reverse)(this.projectGraph);
|
16
|
-
this.taskHistory =
|
16
|
+
this.taskHistory = (0, task_history_1.getTaskHistory)();
|
17
17
|
this.scheduledBatches = [];
|
18
18
|
this.scheduledTasks = [];
|
19
19
|
this.runningTasks = new Set();
|
@@ -12,6 +12,6 @@ export declare class TaskHistory {
|
|
12
12
|
}
|
13
13
|
/**
|
14
14
|
* This function returns the singleton instance of TaskHistory
|
15
|
-
* @returns singleton instance of TaskHistory
|
15
|
+
* @returns singleton instance of TaskHistory, null if database is disabled or WASM is not enabled
|
16
16
|
*/
|
17
|
-
export declare function getTaskHistory(): TaskHistory;
|
17
|
+
export declare function getTaskHistory(): TaskHistory | null;
|
@@ -38,9 +38,12 @@ exports.TaskHistory = TaskHistory;
|
|
38
38
|
let taskHistory;
|
39
39
|
/**
|
40
40
|
* This function returns the singleton instance of TaskHistory
|
41
|
-
* @returns singleton instance of TaskHistory
|
41
|
+
* @returns singleton instance of TaskHistory, null if database is disabled or WASM is not enabled
|
42
42
|
*/
|
43
43
|
function getTaskHistory() {
|
44
|
+
if (process.env.NX_DISABLE_DB === 'true' || !native_1.IS_WASM) {
|
45
|
+
return null;
|
46
|
+
}
|
44
47
|
if (!taskHistory) {
|
45
48
|
taskHistory = new TaskHistory();
|
46
49
|
}
|