nx 22.5.0-beta.2 → 22.5.0-beta.3
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/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/core/graph/main.js +1 -1
- package/src/daemon/client/client.js +4 -4
- 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/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
package/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<p style="text-align: center;">
|
|
2
2
|
<picture>
|
|
3
3
|
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/nrwl/nx/master/images/nx-dark.svg">
|
|
4
|
-
<img alt="Nx - Smart
|
|
4
|
+
<img alt="Nx - Smart Monorepos · Fast Builds" src="https://raw.githubusercontent.com/nrwl/nx/master/images/nx-light.svg" width="100%">
|
|
5
5
|
</picture>
|
|
6
6
|
</p>
|
|
7
7
|
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
|
|
21
21
|
<hr>
|
|
22
22
|
|
|
23
|
-
# Nx: Smart
|
|
23
|
+
# Nx: Smart Monorepos · Fast Builds
|
|
24
24
|
|
|
25
25
|
Get to green PRs in half the time. Nx optimizes your builds, scales your CI, and fixes failed PRs. Built for developers and AI agents.
|
|
26
26
|
|
|
@@ -62,5 +62,5 @@ npx nx@latest init
|
|
|
62
62
|
- [Blog Posts About Nx](https://nx.dev/blog)
|
|
63
63
|
|
|
64
64
|
<p style="text-align: center;"><a href="https://nx.dev/#learning-materials" target="_blank" rel="noreferrer"><img src="https://raw.githubusercontent.com/nrwl/nx/master/images/nx-courses-and-videos.svg"
|
|
65
|
-
width="100%" alt="Nx - Smart
|
|
65
|
+
width="100%" alt="Nx - Smart Monorepos · Fast Builds"></a></p>
|
|
66
66
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nx",
|
|
3
|
-
"version": "22.5.0-beta.
|
|
3
|
+
"version": "22.5.0-beta.3",
|
|
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": {
|
|
@@ -72,8 +72,8 @@
|
|
|
72
72
|
"yargs-parser": "21.1.1"
|
|
73
73
|
},
|
|
74
74
|
"peerDependencies": {
|
|
75
|
-
"@swc-node/register": "
|
|
76
|
-
"@swc/core": "
|
|
75
|
+
"@swc-node/register": "1.11.1",
|
|
76
|
+
"@swc/core": "1.15.8"
|
|
77
77
|
},
|
|
78
78
|
"peerDependenciesMeta": {
|
|
79
79
|
"@swc-node/register": {
|
|
@@ -84,16 +84,16 @@
|
|
|
84
84
|
}
|
|
85
85
|
},
|
|
86
86
|
"optionalDependencies": {
|
|
87
|
-
"@nx/nx-darwin-arm64": "22.5.0-beta.
|
|
88
|
-
"@nx/nx-darwin-x64": "22.5.0-beta.
|
|
89
|
-
"@nx/nx-freebsd-x64": "22.5.0-beta.
|
|
90
|
-
"@nx/nx-linux-arm-gnueabihf": "22.5.0-beta.
|
|
91
|
-
"@nx/nx-linux-arm64-gnu": "22.5.0-beta.
|
|
92
|
-
"@nx/nx-linux-arm64-musl": "22.5.0-beta.
|
|
93
|
-
"@nx/nx-linux-x64-gnu": "22.5.0-beta.
|
|
94
|
-
"@nx/nx-linux-x64-musl": "22.5.0-beta.
|
|
95
|
-
"@nx/nx-win32-arm64-msvc": "22.5.0-beta.
|
|
96
|
-
"@nx/nx-win32-x64-msvc": "22.5.0-beta.
|
|
87
|
+
"@nx/nx-darwin-arm64": "22.5.0-beta.3",
|
|
88
|
+
"@nx/nx-darwin-x64": "22.5.0-beta.3",
|
|
89
|
+
"@nx/nx-freebsd-x64": "22.5.0-beta.3",
|
|
90
|
+
"@nx/nx-linux-arm-gnueabihf": "22.5.0-beta.3",
|
|
91
|
+
"@nx/nx-linux-arm64-gnu": "22.5.0-beta.3",
|
|
92
|
+
"@nx/nx-linux-arm64-musl": "22.5.0-beta.3",
|
|
93
|
+
"@nx/nx-linux-x64-gnu": "22.5.0-beta.3",
|
|
94
|
+
"@nx/nx-linux-x64-musl": "22.5.0-beta.3",
|
|
95
|
+
"@nx/nx-win32-arm64-msvc": "22.5.0-beta.3",
|
|
96
|
+
"@nx/nx-win32-x64-msvc": "22.5.0-beta.3"
|
|
97
97
|
},
|
|
98
98
|
"nx-migrations": {
|
|
99
99
|
"migrations": "./migrations.json",
|
|
@@ -51,7 +51,7 @@ exports.parserConfiguration = {
|
|
|
51
51
|
*/
|
|
52
52
|
exports.commandsObject = yargs
|
|
53
53
|
.parserConfiguration(exports.parserConfiguration)
|
|
54
|
-
.usage(chalk.bold('Smart
|
|
54
|
+
.usage(chalk.bold('Smart Monorepos · Fast Builds'))
|
|
55
55
|
.demandCommand(1, '')
|
|
56
56
|
.command(command_object_1.yargsRegisterCommand)
|
|
57
57
|
.command(command_object_22.yargsAddCommand)
|
|
@@ -2,6 +2,7 @@ import type { ChangelogOptions } from '../command-object';
|
|
|
2
2
|
import type { NxReleaseConfig } from '../config/config';
|
|
3
3
|
import { RawVersionPlan } from '../config/version-plans';
|
|
4
4
|
import type { VersionData } from '../utils/shared';
|
|
5
|
+
import type { CheckAllBranchesWhen, RepoGitTags } from '../utils/repository-git-tags';
|
|
5
6
|
/**
|
|
6
7
|
* Filters version plans to only include those that were committed between the specified SHAs
|
|
7
8
|
* @param versionPlans The raw version plans to filter
|
|
@@ -15,24 +16,26 @@ export declare function filterVersionPlansByCommitRange(versionPlans: RawVersion
|
|
|
15
16
|
* Resolves the "from SHA" for changelog purposes.
|
|
16
17
|
* This determines the starting point for changelog generation and optional version plan filtering.
|
|
17
18
|
*/
|
|
18
|
-
export declare function resolveChangelogFromSHA({ fromRef, tagPattern, tagPatternValues, checkAllBranchesWhen, preid, requireSemver, strictPreid, useAutomaticFromRef, }: {
|
|
19
|
+
export declare function resolveChangelogFromSHA({ fromRef, tagPattern, tagPatternValues, checkAllBranchesWhen, preid, requireSemver, strictPreid, useAutomaticFromRef, resolveRepositoryTags, }: {
|
|
19
20
|
fromRef?: string;
|
|
20
21
|
tagPattern: string;
|
|
21
22
|
tagPatternValues: Record<string, string>;
|
|
22
|
-
checkAllBranchesWhen:
|
|
23
|
+
checkAllBranchesWhen: CheckAllBranchesWhen;
|
|
23
24
|
preid?: string;
|
|
24
25
|
requireSemver: boolean;
|
|
25
26
|
strictPreid: boolean;
|
|
26
27
|
useAutomaticFromRef: boolean;
|
|
28
|
+
resolveRepositoryTags: RepoGitTags['resolveTags'];
|
|
27
29
|
}): Promise<string | null>;
|
|
28
30
|
/**
|
|
29
31
|
* Helper function for workspace-level "from SHA" resolution.
|
|
30
32
|
* Extracts preids and calls the generic resolver.
|
|
31
33
|
*/
|
|
32
|
-
export declare function resolveWorkspaceChangelogFromSHA({ args, nxReleaseConfig, useAutomaticFromRef, }: {
|
|
34
|
+
export declare function resolveWorkspaceChangelogFromSHA({ args, nxReleaseConfig, useAutomaticFromRef, resolveRepositoryTags, }: {
|
|
33
35
|
args: ChangelogOptions;
|
|
34
36
|
nxReleaseConfig: NxReleaseConfig;
|
|
35
37
|
useAutomaticFromRef: boolean;
|
|
38
|
+
resolveRepositoryTags: RepoGitTags['resolveTags'];
|
|
36
39
|
}): Promise<string | null>;
|
|
37
40
|
export declare function extractPreidFromVersion(version: string | null | undefined): string | undefined;
|
|
38
41
|
export declare function extractProjectsPreidFromVersionData(versionData: VersionData | undefined): Record<string, string | undefined> | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version-plan-filtering.d.ts","sourceRoot":"","sources":["../../../../../../../packages/nx/src/command-line/release/changelog/version-plan-filtering.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAOzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"version-plan-filtering.d.ts","sourceRoot":"","sources":["../../../../../../../packages/nx/src/command-line/release/changelog/version-plan-filtering.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAOzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EACV,oBAAoB,EACpB,WAAW,EACZ,MAAM,8BAA8B,CAAC;AAEtC;;;;;;;GAOG;AACH,wBAAsB,+BAA+B,CACnD,YAAY,EAAE,cAAc,EAAE,EAC9B,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,OAAO,GACjB,OAAO,CAAC,cAAc,EAAE,CAAC,CAgC3B;AA0DD;;;GAGG;AACH,wBAAsB,uBAAuB,CAAC,EAC5C,OAAO,EACP,UAAU,EACV,gBAAgB,EAChB,oBAAoB,EACpB,KAAK,EACL,aAAa,EACb,WAAW,EACX,mBAAmB,EACnB,qBAAqB,GACtB,EAAE;IACD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,oBAAoB,EAAE,oBAAoB,CAAC;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,OAAO,CAAC;IACvB,WAAW,EAAE,OAAO,CAAC;IACrB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,qBAAqB,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC;CACnD,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA0BzB;AAED;;;GAGG;AACH,wBAAsB,gCAAgC,CAAC,EACrD,IAAI,EACJ,eAAe,EACf,mBAAmB,EACnB,qBAAqB,GACtB,EAAE;IACD,IAAI,EAAE,gBAAgB,CAAC;IACvB,eAAe,EAAE,eAAe,CAAC;IACjC,mBAAmB,EAAE,OAAO,CAAC;IAC7B,qBAAqB,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC;CACnD,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAezB;AAED,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACjC,MAAM,GAAG,SAAS,CAOpB;AAED,wBAAgB,mCAAmC,CACjD,WAAW,EAAE,WAAW,GAAG,SAAS,GACnC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,SAAS,CAYhD"}
|
|
@@ -89,13 +89,13 @@ async function getFilesAddedInCommitRange(fromSHA, toSHA, isVerbose) {
|
|
|
89
89
|
* Resolves the "from SHA" for changelog purposes.
|
|
90
90
|
* This determines the starting point for changelog generation and optional version plan filtering.
|
|
91
91
|
*/
|
|
92
|
-
async function resolveChangelogFromSHA({ fromRef, tagPattern, tagPatternValues, checkAllBranchesWhen, preid, requireSemver, strictPreid, useAutomaticFromRef, }) {
|
|
92
|
+
async function resolveChangelogFromSHA({ fromRef, tagPattern, tagPatternValues, checkAllBranchesWhen, preid, requireSemver, strictPreid, useAutomaticFromRef, resolveRepositoryTags, }) {
|
|
93
93
|
// If user provided a from ref, resolve it to a SHA
|
|
94
94
|
if (fromRef) {
|
|
95
95
|
return await (0, git_1.getCommitHash)(fromRef);
|
|
96
96
|
}
|
|
97
97
|
// Otherwise, try to resolve it from the latest tag
|
|
98
|
-
const latestTag = await (0, git_1.getLatestGitTagForPattern)(tagPattern, tagPatternValues, {
|
|
98
|
+
const latestTag = await (0, git_1.getLatestGitTagForPattern)(tagPattern, tagPatternValues, resolveRepositoryTags, {
|
|
99
99
|
checkAllBranchesWhen,
|
|
100
100
|
preid,
|
|
101
101
|
requireSemver,
|
|
@@ -114,7 +114,7 @@ async function resolveChangelogFromSHA({ fromRef, tagPattern, tagPatternValues,
|
|
|
114
114
|
* Helper function for workspace-level "from SHA" resolution.
|
|
115
115
|
* Extracts preids and calls the generic resolver.
|
|
116
116
|
*/
|
|
117
|
-
async function resolveWorkspaceChangelogFromSHA({ args, nxReleaseConfig, useAutomaticFromRef, }) {
|
|
117
|
+
async function resolveWorkspaceChangelogFromSHA({ args, nxReleaseConfig, useAutomaticFromRef, resolveRepositoryTags, }) {
|
|
118
118
|
const workspacePreid = extractPreidFromVersion(args.version);
|
|
119
119
|
const projectsPreid = extractProjectsPreidFromVersionData(args.versionData);
|
|
120
120
|
return resolveChangelogFromSHA({
|
|
@@ -126,6 +126,7 @@ async function resolveWorkspaceChangelogFromSHA({ args, nxReleaseConfig, useAuto
|
|
|
126
126
|
requireSemver: nxReleaseConfig.releaseTag.requireSemver,
|
|
127
127
|
strictPreid: nxReleaseConfig.releaseTag.strictPreid,
|
|
128
128
|
useAutomaticFromRef,
|
|
129
|
+
resolveRepositoryTags,
|
|
129
130
|
});
|
|
130
131
|
}
|
|
131
132
|
function extractPreidFromVersion(version) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"changelog.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/command-line/release/changelog.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,sBAAsB,EAAc,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"changelog.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/command-line/release/changelog.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,sBAAsB,EAAc,MAAM,sBAAsB,CAAC;AA8B1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAiCpD,OAAO,EACL,cAAc,EASf,MAAM,gBAAgB,CAAC;AAMxB,MAAM,WAAW,wBAAwB;IACvC,kBAAkB,CAAC,EAAE;QACnB,cAAc,EAAE,cAAc,CAAC;QAC/B,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;KACjC,CAAC;IACF,iBAAiB,CAAC,EAAE;QAClB,CAAC,WAAW,EAAE,MAAM,GAAG;YACrB,cAAc,EAAE,cAAc,CAAC;YAC/B,QAAQ,EAAE,MAAM,CAAC;YACjB,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;SACjC,CAAC;KACH,CAAC;CACH;AAGD,YAAY,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEtE,MAAM,MAAM,WAAW,GAAG,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAElE,eAAO,MAAM,0BAA0B,GAAI,MAAM,gBAAgB,oBACH,CAAC;AAE/D,wBAAgB,SAAS,CACvB,qBAAqB,EAAE,sBAAsB,EAC7C,kBAAkB,EAAE,OAAO,IAQzB,MAAM,gBAAgB,KACrB,OAAO,CAAC,wBAAwB,CAAC,CAohBrC"}
|
|
@@ -17,6 +17,9 @@ const is_ci_1 = require("../../utils/is-ci");
|
|
|
17
17
|
const output_1 = require("../../utils/output");
|
|
18
18
|
const path_1 = require("../../utils/path");
|
|
19
19
|
const workspace_root_1 = require("../../utils/workspace-root");
|
|
20
|
+
const commit_utils_1 = require("./changelog/commit-utils");
|
|
21
|
+
const version_plan_filtering_1 = require("./changelog/version-plan-filtering");
|
|
22
|
+
const version_plan_utils_1 = require("./changelog/version-plan-utils");
|
|
20
23
|
const config_1 = require("./config/config");
|
|
21
24
|
const deep_merge_json_1 = require("./config/deep-merge-json");
|
|
22
25
|
const version_plans_1 = require("./config/version-plans");
|
|
@@ -30,10 +33,7 @@ const remote_release_client_1 = require("./utils/remote-release-clients/remote-r
|
|
|
30
33
|
const resolve_changelog_renderer_1 = require("./utils/resolve-changelog-renderer");
|
|
31
34
|
const resolve_nx_json_error_message_1 = require("./utils/resolve-nx-json-error-message");
|
|
32
35
|
const shared_1 = require("./utils/shared");
|
|
33
|
-
const
|
|
34
|
-
const version_plan_utils_2 = require("./changelog/version-plan-utils");
|
|
35
|
-
const commit_utils_1 = require("./changelog/commit-utils");
|
|
36
|
-
const version_plan_filtering_1 = require("./changelog/version-plan-filtering");
|
|
36
|
+
const version_plan_utils_2 = require("./utils/version-plan-utils");
|
|
37
37
|
const releaseChangelogCLIHandler = (args) => (0, handle_errors_1.handleErrors)(args.verbose, () => createAPI({}, false)(args));
|
|
38
38
|
exports.releaseChangelogCLIHandler = releaseChangelogCLIHandler;
|
|
39
39
|
function createAPI(overrideReleaseConfig, ignoreNxJsonConfig) {
|
|
@@ -139,6 +139,7 @@ function createAPI(overrideReleaseConfig, ignoreNxJsonConfig) {
|
|
|
139
139
|
args,
|
|
140
140
|
nxReleaseConfig,
|
|
141
141
|
useAutomaticFromRef,
|
|
142
|
+
resolveRepositoryTags: releaseGraph.resolveRepositoryTags.bind(releaseGraph),
|
|
142
143
|
});
|
|
143
144
|
// Filter version plans based on resolveVersionPlans option
|
|
144
145
|
const shouldFilterVersionPlans = args.resolveVersionPlans === 'using-from-and-to';
|
|
@@ -151,7 +152,7 @@ function createAPI(overrideReleaseConfig, ignoreNxJsonConfig) {
|
|
|
151
152
|
// Set resolved version plans on groups
|
|
152
153
|
await (0, version_plans_1.setResolvedVersionPlansOnGroups)(rawVersionPlans, releaseGraph.releaseGroups, Object.keys(projectGraph.nodes), args.verbose);
|
|
153
154
|
// Validate version plans against the filter after resolution
|
|
154
|
-
const versionPlanValidationError = (0,
|
|
155
|
+
const versionPlanValidationError = (0, version_plan_utils_2.validateResolvedVersionPlansAgainstFilter)(releaseGraph.releaseGroups, releaseGraph.releaseGroupToFilteredProjects);
|
|
155
156
|
if (versionPlanValidationError) {
|
|
156
157
|
output_1.output.error(versionPlanValidationError);
|
|
157
158
|
process.exit(1);
|
|
@@ -220,6 +221,7 @@ function createAPI(overrideReleaseConfig, ignoreNxJsonConfig) {
|
|
|
220
221
|
fromRef: args.from,
|
|
221
222
|
tagPattern: pattern,
|
|
222
223
|
tagPatternValues: templateValues,
|
|
224
|
+
resolveRepositoryTags: releaseGraph.resolveRepositoryTags.bind(releaseGraph),
|
|
223
225
|
checkAllBranchesWhen,
|
|
224
226
|
preid,
|
|
225
227
|
requireSemver,
|
|
@@ -286,7 +288,7 @@ function createAPI(overrideReleaseConfig, ignoreNxJsonConfig) {
|
|
|
286
288
|
for (const project of projectNodes) {
|
|
287
289
|
let changes = null;
|
|
288
290
|
if (releaseGroup.resolvedVersionPlans) {
|
|
289
|
-
changes = (0,
|
|
291
|
+
changes = (0, version_plan_utils_1.createChangesFromProjectsVersionPlans)(releaseGroup.resolvedVersionPlans, project.name);
|
|
290
292
|
}
|
|
291
293
|
else {
|
|
292
294
|
const projectCacheKey = `${releaseGroup.name}:${project.name}`;
|
|
@@ -350,7 +352,7 @@ function createAPI(overrideReleaseConfig, ignoreNxJsonConfig) {
|
|
|
350
352
|
let changes = [];
|
|
351
353
|
if (releaseGroup.resolvedVersionPlans) {
|
|
352
354
|
// This is identical to workspace changelog for fixed groups
|
|
353
|
-
changes = (0,
|
|
355
|
+
changes = (0, version_plan_utils_1.createChangesFromGroupVersionPlans)(releaseGroup.resolvedVersionPlans);
|
|
354
356
|
}
|
|
355
357
|
else {
|
|
356
358
|
const groupCacheKey = `${releaseGroup.name}:fixed`;
|
|
@@ -488,7 +490,7 @@ async function applyChangesAndExit(args, nxReleaseConfig, tree, toSHA, postGitTa
|
|
|
488
490
|
const plansToDelete = [];
|
|
489
491
|
for (const plan of group.resolvedVersionPlans) {
|
|
490
492
|
// Only delete if ALL projects in the version plan are being filtered/released
|
|
491
|
-
if ((0,
|
|
493
|
+
if ((0, version_plan_utils_2.areAllVersionPlanProjectsFiltered)(plan, group, filteredProjects)) {
|
|
492
494
|
plansToDelete.push(plan);
|
|
493
495
|
}
|
|
494
496
|
}
|
|
@@ -860,7 +862,7 @@ function resolveWorkspaceChangelogFromVersionPlans(releaseGraph) {
|
|
|
860
862
|
return [];
|
|
861
863
|
}
|
|
862
864
|
const versionPlans = firstReleaseGroup.resolvedVersionPlans;
|
|
863
|
-
return (0,
|
|
865
|
+
return (0, version_plan_utils_1.createChangesFromGroupVersionPlans)(versionPlans);
|
|
864
866
|
}
|
|
865
867
|
async function resolveWorkspaceChangelogFromCommits({ nxReleaseConfig, args, workspacePreid, projectsPreid, useAutomaticFromRef, toSHA, fromSHA, }) {
|
|
866
868
|
// Use the cached fromSHA if available, otherwise throw an error
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { CheckAllBranchesWhen, RepoGitTags } from './repository-git-tags';
|
|
1
2
|
export interface GitCommitAuthor {
|
|
2
3
|
name: string;
|
|
3
4
|
email: string;
|
|
@@ -27,7 +28,7 @@ export interface GitCommit extends RawGitCommit {
|
|
|
27
28
|
revertedHashes: string[];
|
|
28
29
|
}
|
|
29
30
|
export interface GetLatestGitTagForPatternOptions {
|
|
30
|
-
checkAllBranchesWhen?:
|
|
31
|
+
checkAllBranchesWhen?: CheckAllBranchesWhen;
|
|
31
32
|
preid?: string;
|
|
32
33
|
requireSemver: boolean;
|
|
33
34
|
strictPreid: boolean;
|
|
@@ -71,7 +72,7 @@ export declare function extractTagAndVersion(tag: string, tagRegexp: string, opt
|
|
|
71
72
|
*
|
|
72
73
|
* @returns The tag and version
|
|
73
74
|
*/
|
|
74
|
-
export declare function getLatestGitTagForPattern(releaseTagPattern: string, additionalInterpolationData: {}, options: GetLatestGitTagForPatternOptions): Promise<GitTagAndVersion | null>;
|
|
75
|
+
export declare function getLatestGitTagForPattern(releaseTagPattern: string, additionalInterpolationData: {}, resolveTags: RepoGitTags['resolveTags'], options: GetLatestGitTagForPatternOptions): Promise<GitTagAndVersion | null>;
|
|
75
76
|
export declare function getGitDiff(from: string | undefined, to?: string): Promise<RawGitCommit[]>;
|
|
76
77
|
export declare function gitAdd({ changedFiles, deletedFiles, dryRun, verbose, logFn, cwd, }: {
|
|
77
78
|
changedFiles?: string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../../../../../../packages/nx/src/command-line/release/utils/git.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../../../../../../packages/nx/src/command-line/release/utils/git.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,7 +20,6 @@ exports.getFirstGitCommit = getFirstGitCommit;
|
|
|
20
20
|
* https://github.com/unjs/changelogen
|
|
21
21
|
*/
|
|
22
22
|
const node_path_1 = require("node:path");
|
|
23
|
-
const minimatch_1 = require("minimatch");
|
|
24
23
|
const semver_1 = require("semver");
|
|
25
24
|
const utils_1 = require("../../../tasks-runner/utils");
|
|
26
25
|
const workspace_root_1 = require("../../../utils/workspace-root");
|
|
@@ -101,75 +100,10 @@ function extractTagAndVersion(tag, tagRegexp, options) {
|
|
|
101
100
|
*
|
|
102
101
|
* @returns The tag and version
|
|
103
102
|
*/
|
|
104
|
-
async function getLatestGitTagForPattern(releaseTagPattern, additionalInterpolationData = {}, options) {
|
|
105
|
-
const {
|
|
106
|
-
/**
|
|
107
|
-
* By default, we will try and resolve the latest match for the releaseTagPattern from the current branch,
|
|
108
|
-
* falling back to all branches if no match is found on the current branch.
|
|
109
|
-
*
|
|
110
|
-
* - If checkAllBranchesWhen is true it will cause us to ALWAYS check all branches for the latest match.
|
|
111
|
-
* - If checkAllBranchesWhen is explicitly set to false it will cause us to ONLY check the current branch for the latest match.
|
|
112
|
-
* - 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.
|
|
113
|
-
*/
|
|
114
|
-
let alwaysCheckAllBranches = false;
|
|
115
|
-
if (typeof checkAllBranchesWhen !== 'undefined') {
|
|
116
|
-
if (typeof checkAllBranchesWhen === 'boolean') {
|
|
117
|
-
alwaysCheckAllBranches = checkAllBranchesWhen;
|
|
118
|
-
}
|
|
119
|
-
else if (Array.isArray(checkAllBranchesWhen)) {
|
|
120
|
-
/**
|
|
121
|
-
* Get the current git branch and determine whether to check all branches based on the checkAllBranchesWhen parameter
|
|
122
|
-
*/
|
|
123
|
-
const currentBranch = await (0, exec_command_1.execCommand)('git', [
|
|
124
|
-
'rev-parse',
|
|
125
|
-
'--abbrev-ref',
|
|
126
|
-
'HEAD',
|
|
127
|
-
]).then((r) => r.trim());
|
|
128
|
-
// Check exact match first
|
|
129
|
-
alwaysCheckAllBranches = checkAllBranchesWhen.includes(currentBranch);
|
|
130
|
-
// Check if any glob pattern matches next
|
|
131
|
-
if (!alwaysCheckAllBranches) {
|
|
132
|
-
alwaysCheckAllBranches = checkAllBranchesWhen.some((pattern) => {
|
|
133
|
-
const r = minimatch_1.minimatch.makeRe(pattern, { dot: true });
|
|
134
|
-
if (!r) {
|
|
135
|
-
return false;
|
|
136
|
-
}
|
|
137
|
-
return r.test(currentBranch);
|
|
138
|
-
});
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
const defaultGitArgs = [
|
|
143
|
-
// Apply git config to take version suffixes into account when sorting, e.g. 1.0.0 is newer than 1.0.0-beta.1
|
|
144
|
-
'-c',
|
|
145
|
-
'versionsort.suffix=-',
|
|
146
|
-
'tag',
|
|
147
|
-
'--sort',
|
|
148
|
-
'-v:refname',
|
|
149
|
-
];
|
|
103
|
+
async function getLatestGitTagForPattern(releaseTagPattern, additionalInterpolationData = {}, resolveTags, options) {
|
|
104
|
+
const { requireSemver, strictPreid, preid, checkAllBranchesWhen } = options;
|
|
150
105
|
try {
|
|
151
|
-
let tags;
|
|
152
|
-
tags = await (0, exec_command_1.execCommand)('git', [
|
|
153
|
-
...defaultGitArgs,
|
|
154
|
-
...(alwaysCheckAllBranches ? [] : ['--merged']),
|
|
155
|
-
]).then((r) => r
|
|
156
|
-
.trim()
|
|
157
|
-
.split('\n')
|
|
158
|
-
.map((t) => t.trim())
|
|
159
|
-
.filter(Boolean));
|
|
160
|
-
if (
|
|
161
|
-
// Do not run this fallback if the user explicitly set checkAllBranchesWhen to false
|
|
162
|
-
checkAllBranchesWhen !== false &&
|
|
163
|
-
!tags.length &&
|
|
164
|
-
// There is no point in running this fallback if we already checked against all branches
|
|
165
|
-
!alwaysCheckAllBranches) {
|
|
166
|
-
// try again, but include all tags on the repo instead of just --merged ones
|
|
167
|
-
tags = await (0, exec_command_1.execCommand)('git', defaultGitArgs).then((r) => r
|
|
168
|
-
.trim()
|
|
169
|
-
.split('\n')
|
|
170
|
-
.map((t) => t.trim())
|
|
171
|
-
.filter(Boolean));
|
|
172
|
-
}
|
|
106
|
+
let tags = await resolveTags(checkAllBranchesWhen);
|
|
173
107
|
if (!tags.length) {
|
|
174
108
|
return null;
|
|
175
109
|
}
|
|
@@ -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"}
|