nx 22.5.0-beta.2 → 22.5.0-beta.4
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/README.md +3 -3
- package/package.json +13 -13
- package/src/ai/constants.d.ts +1 -0
- package/src/ai/constants.d.ts.map +1 -1
- package/src/ai/constants.js +4 -0
- package/src/ai/set-up-ai-agents/set-up-ai-agents.d.ts.map +1 -1
- package/src/ai/set-up-ai-agents/set-up-ai-agents.js +22 -0
- package/src/command-line/configure-ai-agents/configure-ai-agents.d.ts.map +1 -1
- package/src/command-line/configure-ai-agents/configure-ai-agents.js +77 -43
- package/src/command-line/nx-commands.js +1 -1
- package/src/command-line/release/changelog/version-plan-filtering.d.ts +6 -3
- package/src/command-line/release/changelog/version-plan-filtering.d.ts.map +1 -1
- package/src/command-line/release/changelog/version-plan-filtering.js +4 -3
- package/src/command-line/release/changelog.d.ts.map +1 -1
- package/src/command-line/release/changelog.js +11 -9
- package/src/command-line/release/utils/git.d.ts +3 -2
- package/src/command-line/release/utils/git.d.ts.map +1 -1
- package/src/command-line/release/utils/git.js +3 -69
- package/src/command-line/release/utils/release-graph.d.ts +10 -0
- package/src/command-line/release/utils/release-graph.d.ts.map +1 -1
- package/src/command-line/release/utils/release-graph.js +32 -1
- package/src/command-line/release/utils/repository-git-tags.d.ts +26 -0
- package/src/command-line/release/utils/repository-git-tags.d.ts.map +1 -0
- package/src/command-line/release/utils/repository-git-tags.js +125 -0
- package/src/command-line/release/utils/resolve-semver-specifier.d.ts +2 -1
- package/src/command-line/release/utils/resolve-semver-specifier.d.ts.map +1 -1
- package/src/command-line/release/utils/resolve-semver-specifier.js +2 -2
- package/src/command-line/release/utils/shared.d.ts +3 -2
- package/src/command-line/release/utils/shared.d.ts.map +1 -1
- package/src/command-line/release/utils/shared.js +4 -10
- package/src/command-line/release/version/derive-specifier-from-conventional-commits.d.ts +2 -1
- package/src/command-line/release/version/derive-specifier-from-conventional-commits.d.ts.map +1 -1
- package/src/command-line/release/version/derive-specifier-from-conventional-commits.js +2 -2
- package/src/command-line/release/version/release-group-processor.d.ts.map +1 -1
- package/src/command-line/release/version/release-group-processor.js +1 -1
- package/src/command-line/run/run-one.d.ts +1 -1
- package/src/command-line/run/run-one.d.ts.map +1 -1
- package/src/command-line/run/run-one.js +12 -9
- package/src/core/graph/main.js +1 -1
- package/src/daemon/client/client.js +4 -4
- package/src/daemon/server/server.d.ts.map +1 -1
- package/src/daemon/server/server.js +3 -2
- package/src/daemon/server/shutdown-utils.d.ts.map +1 -1
- package/src/daemon/server/shutdown-utils.js +1 -1
- package/src/executors/run-commands/running-tasks.d.ts.map +1 -1
- package/src/executors/run-commands/running-tasks.js +4 -4
- package/src/hasher/hash-task.d.ts +3 -3
- package/src/hasher/hash-task.d.ts.map +1 -1
- package/src/hasher/hash-task.js +24 -5
- package/src/hasher/native-task-hasher-impl.d.ts +1 -1
- package/src/hasher/native-task-hasher-impl.d.ts.map +1 -1
- package/src/hasher/native-task-hasher-impl.js +2 -2
- package/src/hasher/task-hasher.d.ts +4 -1
- package/src/hasher/task-hasher.d.ts.map +1 -1
- package/src/hasher/task-hasher.js +1 -0
- package/src/native/index.d.ts +18 -2
- package/src/native/nx.wasi.cjs +29 -28
- package/src/native/nx.wasm32-wasi.wasm +0 -0
- package/src/project-graph/plugins/get-plugins.d.ts.map +1 -1
- package/src/project-graph/plugins/get-plugins.js +81 -11
- package/src/project-graph/plugins/isolation/plugin-pool.d.ts.map +1 -1
- package/src/project-graph/plugins/isolation/plugin-pool.js +78 -27
- package/src/project-graph/plugins/isolation/plugin-worker.js +33 -17
- package/src/project-graph/project-graph.js +1 -1
- package/src/tasks-runner/cache.d.ts +2 -2
- package/src/tasks-runner/cache.d.ts.map +1 -1
- package/src/tasks-runner/cache.js +14 -11
- package/src/tasks-runner/forked-process-task-runner.d.ts +3 -3
- package/src/tasks-runner/forked-process-task-runner.d.ts.map +1 -1
- package/src/tasks-runner/forked-process-task-runner.js +12 -11
- package/src/tasks-runner/process-metrics-service.d.ts +2 -2
- package/src/tasks-runner/process-metrics-service.d.ts.map +1 -1
- package/src/tasks-runner/process-metrics-service.js +2 -2
- package/src/tasks-runner/run-command.d.ts.map +1 -1
- package/src/tasks-runner/task-io-service.d.ts +97 -0
- package/src/tasks-runner/task-io-service.d.ts.map +1 -0
- package/src/tasks-runner/task-io-service.js +146 -0
- package/src/utils/consume-messages-from-socket.d.ts.map +1 -1
- package/src/utils/consume-messages-from-socket.js +3 -1
- package/src/utils/promised-based-queue.d.ts +0 -7
- package/src/utils/promised-based-queue.d.ts.map +1 -1
- package/src/utils/promised-based-queue.js +0 -9
|
@@ -5,6 +5,7 @@ import { type NxReleaseConfig } from '../config/config';
|
|
|
5
5
|
import type { ReleaseGroupWithName } from '../config/filter-release-groups';
|
|
6
6
|
import { ProjectLogger } from '../version/project-logger';
|
|
7
7
|
import { type AfterAllProjectsVersioned, type VersionActions } from '../version/version-actions';
|
|
8
|
+
import { GetLatestGitTagForPatternOptions, GitCommit } from './git';
|
|
8
9
|
/**
|
|
9
10
|
* Final configuration for a project after applying release group and project level overrides
|
|
10
11
|
*/
|
|
@@ -89,6 +90,13 @@ export declare class ReleaseGraph {
|
|
|
89
90
|
}[]>;
|
|
90
91
|
readonly releaseGroupToFilteredProjects: Map<ReleaseGroupWithName, Set<string>>;
|
|
91
92
|
private originalFilteredProjects;
|
|
93
|
+
/**
|
|
94
|
+
* Store the affected graph per commit per project
|
|
95
|
+
* to avoid recomputation of the graph on workspace
|
|
96
|
+
* with multiple projects
|
|
97
|
+
*/
|
|
98
|
+
private affectedGraphPerCommit;
|
|
99
|
+
private repositoryGitTags;
|
|
92
100
|
/**
|
|
93
101
|
* User-friendly log describing what the filter matched.
|
|
94
102
|
* Null if no filters were applied.
|
|
@@ -201,6 +209,8 @@ export declare class ReleaseGraph {
|
|
|
201
209
|
* Check if a project will be processed
|
|
202
210
|
*/
|
|
203
211
|
isProjectToProcess(projectName: string): boolean;
|
|
212
|
+
resolveAffectedFilesPerCommitInProjectGraph(commit: GitCommit, projectGraph: ProjectGraph): Promise<ProjectGraph>;
|
|
213
|
+
resolveRepositoryTags(resolveTagsWhen: GetLatestGitTagForPatternOptions['checkAllBranchesWhen']): Promise<string[]>;
|
|
204
214
|
/**
|
|
205
215
|
* Runs validation on resolved VersionActions instances. E.g. check that manifest files exist for all projects that will be processed.
|
|
206
216
|
* This should be called after preVersionCommand has run, as those commands may create manifest files that are needed for versioning.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"release-graph.d.ts","sourceRoot":"","sources":["../../../../../../../packages/nx/src/command-line/release/utils/release-graph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,4BAA4B,EAC5B,6BAA6B,EAC9B,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EACV,YAAY,EAEb,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"release-graph.d.ts","sourceRoot":"","sources":["../../../../../../../packages/nx/src/command-line/release/utils/release-graph.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,12 +2,15 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ReleaseGraph = exports.validReleaseVersionPrefixes = void 0;
|
|
4
4
|
exports.createReleaseGraph = createReleaseGraph;
|
|
5
|
+
const affected_project_graph_1 = require("../../../project-graph/affected/affected-project-graph");
|
|
6
|
+
const file_utils_1 = require("../../../project-graph/file-utils");
|
|
5
7
|
const config_1 = require("../config/config");
|
|
6
8
|
const project_logger_1 = require("../version/project-logger");
|
|
7
9
|
const resolve_current_version_1 = require("../version/resolve-current-version");
|
|
8
10
|
const topological_sort_1 = require("../version/topological-sort");
|
|
9
11
|
const version_actions_1 = require("../version/version-actions");
|
|
10
12
|
const git_1 = require("./git");
|
|
13
|
+
const repository_git_tags_1 = require("./repository-git-tags");
|
|
11
14
|
const shared_1 = require("./shared");
|
|
12
15
|
exports.validReleaseVersionPrefixes = ['auto', '', '~', '^', '='];
|
|
13
16
|
/**
|
|
@@ -40,6 +43,13 @@ class ReleaseGraph {
|
|
|
40
43
|
this.originalDependentProjectsPerProject = new Map();
|
|
41
44
|
this.releaseGroupToFilteredProjects = new Map();
|
|
42
45
|
this.originalFilteredProjects = new Set();
|
|
46
|
+
/**
|
|
47
|
+
* Store the affected graph per commit per project
|
|
48
|
+
* to avoid recomputation of the graph on workspace
|
|
49
|
+
* with multiple projects
|
|
50
|
+
*/
|
|
51
|
+
this.affectedGraphPerCommit = new Map();
|
|
52
|
+
this.repositoryGitTags = repository_git_tags_1.RepoGitTags.create();
|
|
43
53
|
/**
|
|
44
54
|
* User-friendly log describing what the filter matched.
|
|
45
55
|
* Null if no filters were applied.
|
|
@@ -375,7 +385,7 @@ class ReleaseGraph {
|
|
|
375
385
|
latestMatchingGitTag = await (0, git_1.getLatestGitTagForPattern)(releaseTagPattern, {
|
|
376
386
|
projectName: (0, git_1.sanitizeProjectNameForGitTag)(projectGraphNode.name),
|
|
377
387
|
releaseGroupName: releaseGroupNode.group.name,
|
|
378
|
-
}, {
|
|
388
|
+
}, this.resolveRepositoryTags.bind(this), {
|
|
379
389
|
checkAllBranchesWhen: releaseGroupNode.group.releaseTag.checkAllBranchesWhen,
|
|
380
390
|
preid: preid,
|
|
381
391
|
requireSemver: releaseGroupNode.group.releaseTag.requireSemver,
|
|
@@ -629,6 +639,27 @@ Valid values are: ${exports.validReleaseVersionPrefixes
|
|
|
629
639
|
isProjectToProcess(projectName) {
|
|
630
640
|
return this.allProjectsToProcess.has(projectName);
|
|
631
641
|
}
|
|
642
|
+
async resolveAffectedFilesPerCommitInProjectGraph(commit, projectGraph) {
|
|
643
|
+
// Try to get the graph associated with the commit shortHash
|
|
644
|
+
// if not available, calculate it and store it in the cache
|
|
645
|
+
const { shortHash } = commit;
|
|
646
|
+
let affectedGraph = this.affectedGraphPerCommit.get(shortHash);
|
|
647
|
+
if (affectedGraph) {
|
|
648
|
+
return affectedGraph;
|
|
649
|
+
}
|
|
650
|
+
// Convert affectedFiles to FileChange[] format with proper diff computation
|
|
651
|
+
const touchedFiles = (0, file_utils_1.calculateFileChanges)(commit.affectedFiles, {
|
|
652
|
+
base: `${commit.shortHash}^`,
|
|
653
|
+
head: commit.shortHash,
|
|
654
|
+
});
|
|
655
|
+
// Use the same affected detection logic as `nx affected`
|
|
656
|
+
affectedGraph = await (0, affected_project_graph_1.filterAffected)(projectGraph, touchedFiles);
|
|
657
|
+
this.affectedGraphPerCommit.set(shortHash, affectedGraph);
|
|
658
|
+
return affectedGraph;
|
|
659
|
+
}
|
|
660
|
+
async resolveRepositoryTags(resolveTagsWhen) {
|
|
661
|
+
return this.repositoryGitTags.resolveTags(resolveTagsWhen);
|
|
662
|
+
}
|
|
632
663
|
/**
|
|
633
664
|
* Runs validation on resolved VersionActions instances. E.g. check that manifest files exist for all projects that will be processed.
|
|
634
665
|
* This should be called after preVersionCommand has run, as those commands may create manifest files that are needed for versioning.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* When to check all branches for git tags instead of just merged branches.
|
|
3
|
+
* - `boolean`: true = all branches, false = merged only
|
|
4
|
+
* - `string[]`: Check all branches if current branch matches any pattern
|
|
5
|
+
*/
|
|
6
|
+
export type CheckAllBranchesWhen = boolean | string[];
|
|
7
|
+
/**
|
|
8
|
+
* Caches git tags to avoid redundant git operations during release workflows.
|
|
9
|
+
* Tags are cached per branch strategy ('single-branch' vs 'all-branches').
|
|
10
|
+
*/
|
|
11
|
+
export declare class RepoGitTags {
|
|
12
|
+
#private;
|
|
13
|
+
/** Creates a new RepoGitTags instance with an empty cache. */
|
|
14
|
+
static create(): RepoGitTags;
|
|
15
|
+
/**
|
|
16
|
+
* Resolves git tags with caching. Fetches from git on cache miss, returns cached tags on hit.
|
|
17
|
+
* Cache key is determined by whether to check all branches or only merged branches.
|
|
18
|
+
*
|
|
19
|
+
* @param checkAllBranchesWhen - Strategy for checking branches (boolean, array of patterns, or undefined)
|
|
20
|
+
* @returns Promise resolving to array of git tags
|
|
21
|
+
*/
|
|
22
|
+
resolveTags(checkAllBranchesWhen?: CheckAllBranchesWhen): Promise<string[]>;
|
|
23
|
+
/** Clears the tag cache. Useful for testing or forcing a fresh fetch. */
|
|
24
|
+
clean(): void;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=repository-git-tags.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repository-git-tags.d.ts","sourceRoot":"","sources":["../../../../../../../packages/nx/src/command-line/release/utils/repository-git-tags.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG,OAAO,GAAG,MAAM,EAAE,CAAC;AAEtD;;;GAGG;AACH,qBAAa,WAAW;;IAGtB,8DAA8D;WAChD,MAAM,IAAI,WAAW;IAInC;;;;;;OAMG;IACG,WAAW,CACf,oBAAoB,CAAC,EAAE,oBAAoB,GAC1C,OAAO,CAAC,MAAM,EAAE,CAAC;IAgBpB,yEAAyE;IACzE,KAAK,IAAI,IAAI;CAuGd"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _RepoGitTags_instances, _RepoGitTags_tagsMap, _RepoGitTags_getTags, _RepoGitTags_alwaysCheckAllBranches, _RepoGitTags_getCacheKey;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.RepoGitTags = void 0;
|
|
5
|
+
const tslib_1 = require("tslib");
|
|
6
|
+
const minimatch_1 = require("minimatch");
|
|
7
|
+
const exec_command_1 = require("./exec-command");
|
|
8
|
+
/**
|
|
9
|
+
* Caches git tags to avoid redundant git operations during release workflows.
|
|
10
|
+
* Tags are cached per branch strategy ('single-branch' vs 'all-branches').
|
|
11
|
+
*/
|
|
12
|
+
class RepoGitTags {
|
|
13
|
+
constructor() {
|
|
14
|
+
_RepoGitTags_instances.add(this);
|
|
15
|
+
_RepoGitTags_tagsMap.set(this, new Map());
|
|
16
|
+
}
|
|
17
|
+
/** Creates a new RepoGitTags instance with an empty cache. */
|
|
18
|
+
static create() {
|
|
19
|
+
return new RepoGitTags();
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Resolves git tags with caching. Fetches from git on cache miss, returns cached tags on hit.
|
|
23
|
+
* Cache key is determined by whether to check all branches or only merged branches.
|
|
24
|
+
*
|
|
25
|
+
* @param checkAllBranchesWhen - Strategy for checking branches (boolean, array of patterns, or undefined)
|
|
26
|
+
* @returns Promise resolving to array of git tags
|
|
27
|
+
*/
|
|
28
|
+
async resolveTags(checkAllBranchesWhen) {
|
|
29
|
+
const alwaysCheckAllBranches = await tslib_1.__classPrivateFieldGet(this, _RepoGitTags_instances, "m", _RepoGitTags_alwaysCheckAllBranches).call(this, checkAllBranchesWhen);
|
|
30
|
+
const cacheKey = tslib_1.__classPrivateFieldGet(this, _RepoGitTags_instances, "m", _RepoGitTags_getCacheKey).call(this, alwaysCheckAllBranches);
|
|
31
|
+
let tags = tslib_1.__classPrivateFieldGet(this, _RepoGitTags_tagsMap, "f").get(cacheKey);
|
|
32
|
+
if (!tags) {
|
|
33
|
+
tags = await tslib_1.__classPrivateFieldGet(this, _RepoGitTags_instances, "m", _RepoGitTags_getTags).call(this, checkAllBranchesWhen, alwaysCheckAllBranches);
|
|
34
|
+
}
|
|
35
|
+
tslib_1.__classPrivateFieldGet(this, _RepoGitTags_tagsMap, "f").set(cacheKey, tags);
|
|
36
|
+
return tags;
|
|
37
|
+
}
|
|
38
|
+
/** Clears the tag cache. Useful for testing or forcing a fresh fetch. */
|
|
39
|
+
clean() {
|
|
40
|
+
tslib_1.__classPrivateFieldGet(this, _RepoGitTags_tagsMap, "f").clear();
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
exports.RepoGitTags = RepoGitTags;
|
|
44
|
+
_RepoGitTags_tagsMap = new WeakMap(), _RepoGitTags_instances = new WeakSet(), _RepoGitTags_getTags =
|
|
45
|
+
/** Fetches tags from git. Falls back to all branches if no merged tags found. */
|
|
46
|
+
async function _RepoGitTags_getTags(checkAllBranchesWhen, alwaysCheckAllBranches) {
|
|
47
|
+
const defaultGitArgs = [
|
|
48
|
+
// Apply git config to take version suffixes into account when sorting, e.g. 1.0.0 is newer than 1.0.0-beta.1
|
|
49
|
+
'-c',
|
|
50
|
+
'versionsort.suffix=-',
|
|
51
|
+
'tag',
|
|
52
|
+
'--sort',
|
|
53
|
+
'-v:refname',
|
|
54
|
+
];
|
|
55
|
+
try {
|
|
56
|
+
let tags = [];
|
|
57
|
+
tags = await (0, exec_command_1.execCommand)('git', [
|
|
58
|
+
...defaultGitArgs,
|
|
59
|
+
...(alwaysCheckAllBranches ? [] : ['--merged']),
|
|
60
|
+
]).then((r) => r
|
|
61
|
+
.trim()
|
|
62
|
+
.split('\n')
|
|
63
|
+
.map((t) => t.trim())
|
|
64
|
+
.filter(Boolean));
|
|
65
|
+
if (
|
|
66
|
+
// Do not run this fallback if the user explicitly set checkAllBranchesWhen to false
|
|
67
|
+
checkAllBranchesWhen !== false &&
|
|
68
|
+
!tags.length &&
|
|
69
|
+
// There is no point in running this fallback if we already checked against all branches
|
|
70
|
+
!alwaysCheckAllBranches) {
|
|
71
|
+
// Try again with all tags instead of just --merged ones
|
|
72
|
+
tags = await (0, exec_command_1.execCommand)('git', defaultGitArgs).then((r) => r
|
|
73
|
+
.trim()
|
|
74
|
+
.split('\n')
|
|
75
|
+
.map((t) => t.trim())
|
|
76
|
+
.filter(Boolean));
|
|
77
|
+
}
|
|
78
|
+
return tags;
|
|
79
|
+
}
|
|
80
|
+
catch (e) {
|
|
81
|
+
return [];
|
|
82
|
+
}
|
|
83
|
+
}, _RepoGitTags_alwaysCheckAllBranches =
|
|
84
|
+
/** Resolves checkAllBranchesWhen to a boolean by checking current branch against patterns. */
|
|
85
|
+
async function _RepoGitTags_alwaysCheckAllBranches(checkAllBranchesWhen) {
|
|
86
|
+
let alwaysCheckAllBranches = false;
|
|
87
|
+
/**
|
|
88
|
+
* By default, we will try and resolve the latest match for the releaseTagPattern from the current branch,
|
|
89
|
+
* falling back to all branches if no match is found on the current branch.
|
|
90
|
+
*
|
|
91
|
+
* - If checkAllBranchesWhen is true it will cause us to ALWAYS check all branches for the latest match.
|
|
92
|
+
* - If checkAllBranchesWhen is explicitly set to false it will cause us to ONLY check the current branch for the latest match.
|
|
93
|
+
* - If checkAllBranchesWhen is an array of strings it will cause us to check all branches WHEN the current branch is one of the strings in the array.
|
|
94
|
+
*/
|
|
95
|
+
if (typeof checkAllBranchesWhen !== 'undefined') {
|
|
96
|
+
if (typeof checkAllBranchesWhen === 'boolean') {
|
|
97
|
+
alwaysCheckAllBranches = checkAllBranchesWhen;
|
|
98
|
+
}
|
|
99
|
+
else if (Array.isArray(checkAllBranchesWhen)) {
|
|
100
|
+
/**
|
|
101
|
+
* Get the current git branch and determine whether to check all branches based on the checkAllBranchesWhen parameter
|
|
102
|
+
*/
|
|
103
|
+
const currentBranch = await (0, exec_command_1.execCommand)('git', [
|
|
104
|
+
'rev-parse',
|
|
105
|
+
'--abbrev-ref',
|
|
106
|
+
'HEAD',
|
|
107
|
+
]).then((r) => r.trim());
|
|
108
|
+
// Check exact match first
|
|
109
|
+
alwaysCheckAllBranches = checkAllBranchesWhen.includes(currentBranch);
|
|
110
|
+
// Check if any glob pattern matches next
|
|
111
|
+
if (!alwaysCheckAllBranches) {
|
|
112
|
+
alwaysCheckAllBranches = checkAllBranchesWhen.some((pattern) => {
|
|
113
|
+
const r = minimatch_1.minimatch.makeRe(pattern, { dot: true });
|
|
114
|
+
if (!r) {
|
|
115
|
+
return false;
|
|
116
|
+
}
|
|
117
|
+
return r.test(currentBranch);
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
return alwaysCheckAllBranches;
|
|
123
|
+
}, _RepoGitTags_getCacheKey = function _RepoGitTags_getCacheKey(checkAllBranches) {
|
|
124
|
+
return checkAllBranches ? 'all-branches' : 'single-branch';
|
|
125
|
+
};
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { ProjectGraph } from '../../../config/project-graph';
|
|
2
2
|
import { NxReleaseConfig } from '../config/config';
|
|
3
3
|
import { SemverBumpType } from '../version/version-actions';
|
|
4
|
+
import { ReleaseGraph } from './release-graph';
|
|
4
5
|
import { SemverSpecifier } from './semver';
|
|
5
|
-
export declare function resolveSemverSpecifierFromConventionalCommits(from: string, projectGraph: ProjectGraph, projectNames: string[], releaseConfig: NxReleaseConfig): Promise<Map<string, SemverSpecifier | null>>;
|
|
6
|
+
export declare function resolveSemverSpecifierFromConventionalCommits(from: string, projectGraph: ProjectGraph, projectNames: string[], releaseConfig: NxReleaseConfig, releaseGraph: ReleaseGraph): Promise<Map<string, SemverSpecifier | null>>;
|
|
6
7
|
export declare function resolveSemverSpecifierFromPrompt(selectionMessage: string, customVersionMessage: string): Promise<SemverBumpType | string>;
|
|
7
8
|
//# sourceMappingURL=resolve-semver-specifier.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-semver-specifier.d.ts","sourceRoot":"","sources":["../../../../../../../packages/nx/src/command-line/release/utils/resolve-semver-specifier.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,EAAyB,eAAe,EAAE,MAAM,UAAU,CAAC;AAGlE,wBAAsB,6CAA6C,CACjE,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,MAAM,EAAE,EACtB,aAAa,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"resolve-semver-specifier.d.ts","sourceRoot":"","sources":["../../../../../../../packages/nx/src/command-line/release/utils/resolve-semver-specifier.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAyB,eAAe,EAAE,MAAM,UAAU,CAAC;AAGlE,wBAAsB,6CAA6C,CACjE,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,MAAM,EAAE,EACtB,aAAa,EAAE,eAAe,EAC9B,YAAY,EAAE,YAAY,GAE5B,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI,CAAC,CAAC,CAc3C;AAED,wBAAsB,gCAAgC,CACpD,gBAAgB,EAAE,MAAM,EACxB,oBAAoB,EAAE,MAAM,GAC3B,OAAO,CAAC,cAAc,GAAG,MAAM,CAAC,CAwClC"}
|
|
@@ -7,10 +7,10 @@ const semver_1 = require("semver");
|
|
|
7
7
|
const git_1 = require("./git");
|
|
8
8
|
const semver_2 = require("./semver");
|
|
9
9
|
const shared_1 = require("./shared");
|
|
10
|
-
async function resolveSemverSpecifierFromConventionalCommits(from, projectGraph, projectNames, releaseConfig) {
|
|
10
|
+
async function resolveSemverSpecifierFromConventionalCommits(from, projectGraph, projectNames, releaseConfig, releaseGraph) {
|
|
11
11
|
const commits = await (0, git_1.getGitDiff)(from);
|
|
12
12
|
const parsedCommits = (0, git_1.parseCommits)(commits);
|
|
13
|
-
const relevantCommits = await (0, shared_1.getCommitsRelevantToProjects)(projectGraph, parsedCommits, projectNames, releaseConfig);
|
|
13
|
+
const relevantCommits = await (0, shared_1.getCommitsRelevantToProjects)(projectGraph, parsedCommits, projectNames, releaseConfig, releaseGraph);
|
|
14
14
|
return (0, semver_2.determineSemverChange)(relevantCommits, releaseConfig.conventionalCommits);
|
|
15
15
|
}
|
|
16
16
|
async function resolveSemverSpecifierFromPrompt(selectionMessage, customVersionMessage) {
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { ProjectGraph } from '../../../config/project-graph';
|
|
2
|
+
import { NxReleaseConfig } from '../config/config';
|
|
2
3
|
import type { ReleaseGroupWithName } from '../config/filter-release-groups';
|
|
3
4
|
import { GitCommit } from './git';
|
|
4
|
-
import {
|
|
5
|
+
import { ReleaseGraph } from './release-graph';
|
|
5
6
|
export declare const noDiffInChangelogMessage: string;
|
|
6
7
|
export type VersionData = Record<string, VersionDataEntry>;
|
|
7
8
|
export interface VersionDataEntry {
|
|
@@ -57,7 +58,7 @@ export declare function shouldSkipVersionActions(dockerOptions: {
|
|
|
57
58
|
}, projectName: string): boolean;
|
|
58
59
|
export declare function createGitTagValues(releaseGroups: ReleaseGroupWithName[], releaseGroupToFilteredProjects: Map<ReleaseGroupWithName, Set<string>>, versionData: VersionData): string[];
|
|
59
60
|
export declare function handleDuplicateGitTags(gitTagValues: string[]): void;
|
|
60
|
-
export declare function getCommitsRelevantToProjects(projectGraph: ProjectGraph, commits: GitCommit[], projects: string[], nxReleaseConfig: NxReleaseConfig): Promise<Map<string, {
|
|
61
|
+
export declare function getCommitsRelevantToProjects(projectGraph: ProjectGraph, commits: GitCommit[], projects: string[], nxReleaseConfig: NxReleaseConfig, releaseGraph: ReleaseGraph): Promise<Map<string, {
|
|
61
62
|
commit: GitCommit;
|
|
62
63
|
isProjectScopedCommit: boolean;
|
|
63
64
|
}[]>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../../../../packages/nx/src/command-line/release/utils/shared.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../../../../packages/nx/src/command-line/release/utils/shared.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,8 +11,6 @@ exports.handleDuplicateGitTags = handleDuplicateGitTags;
|
|
|
11
11
|
exports.getCommitsRelevantToProjects = getCommitsRelevantToProjects;
|
|
12
12
|
const chalk = require("chalk");
|
|
13
13
|
const semver_1 = require("semver");
|
|
14
|
-
const affected_project_graph_1 = require("../../../project-graph/affected/affected-project-graph");
|
|
15
|
-
const file_utils_1 = require("../../../project-graph/file-utils");
|
|
16
14
|
const utils_1 = require("../../../tasks-runner/utils");
|
|
17
15
|
const output_1 = require("../../../utils/output");
|
|
18
16
|
const git_1 = require("./git");
|
|
@@ -301,7 +299,7 @@ function isAutomatedReleaseCommit(message, nxReleaseConfig) {
|
|
|
301
299
|
}
|
|
302
300
|
return false;
|
|
303
301
|
}
|
|
304
|
-
async function getCommitsRelevantToProjects(projectGraph, commits, projects, nxReleaseConfig) {
|
|
302
|
+
async function getCommitsRelevantToProjects(projectGraph, commits, projects, nxReleaseConfig, releaseGraph) {
|
|
305
303
|
const projectSet = new Set(projects);
|
|
306
304
|
const relevantCommits = new Map();
|
|
307
305
|
for (const commit of commits) {
|
|
@@ -309,13 +307,9 @@ async function getCommitsRelevantToProjects(projectGraph, commits, projects, nxR
|
|
|
309
307
|
if (isAutomatedReleaseCommit(commit.message, nxReleaseConfig)) {
|
|
310
308
|
continue;
|
|
311
309
|
}
|
|
312
|
-
//
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
head: commit.shortHash,
|
|
316
|
-
});
|
|
317
|
-
// Use the same affected detection logic as `nx affected`
|
|
318
|
-
const affectedGraph = await (0, affected_project_graph_1.filterAffected)(projectGraph, touchedFiles);
|
|
310
|
+
// Try to get the graph associated with the commit shortHash
|
|
311
|
+
// if not available, calculate it and store it in the cache
|
|
312
|
+
let affectedGraph = await releaseGraph.resolveAffectedFilesPerCommitInProjectGraph(commit, projectGraph);
|
|
319
313
|
for (const projectName of Object.keys(affectedGraph.nodes)) {
|
|
320
314
|
if (projectSet.has(projectName)) {
|
|
321
315
|
if (!relevantCommits.has(projectName)) {
|
|
@@ -2,7 +2,8 @@ import type { ProjectGraph, ProjectGraphProjectNode } from '../../../config/proj
|
|
|
2
2
|
import { NxReleaseConfig } from '../config/config';
|
|
3
3
|
import { ReleaseGroupWithName } from '../config/filter-release-groups';
|
|
4
4
|
import { getLatestGitTagForPattern } from '../utils/git';
|
|
5
|
+
import { ReleaseGraph } from '../utils/release-graph';
|
|
5
6
|
import { ProjectLogger } from './project-logger';
|
|
6
7
|
import { SemverBumpType } from './version-actions';
|
|
7
|
-
export declare function deriveSpecifierFromConventionalCommits(nxReleaseConfig: NxReleaseConfig, projectGraph: ProjectGraph, projectLogger: ProjectLogger, releaseGroup: ReleaseGroupWithName, projectGraphNode: ProjectGraphProjectNode, isPrerelease: boolean, latestMatchingGitTag: Awaited<ReturnType<typeof getLatestGitTagForPattern>> | undefined, fallbackCurrentVersionResolver?: 'disk', preid?: string): Promise<SemverBumpType>;
|
|
8
|
+
export declare function deriveSpecifierFromConventionalCommits(nxReleaseConfig: NxReleaseConfig, projectGraph: ProjectGraph, projectLogger: ProjectLogger, releaseGroup: ReleaseGroupWithName, projectGraphNode: ProjectGraphProjectNode, isPrerelease: boolean, latestMatchingGitTag: Awaited<ReturnType<typeof getLatestGitTagForPattern>> | undefined, releaseGraph: ReleaseGraph, fallbackCurrentVersionResolver?: 'disk', preid?: string): Promise<SemverBumpType>;
|
|
8
9
|
//# sourceMappingURL=derive-specifier-from-conventional-commits.d.ts.map
|
package/src/command-line/release/version/derive-specifier-from-conventional-commits.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"derive-specifier-from-conventional-commits.d.ts","sourceRoot":"","sources":["../../../../../../../packages/nx/src/command-line/release/version/derive-specifier-from-conventional-commits.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,uBAAuB,EACxB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAqB,yBAAyB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"derive-specifier-from-conventional-commits.d.ts","sourceRoot":"","sources":["../../../../../../../packages/nx/src/command-line/release/version/derive-specifier-from-conventional-commits.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,uBAAuB,EACxB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAqB,yBAAyB,EAAE,MAAM,cAAc,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAGtD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,wBAAsB,sCAAsC,CAC1D,eAAe,EAAE,eAAe,EAChC,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,oBAAoB,EAClC,gBAAgB,EAAE,uBAAuB,EAMzC,YAAY,EAAE,OAAO,EACrB,oBAAoB,EAChB,OAAO,CAAC,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAC,GACrD,SAAS,EACb,YAAY,EAAE,YAAY,EAC1B,8BAA8B,CAAC,EAAE,MAAM,EACvC,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,cAAc,CAAC,CAyEzB"}
|
|
@@ -10,7 +10,7 @@ async function deriveSpecifierFromConventionalCommits(nxReleaseConfig, projectGr
|
|
|
10
10
|
// TODO: reevaluate this prerelease logic/workflow for independent projects
|
|
11
11
|
// Always assume that if the current version is a prerelease, then the next version should be a prerelease.
|
|
12
12
|
// Users must manually graduate from a prerelease to a release by providing an explicit specifier.
|
|
13
|
-
isPrerelease, latestMatchingGitTag, fallbackCurrentVersionResolver, preid) {
|
|
13
|
+
isPrerelease, latestMatchingGitTag, releaseGraph, fallbackCurrentVersionResolver, preid) {
|
|
14
14
|
const affectedProjects = releaseGroup.projectsRelationship === 'independent'
|
|
15
15
|
? [projectGraphNode.name]
|
|
16
16
|
: releaseGroup.projects;
|
|
@@ -25,7 +25,7 @@ isPrerelease, latestMatchingGitTag, fallbackCurrentVersionResolver, preid) {
|
|
|
25
25
|
// This should never happen since the checks above should catch if the current version couldn't be resolved
|
|
26
26
|
throw new Error(`Unable to determine previous version ref for the projects ${affectedProjects.join(', ')}. This is likely a bug in Nx.`);
|
|
27
27
|
}
|
|
28
|
-
const projectToSpecifiers = await (0, resolve_semver_specifier_1.resolveSemverSpecifierFromConventionalCommits)(previousVersionRef, projectGraph, affectedProjects, nxReleaseConfig);
|
|
28
|
+
const projectToSpecifiers = await (0, resolve_semver_specifier_1.resolveSemverSpecifierFromConventionalCommits)(previousVersionRef, projectGraph, affectedProjects, nxReleaseConfig, releaseGraph);
|
|
29
29
|
const getHighestSemverChange = (semverSpecifiersItr) => {
|
|
30
30
|
const semverSpecifiers = Array.from(semverSpecifiersItr);
|
|
31
31
|
return semverSpecifiers.sort((a, b) => b - a)[0];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"release-group-processor.d.ts","sourceRoot":"","sources":["../../../../../../../packages/nx/src/command-line/release/version/release-group-processor.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,YAAY,EAEb,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAEhD,OAAO,EAEL,KAAK,eAAe,EACrB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAyB,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE7E,OAAO,KAAK,EAAE,WAAW,EAAoB,MAAM,iBAAiB,CAAC;AAarE,eAAO,MAAM,qBAAqB;;;;;;;;;CAYxB,CAAC;AAEX,UAAU,4BAA4B;IACpC,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,OAAO,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IAEd,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B;;;;OAIG;IACH,OAAO,EAAE;QACP,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;KACnB,CAAC;IAEF,8BAA8B,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC1D;AAED,qBAAa,qBAAqB;IAmC9B,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,OAAO;IAtCjB;;;OAGG;IACH,OAAO,CAAC,eAAe,CAA0B;IAEjD;;;;OAIG;IACH,OAAO,CAAC,cAAc,CAA0B;IAEhD;;OAEG;IACH,OAAO,CAAC,WAAW,CAGL;IAEd;;;OAGG;IACH,OAAO,CAAC,kBAAkB,CAAqB;IAE/C;;;OAGG;IACH,OAAO,CAAC,yBAAyB,CAAqB;gBAG5C,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,YAAY,EAC1B,eAAe,EAAE,eAAe,EAChC,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,4BAA4B;IA+B/C,6BAA6B,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAKjE,YAAY,IAAI,MAAM,GAAG,IAAI;IAcvB,aAAa,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IA4CxC,sBAAsB;IAMtB,+BAA+B,IAAI,IAAI;IAMvC,cAAc,IAAI,WAAW;IAI7B;;;;;;;;;;OAUG;IACG,yBAAyB,CAC7B,yBAAyB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjD,OAAO,CAAC;QACT,YAAY,EAAE,MAAM,EAAE,CAAC;QACvB,YAAY,EAAE,MAAM,EAAE,CAAC;KACxB,CAAC;IA6BI,qBAAqB,CACzB,mBAAmB,CAAC,EAAE,MAAM,EAC5B,aAAa,CAAC,EAAE,MAAM;YA+DV,YAAY;YAWZ,YAAY;YAUZ,qBAAqB;YA+JrB,2BAA2B;YA4E3B,8BAA8B;
|
|
1
|
+
{"version":3,"file":"release-group-processor.d.ts","sourceRoot":"","sources":["../../../../../../../packages/nx/src/command-line/release/version/release-group-processor.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,YAAY,EAEb,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAEhD,OAAO,EAEL,KAAK,eAAe,EACrB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAyB,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE7E,OAAO,KAAK,EAAE,WAAW,EAAoB,MAAM,iBAAiB,CAAC;AAarE,eAAO,MAAM,qBAAqB;;;;;;;;;CAYxB,CAAC;AAEX,UAAU,4BAA4B;IACpC,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,OAAO,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IAEd,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B;;;;OAIG;IACH,OAAO,EAAE;QACP,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;KACnB,CAAC;IAEF,8BAA8B,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC1D;AAED,qBAAa,qBAAqB;IAmC9B,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,OAAO;IAtCjB;;;OAGG;IACH,OAAO,CAAC,eAAe,CAA0B;IAEjD;;;;OAIG;IACH,OAAO,CAAC,cAAc,CAA0B;IAEhD;;OAEG;IACH,OAAO,CAAC,WAAW,CAGL;IAEd;;;OAGG;IACH,OAAO,CAAC,kBAAkB,CAAqB;IAE/C;;;OAGG;IACH,OAAO,CAAC,yBAAyB,CAAqB;gBAG5C,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,YAAY,EAC1B,eAAe,EAAE,eAAe,EAChC,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,4BAA4B;IA+B/C,6BAA6B,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAKjE,YAAY,IAAI,MAAM,GAAG,IAAI;IAcvB,aAAa,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IA4CxC,sBAAsB;IAMtB,+BAA+B,IAAI,IAAI;IAMvC,cAAc,IAAI,WAAW;IAI7B;;;;;;;;;;OAUG;IACG,yBAAyB,CAC7B,yBAAyB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjD,OAAO,CAAC;QACT,YAAY,EAAE,MAAM,EAAE,CAAC;QACvB,YAAY,EAAE,MAAM,EAAE,CAAC;KACxB,CAAC;IA6BI,qBAAqB,CACzB,mBAAmB,CAAC,EAAE,MAAM,EAC5B,aAAa,CAAC,EAAE,MAAM;YA+DV,YAAY;YAWZ,YAAY;YAUZ,qBAAqB;YA+JrB,2BAA2B;YA4E3B,8BAA8B;IAsH5C,OAAO,CAAC,2BAA2B;IAWnC,OAAO,CAAC,0BAA0B;IAUlC,OAAO,CAAC,iCAAiC;IAMzC,OAAO,CAAC,8BAA8B;YAaxB,mBAAmB;YAoBnB,4BAA4B;YA8D5B,qBAAqB;YAgGrB,+BAA+B;IAa7C,OAAO,CAAC,4BAA4B;YAQtB,4BAA4B;IAwB1C,OAAO,CAAC,uBAAuB;IAQ/B,OAAO,CAAC,oBAAoB;IAI5B,OAAO,CAAC,kCAAkC;CAI3C"}
|
|
@@ -383,7 +383,7 @@ class ReleaseGroupProcessor {
|
|
|
383
383
|
const cachedFinalConfigForProject = this.getCachedFinalConfigForProject(projectName);
|
|
384
384
|
if (cachedFinalConfigForProject.specifierSource === 'conventional-commits') {
|
|
385
385
|
const currentVersion = this.getCurrentCachedVersionForProject(projectName);
|
|
386
|
-
const bumpType = await (0, derive_specifier_from_conventional_commits_1.deriveSpecifierFromConventionalCommits)(this.nxReleaseConfig, this.projectGraph, projectLogger, releaseGroup, projectGraphNode, !!semver.prerelease(currentVersion ?? ''), this.releaseGraph.cachedLatestMatchingGitTag.get(projectName), cachedFinalConfigForProject.fallbackCurrentVersionResolver, this.options.preid);
|
|
386
|
+
const bumpType = await (0, derive_specifier_from_conventional_commits_1.deriveSpecifierFromConventionalCommits)(this.nxReleaseConfig, this.projectGraph, projectLogger, releaseGroup, projectGraphNode, !!semver.prerelease(currentVersion ?? ''), this.releaseGraph.cachedLatestMatchingGitTag.get(projectName), this.releaseGraph, cachedFinalConfigForProject.fallbackCurrentVersionResolver, this.options.preid);
|
|
387
387
|
return {
|
|
388
388
|
newVersionInput: bumpType,
|
|
389
389
|
newVersionInputReason: 'CONVENTIONAL_COMMITS',
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ProjectGraph } from '../../config/project-graph';
|
|
2
1
|
import { NxJsonConfiguration } from '../../config/nx-json';
|
|
2
|
+
import { ProjectGraph } from '../../config/project-graph';
|
|
3
3
|
import { TargetDependencyConfig } from '../../config/workspace-json-project-json';
|
|
4
4
|
export declare function runOne(cwd: string, args: {
|
|
5
5
|
[k: string]: any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-one.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/command-line/run/run-one.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"run-one.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/command-line/run/run-one.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EACL,YAAY,EAEb,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AAiBlF,wBAAsB,MAAM,CAC1B,GAAG,EAAE,MAAM,EACX,IAAI,EAAE;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EAC1B,uBAAuB,GAAE,MAAM,CAC7B,MAAM,EACN,CAAC,sBAAsB,GAAG,MAAM,CAAC,EAAE,CAC/B,EACN,YAAY,GAGP;IACH,uBAAuB,EAAE,OAAO,CAAC;IACjC,eAAe,EAAE,OAAO,CAAC;CAC1B,GACA,OAAO,CAAC,IAAI,CAAC,CAiEf;AAwDD,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,MAAM,EACX,UAAU,EAAE;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EAChC,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,mBAAmB,GAC1B;IAAE,OAAO,MAAC;IAAC,MAAM,MAAC;IAAC,aAAa,MAAC;IAAC,UAAU,MAAA;CAAE,CA+DhD"}
|
|
@@ -2,17 +2,17 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.runOne = runOne;
|
|
4
4
|
exports.parseRunOneOptions = parseRunOneOptions;
|
|
5
|
+
const calculate_default_project_name_1 = require("../../config/calculate-default-project-name");
|
|
6
|
+
const configuration_1 = require("../../config/configuration");
|
|
7
|
+
const project_graph_1 = require("../../project-graph/project-graph");
|
|
5
8
|
const run_command_1 = require("../../tasks-runner/run-command");
|
|
6
9
|
const command_line_utils_1 = require("../../utils/command-line-utils");
|
|
7
|
-
const
|
|
8
|
-
const project_graph_1 = require("../../project-graph/project-graph");
|
|
9
|
-
const workspace_root_1 = require("../../utils/workspace-root");
|
|
10
|
-
const split_target_1 = require("../../utils/split-target");
|
|
10
|
+
const find_matching_projects_1 = require("../../utils/find-matching-projects");
|
|
11
11
|
const output_1 = require("../../utils/output");
|
|
12
|
-
const
|
|
13
|
-
const
|
|
12
|
+
const split_target_1 = require("../../utils/split-target");
|
|
13
|
+
const workspace_root_1 = require("../../utils/workspace-root");
|
|
14
14
|
const graph_1 = require("../graph/graph");
|
|
15
|
-
const
|
|
15
|
+
const connect_to_nx_cloud_1 = require("../nx-cloud/connect/connect-to-nx-cloud");
|
|
16
16
|
async function runOne(cwd, args, extraTargetDependencies = {}, extraOptions = {
|
|
17
17
|
excludeTaskDependencies: args.excludeTaskDependencies,
|
|
18
18
|
loadDotEnvFiles: process.env.NX_LOAD_DOT_ENV_FILES !== 'false',
|
|
@@ -27,12 +27,15 @@ async function runOne(cwd, args, extraTargetDependencies = {}, extraOptions = {
|
|
|
27
27
|
configuration: opts.configuration,
|
|
28
28
|
targets: [opts.target],
|
|
29
29
|
}, 'run-one', { printWarnings: args.graph !== 'stdout' }, nxJson);
|
|
30
|
+
const { projects, projectName } = getProjects(projectGraph, opts.project);
|
|
30
31
|
if (nxArgs.help) {
|
|
31
|
-
await (await Promise.resolve().then(() => require('./run'))).printTargetRunHelp(
|
|
32
|
+
await (await Promise.resolve().then(() => require('./run'))).printTargetRunHelp({
|
|
33
|
+
...opts,
|
|
34
|
+
project: projectName,
|
|
35
|
+
}, workspace_root_1.workspaceRoot);
|
|
32
36
|
process.exit(0);
|
|
33
37
|
}
|
|
34
38
|
await (0, connect_to_nx_cloud_1.connectToNxCloudIfExplicitlyAsked)(nxArgs);
|
|
35
|
-
const { projects, projectName } = getProjects(projectGraph, opts.project);
|
|
36
39
|
if (nxArgs.graph) {
|
|
37
40
|
const projectNames = projects.map((t) => t.name);
|
|
38
41
|
const file = (0, command_line_utils_1.readGraphFileFromGraphArg)(nxArgs);
|