nx 22.0.0-beta.1 → 22.0.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/migrations.json +5 -0
- package/package.json +12 -12
- package/project.json +2 -1
- package/schemas/nx-schema.json +339 -246
- package/schemas/project-schema.json +72 -12
- package/src/adapter/angular-json.d.ts.map +1 -1
- package/src/adapter/angular-json.js +13 -17
- package/src/ai/utils.d.ts +6 -5
- package/src/ai/utils.d.ts.map +1 -1
- package/src/ai/utils.js +14 -13
- package/src/command-line/affected/affected.d.ts.map +1 -1
- package/src/command-line/affected/affected.js +1 -2
- 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 +79 -74
- package/src/command-line/format/format.js +1 -1
- package/src/command-line/init/init-v2.js +1 -1
- package/src/command-line/release/changelog.d.ts.map +1 -1
- package/src/command-line/release/changelog.js +1 -3
- package/src/command-line/release/command-object.d.ts +0 -6
- package/src/command-line/release/command-object.d.ts.map +1 -1
- package/src/command-line/release/config/config.d.ts +1 -1
- package/src/command-line/release/config/config.d.ts.map +1 -1
- package/src/command-line/release/config/config.js +41 -133
- package/src/command-line/release/plan-check.d.ts.map +1 -1
- package/src/command-line/release/plan-check.js +1 -3
- package/src/command-line/release/plan.d.ts.map +1 -1
- package/src/command-line/release/plan.js +1 -3
- package/src/command-line/release/publish.d.ts.map +1 -1
- package/src/command-line/release/publish.js +1 -3
- package/src/command-line/release/release.d.ts.map +1 -1
- package/src/command-line/release/release.js +1 -3
- package/src/command-line/release/utils/get-touched-projects-for-group.js +1 -1
- package/src/command-line/release/utils/git.d.ts.map +1 -1
- package/src/command-line/release/utils/git.js +3 -1
- 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/semver.d.ts +15 -9
- package/src/command-line/release/utils/semver.d.ts.map +1 -1
- package/src/command-line/release/utils/semver.js +30 -24
- package/src/command-line/release/utils/shared.d.ts +4 -1
- package/src/command-line/release/utils/shared.d.ts.map +1 -1
- package/src/command-line/release/utils/shared.js +33 -11
- package/src/command-line/release/utils/test/test-utils.d.ts +20 -0
- package/src/command-line/release/utils/test/test-utils.d.ts.map +1 -0
- package/src/command-line/release/utils/test/test-utils.js +24 -0
- 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 +10 -1
- 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 -2
- package/src/command-line/release/version/test-utils.d.ts.map +1 -1
- package/src/command-line/release/version/test-utils.js +0 -4
- package/src/command-line/release/version.d.ts.map +1 -1
- package/src/command-line/release/version.js +1 -8
- package/src/command-line/show/projects.js +1 -2
- package/src/config/nx-json.d.ts +2 -31
- package/src/config/nx-json.d.ts.map +1 -1
- package/src/config/workspace-json-project-json.d.ts +2 -2
- package/src/config/workspace-json-project-json.d.ts.map +1 -1
- package/src/core/graph/main.js +1 -1
- package/src/core/graph/styles.js +1 -1
- package/src/devkit-exports.d.ts +1 -1
- package/src/devkit-exports.d.ts.map +1 -1
- package/src/migrations/update-21-0-0/release-changelog-config-changes.d.ts.map +1 -1
- package/src/migrations/update-21-0-0/release-version-config-changes.d.ts.map +1 -1
- package/src/migrations/update-21-0-0/release-version-config-changes.js +5 -15
- package/src/migrations/update-22-0-0/release-version-config-changes.d.ts +3 -0
- package/src/migrations/update-22-0-0/release-version-config-changes.d.ts.map +1 -0
- package/src/migrations/update-22-0-0/release-version-config-changes.js +101 -0
- package/src/native/index.d.ts +2 -2
- package/src/native/nx.wasm32-wasi.wasm +0 -0
- package/src/plugins/js/index.d.ts +1 -2
- package/src/plugins/js/index.d.ts.map +1 -1
- package/src/plugins/js/index.js +28 -32
- package/src/plugins/js/lock-file/lock-file.d.ts +2 -2
- package/src/plugins/js/lock-file/lock-file.d.ts.map +1 -1
- package/src/plugins/js/project-graph/build-dependencies/target-project-locator.js +1 -1
- package/src/project-graph/file-utils.d.ts +5 -2
- package/src/project-graph/file-utils.d.ts.map +1 -1
- package/src/project-graph/file-utils.js +1 -5
- package/src/project-graph/plugins/loaded-nx-plugin.d.ts.map +1 -1
- package/src/project-graph/plugins/loaded-nx-plugin.js +8 -6
- package/src/project-graph/plugins/public-api.d.ts +1 -36
- package/src/project-graph/plugins/public-api.d.ts.map +1 -1
- package/src/project-graph/plugins/utils.d.ts +4 -2
- package/src/project-graph/plugins/utils.d.ts.map +1 -1
- package/src/utils/nx-console-prompt.d.ts.map +1 -1
- package/src/utils/nx-console-prompt.js +4 -1
- package/src/command-line/release/config/use-legacy-versioning.d.ts +0 -3
- package/src/command-line/release/config/use-legacy-versioning.d.ts.map +0 -1
- package/src/command-line/release/config/use-legacy-versioning.js +0 -9
- package/src/command-line/release/utils/batch-projects-by-generator-config.d.ts +0 -8
- package/src/command-line/release/utils/batch-projects-by-generator-config.d.ts.map +0 -1
- package/src/command-line/release/utils/batch-projects-by-generator-config.js +0 -39
- package/src/command-line/release/version-legacy.d.ts +0 -47
- package/src/command-line/release/version-legacy.d.ts.map +0 -1
- package/src/command-line/release/version-legacy.js +0 -453
package/schemas/nx-schema.json
CHANGED
|
@@ -87,7 +87,14 @@
|
|
|
87
87
|
"default": true
|
|
88
88
|
},
|
|
89
89
|
"autoExit": {
|
|
90
|
-
"oneOf": [
|
|
90
|
+
"oneOf": [
|
|
91
|
+
{
|
|
92
|
+
"type": "boolean"
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
"type": "number"
|
|
96
|
+
}
|
|
97
|
+
],
|
|
91
98
|
"description": "Whether to exit the TUI automatically after all tasks finish. If set to `true`, the TUI will exit immediately. If set to `false` the TUI will not automatically exit. If set to a number, an interruptible countdown popup will be shown for that many seconds before the TUI exits.",
|
|
92
99
|
"default": 3
|
|
93
100
|
}
|
|
@@ -153,93 +160,90 @@
|
|
|
153
160
|
},
|
|
154
161
|
"groups": {
|
|
155
162
|
"type": "object",
|
|
156
|
-
"
|
|
157
|
-
"
|
|
158
|
-
|
|
159
|
-
"
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
"
|
|
173
|
-
"items": {
|
|
174
|
-
"type": "string"
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
]
|
|
178
|
-
},
|
|
179
|
-
"version": {
|
|
180
|
-
"$ref": "#/definitions/NxReleaseGroupVersionConfiguration"
|
|
181
|
-
},
|
|
182
|
-
"changelog": {
|
|
183
|
-
"oneOf": [
|
|
184
|
-
{
|
|
185
|
-
"$ref": "#/definitions/NxReleaseChangelogConfiguration"
|
|
186
|
-
},
|
|
187
|
-
{
|
|
188
|
-
"type": "boolean"
|
|
189
|
-
}
|
|
190
|
-
]
|
|
191
|
-
},
|
|
192
|
-
"releaseTagPattern": {
|
|
193
|
-
"type": "string",
|
|
194
|
-
"description": "Optionally override the git/release tag pattern to use for this group."
|
|
195
|
-
},
|
|
196
|
-
"releaseTagPatternCheckAllBranchesWhen": {
|
|
197
|
-
"oneOf": [
|
|
198
|
-
{
|
|
199
|
-
"type": "boolean"
|
|
200
|
-
},
|
|
201
|
-
{
|
|
202
|
-
"type": "array",
|
|
203
|
-
"items": {
|
|
204
|
-
"type": "string"
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
],
|
|
208
|
-
"description": "By default, we will try and resolve the latest match for the releaseTagPattern from the current branch, falling back to all branches if no match is found on the current branch. Setting this to true will cause us to ALWAYS check all branches for the latest match. Setting it to false will cause us to ONLY check the current branch for the latest match. Setting it to an array of strings will cause us to check all branches WHEN the current branch is one of the strings in the array. Glob patterns are supported."
|
|
209
|
-
},
|
|
210
|
-
"releaseTagPatternRequireSemver": {
|
|
211
|
-
"type": "boolean",
|
|
212
|
-
"description": "Whether to require semver to be used for the release tag pattern. If set to false, the release tag pattern will not be checked for semver compliance."
|
|
213
|
-
},
|
|
214
|
-
"releaseTagPatternStrictPreid": {
|
|
215
|
-
"$ref": "#/definitions/NxReleaseReleaseTagPatternStrictPreidConfiguration"
|
|
216
|
-
},
|
|
217
|
-
"versionPlans": {
|
|
218
|
-
"oneOf": [
|
|
219
|
-
{
|
|
220
|
-
"$ref": "#/definitions/NxReleaseVersionPlansConfiguration"
|
|
221
|
-
},
|
|
222
|
-
{
|
|
223
|
-
"type": "boolean",
|
|
224
|
-
"description": "Enables using version plans as a specifier source for versioning and to determine changes for changelog generation."
|
|
163
|
+
"properties": {
|
|
164
|
+
"projectsRelationship": {
|
|
165
|
+
"type": "string",
|
|
166
|
+
"enum": ["fixed", "independent"]
|
|
167
|
+
},
|
|
168
|
+
"projects": {
|
|
169
|
+
"oneOf": [
|
|
170
|
+
{
|
|
171
|
+
"type": "string",
|
|
172
|
+
"description": "A project name"
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
"type": "array",
|
|
176
|
+
"description": "An array of project names",
|
|
177
|
+
"minItems": 1,
|
|
178
|
+
"items": {
|
|
179
|
+
"type": "string"
|
|
225
180
|
}
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
181
|
+
}
|
|
182
|
+
]
|
|
183
|
+
},
|
|
184
|
+
"version": {
|
|
185
|
+
"$ref": "#/definitions/NxReleaseGroupVersionConfiguration"
|
|
186
|
+
},
|
|
187
|
+
"changelog": {
|
|
188
|
+
"oneOf": [
|
|
189
|
+
{
|
|
190
|
+
"$ref": "#/definitions/NxReleaseChangelogConfiguration"
|
|
191
|
+
},
|
|
192
|
+
{
|
|
193
|
+
"type": "boolean"
|
|
194
|
+
}
|
|
195
|
+
]
|
|
196
|
+
},
|
|
197
|
+
"releaseTagPattern": {
|
|
198
|
+
"type": "string",
|
|
199
|
+
"description": "Optionally override the git/release tag pattern to use for this group."
|
|
200
|
+
},
|
|
201
|
+
"releaseTagPatternCheckAllBranchesWhen": {
|
|
202
|
+
"oneOf": [
|
|
203
|
+
{
|
|
204
|
+
"type": "boolean"
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
"type": "array",
|
|
208
|
+
"items": {
|
|
209
|
+
"type": "string"
|
|
237
210
|
}
|
|
238
|
-
|
|
239
|
-
|
|
211
|
+
}
|
|
212
|
+
],
|
|
213
|
+
"description": "By default, we will try and resolve the latest match for the releaseTagPattern from the current branch, falling back to all branches if no match is found on the current branch. Setting this to true will cause us to ALWAYS check all branches for the latest match. Setting it to false will cause us to ONLY check the current branch for the latest match. Setting it to an array of strings will cause us to check all branches WHEN the current branch is one of the strings in the array. Glob patterns are supported."
|
|
240
214
|
},
|
|
241
|
-
"
|
|
242
|
-
|
|
215
|
+
"releaseTagPatternRequireSemver": {
|
|
216
|
+
"type": "boolean",
|
|
217
|
+
"description": "Whether to require semver to be used for the release tag pattern. If set to false, the release tag pattern will not be checked for semver compliance."
|
|
218
|
+
},
|
|
219
|
+
"releaseTagPatternStrictPreid": {
|
|
220
|
+
"$ref": "#/definitions/NxReleaseReleaseTagPatternStrictPreidConfiguration"
|
|
221
|
+
},
|
|
222
|
+
"versionPlans": {
|
|
223
|
+
"oneOf": [
|
|
224
|
+
{
|
|
225
|
+
"$ref": "#/definitions/NxReleaseVersionPlansConfiguration"
|
|
226
|
+
},
|
|
227
|
+
{
|
|
228
|
+
"type": "boolean",
|
|
229
|
+
"description": "Enables using version plans as a specifier source for versioning and to determine changes for changelog generation."
|
|
230
|
+
}
|
|
231
|
+
]
|
|
232
|
+
},
|
|
233
|
+
"docker": {
|
|
234
|
+
"oneOf": [
|
|
235
|
+
{
|
|
236
|
+
"type": "boolean",
|
|
237
|
+
"enum": [true],
|
|
238
|
+
"description": "Enable docker configuration with default settings. Warning: Docker support is experimental. Breaking changes may occur and not adhere to semver versioning. "
|
|
239
|
+
},
|
|
240
|
+
{
|
|
241
|
+
"$ref": "#/definitions/NxReleaseGroupDockerConfiguration"
|
|
242
|
+
}
|
|
243
|
+
]
|
|
244
|
+
}
|
|
245
|
+
},
|
|
246
|
+
"required": ["projects"]
|
|
243
247
|
},
|
|
244
248
|
"changelog": {
|
|
245
249
|
"type": "object",
|
|
@@ -752,181 +756,240 @@
|
|
|
752
756
|
},
|
|
753
757
|
"NxReleaseVersionConfiguration": {
|
|
754
758
|
"type": "object",
|
|
755
|
-
"$comment": "The configuration for versioning is dynamic depending on the value of the useLegacyVersioning property. Through trial and error the best in editor DX seems to come from having the if/else at the top level and explicitly include all possible properties and apply additionalProperties false in each case.",
|
|
756
759
|
"description": "Configuration for the versioning phase of releases.",
|
|
757
|
-
"
|
|
758
|
-
|
|
759
|
-
"
|
|
760
|
-
"
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
}
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
"
|
|
768
|
-
"
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
"
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
"
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
"manifestRootsToUpdate": {
|
|
792
|
-
"type": "array",
|
|
793
|
-
"items": {
|
|
794
|
-
"oneOf": [
|
|
795
|
-
{
|
|
796
|
-
"type": "string",
|
|
797
|
-
"description": "Path to the directory containing a manifest file to update. Supports placeholders like {projectRoot} and {projectName}."
|
|
798
|
-
},
|
|
799
|
-
{
|
|
800
|
-
"type": "object",
|
|
801
|
-
"properties": {
|
|
802
|
-
"path": {
|
|
803
|
-
"type": "string",
|
|
804
|
-
"description": "Path to the directory containing a manifest file to update. Supports placeholders like {projectRoot} and {projectName}."
|
|
805
|
-
},
|
|
806
|
-
"preserveLocalDependencyProtocols": {
|
|
807
|
-
"type": "boolean",
|
|
808
|
-
"description": "Whether to preserve local dependency references using protocols like 'workspace:' or 'file:'. Set this to false for dist files that need to be published if not using a package manager that swaps references at publish time like pnpm or bun.",
|
|
809
|
-
"default": true
|
|
810
|
-
}
|
|
760
|
+
"additionalProperties": false,
|
|
761
|
+
"properties": {
|
|
762
|
+
"conventionalCommits": {
|
|
763
|
+
"type": "boolean",
|
|
764
|
+
"description": "Shorthand for enabling the current version of projects to be resolved from git tags, and the next version to be determined by analyzing commit messages according to the Conventional Commits specification.",
|
|
765
|
+
"default": false
|
|
766
|
+
},
|
|
767
|
+
"git": {
|
|
768
|
+
"$ref": "#/definitions/NxReleaseGitConfiguration"
|
|
769
|
+
},
|
|
770
|
+
"preVersionCommand": {
|
|
771
|
+
"type": "string",
|
|
772
|
+
"description": "A command to run after validation of nx release configuration, but before versioning begins. Useful for preparing build artifacts. If --dry-run is passed, the command is still executed, but with the NX_DRY_RUN environment variable set to 'true'."
|
|
773
|
+
},
|
|
774
|
+
"specifierSource": {
|
|
775
|
+
"type": "string",
|
|
776
|
+
"enum": ["prompt", "conventional-commits", "version-plans"],
|
|
777
|
+
"default": "prompt",
|
|
778
|
+
"description": "The source to use for determining the specifier to use when versioning. 'prompt' is the default and will interactively prompt the user for an explicit/imperative specifier. 'conventional-commits' will attempt determine a specifier from commit messages conforming to the Conventional Commits specification. 'version-plans' will determine the specifier from the version plan files available on disk."
|
|
779
|
+
},
|
|
780
|
+
"manifestRootsToUpdate": {
|
|
781
|
+
"type": "array",
|
|
782
|
+
"items": {
|
|
783
|
+
"oneOf": [
|
|
784
|
+
{
|
|
785
|
+
"type": "string",
|
|
786
|
+
"description": "Path to the directory containing a manifest file to update. Supports placeholders like {projectRoot} and {projectName}."
|
|
787
|
+
},
|
|
788
|
+
{
|
|
789
|
+
"type": "object",
|
|
790
|
+
"properties": {
|
|
791
|
+
"path": {
|
|
792
|
+
"type": "string",
|
|
793
|
+
"description": "Path to the directory containing a manifest file to update. Supports placeholders like {projectRoot} and {projectName}."
|
|
811
794
|
},
|
|
812
|
-
"
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
"description": "The resolver to use for determining the current version of a project during versioning. This is needed for versioning approaches which involve relatively modifying a current version to arrive at a new version, such as semver bumps like 'patch', 'minor' etc. Using 'none' explicitly declares that the current version is not needed to compute the new version, and should only be used with appropriate version actions implementations that support it."
|
|
823
|
-
},
|
|
824
|
-
"currentVersionResolverMetadata": {
|
|
825
|
-
"type": "object",
|
|
826
|
-
"additionalProperties": true,
|
|
827
|
-
"description": "Metadata to provide to the configured currentVersionResolver to help it in determining the current version. What to pass here is specific to each resolver."
|
|
828
|
-
},
|
|
829
|
-
"fallbackCurrentVersionResolver": {
|
|
830
|
-
"type": "string",
|
|
831
|
-
"enum": ["disk"],
|
|
832
|
-
"description": "The fallback version resolver to use when the configured currentVersionResolver fails to resolve the current version."
|
|
833
|
-
},
|
|
834
|
-
"versionPrefix": {
|
|
835
|
-
"type": "string",
|
|
836
|
-
"enum": ["auto", "", "~", "^", "="],
|
|
837
|
-
"default": "auto",
|
|
838
|
-
"description": "The prefix to use when versioning dependencies. This can be one of the following: auto, '', '~', '^', '=', where auto means the existing prefix will be preserved."
|
|
839
|
-
},
|
|
840
|
-
"deleteVersionPlans": {
|
|
841
|
-
"type": "boolean",
|
|
842
|
-
"description": "Whether to delete the processed version plans file after versioning is complete. This is false by default because the version plans are also needed for changelog generation.",
|
|
843
|
-
"default": false
|
|
844
|
-
},
|
|
845
|
-
"updateDependents": {
|
|
846
|
-
"type": "string",
|
|
847
|
-
"enum": ["never", "auto"],
|
|
848
|
-
"default": "auto",
|
|
849
|
-
"description": "When versioning independent projects, this controls whether to update their dependents (i.e. the things that depend on them). 'never' means no dependents will be updated (unless they happen to be versioned directly as well). 'auto' is the default and will cause dependents to be updated (a patch version bump) when a dependency is versioned."
|
|
850
|
-
},
|
|
851
|
-
"logUnchangedProjects": {
|
|
852
|
-
"type": "boolean",
|
|
853
|
-
"description": "Whether to log projects that have not changed during versioning.",
|
|
854
|
-
"default": true
|
|
855
|
-
},
|
|
856
|
-
"preserveLocalDependencyProtocols": {
|
|
857
|
-
"type": "boolean",
|
|
858
|
-
"description": "Whether to preserve local dependency protocols (e.g. file references, or the `workspace:` protocol in package.json files) of local dependencies when updating them during versioning. This was false by default in legacy versioning, but is true by default now.",
|
|
859
|
-
"default": true
|
|
860
|
-
},
|
|
861
|
-
"preserveMatchingDependencyRanges": {
|
|
862
|
-
"type": ["boolean", "array"],
|
|
863
|
-
"description": "Whether to preserve matching dependency ranges when updating them during versioning. This is false by default. (e.g. The new version will be '1.2.0' and the current version range in dependents is already '^1.0.0'. Therefore, the manifest file is not updated.)",
|
|
864
|
-
"default": false,
|
|
865
|
-
"items": {
|
|
866
|
-
"type": "string",
|
|
867
|
-
"enum": [
|
|
868
|
-
"dependencies",
|
|
869
|
-
"devDependencies",
|
|
870
|
-
"peerDependencies",
|
|
871
|
-
"optionalDependencies"
|
|
872
|
-
]
|
|
873
|
-
}
|
|
874
|
-
},
|
|
875
|
-
"versionActions": {
|
|
876
|
-
"type": "string",
|
|
877
|
-
"description": "The path to the version actions implementation to use for releasing all projects by default. This can also be overridden on the release group and project levels.",
|
|
878
|
-
"default": "@nx/js/src/release"
|
|
879
|
-
},
|
|
880
|
-
"versionActionsOptions": {
|
|
881
|
-
"type": "object",
|
|
882
|
-
"description": "The specific options that are defined by each version actions implementation. They will be passed to the version actions implementation when running a release.",
|
|
883
|
-
"additionalProperties": true
|
|
884
|
-
}
|
|
885
|
-
}
|
|
886
|
-
},
|
|
887
|
-
"else": {
|
|
888
|
-
"properties": {
|
|
889
|
-
"useLegacyVersioning": {
|
|
890
|
-
"type": "boolean",
|
|
891
|
-
"description": "Whether to use the legacy versioning strategy. This value was true in Nx v20 and became false in Nx v21. The legacy versioning implementation will be removed in Nx v22, as will this flag.",
|
|
892
|
-
"default": false
|
|
893
|
-
},
|
|
894
|
-
"conventionalCommits": {
|
|
895
|
-
"type": "boolean",
|
|
896
|
-
"description": "Shorthand for enabling the current version of projects to be resolved from git tags, and the next version to be determined by analyzing commit messages according to the Conventional Commits specification.",
|
|
897
|
-
"default": false
|
|
898
|
-
},
|
|
899
|
-
"git": {
|
|
900
|
-
"$ref": "#/definitions/NxReleaseGitConfiguration"
|
|
901
|
-
},
|
|
902
|
-
"preVersionCommand": {
|
|
903
|
-
"type": "string",
|
|
904
|
-
"description": "A command to run after validation of nx release configuration, but before versioning begins. Useful for preparing build artifacts. If --dry-run is passed, the command is still executed, but with the NX_DRY_RUN environment variable set to 'true'."
|
|
795
|
+
"preserveLocalDependencyProtocols": {
|
|
796
|
+
"type": "boolean",
|
|
797
|
+
"description": "Whether to preserve local dependency references using protocols like 'workspace:' or 'file:'. Set this to false for dist files that need to be published if not using a package manager that swaps references at publish time like pnpm or bun.",
|
|
798
|
+
"default": true
|
|
799
|
+
}
|
|
800
|
+
},
|
|
801
|
+
"required": ["path"],
|
|
802
|
+
"additionalProperties": false
|
|
803
|
+
}
|
|
804
|
+
]
|
|
905
805
|
},
|
|
906
|
-
"
|
|
806
|
+
"description": "A list of directories containing manifest files (such as package.json) to apply updates to when versioning. By default, only the project root will be used, but you could customize this to only version a manifest in a dist directory, or even version multiple manifests in different directories, such as both source and dist."
|
|
807
|
+
},
|
|
808
|
+
"currentVersionResolver": {
|
|
809
|
+
"type": "string",
|
|
810
|
+
"enum": ["registry", "disk", "git-tag", "none"],
|
|
811
|
+
"description": "The resolver to use for determining the current version of a project during versioning. This is needed for versioning approaches which involve relatively modifying a current version to arrive at a new version, such as semver bumps like 'patch', 'minor' etc. Using 'none' explicitly declares that the current version is not needed to compute the new version, and should only be used with appropriate version actions implementations that support it."
|
|
812
|
+
},
|
|
813
|
+
"currentVersionResolverMetadata": {
|
|
814
|
+
"type": "object",
|
|
815
|
+
"additionalProperties": true,
|
|
816
|
+
"description": "Metadata to provide to the configured currentVersionResolver to help it in determining the current version. What to pass here is specific to each resolver."
|
|
817
|
+
},
|
|
818
|
+
"fallbackCurrentVersionResolver": {
|
|
819
|
+
"type": "string",
|
|
820
|
+
"enum": ["disk"],
|
|
821
|
+
"description": "The fallback version resolver to use when the configured currentVersionResolver fails to resolve the current version."
|
|
822
|
+
},
|
|
823
|
+
"versionPrefix": {
|
|
824
|
+
"type": "string",
|
|
825
|
+
"enum": ["auto", "", "~", "^", "="],
|
|
826
|
+
"default": "auto",
|
|
827
|
+
"description": "The prefix to use when versioning dependencies. This can be one of the following: auto, '', '~', '^', '=', where auto means the existing prefix will be preserved."
|
|
828
|
+
},
|
|
829
|
+
"deleteVersionPlans": {
|
|
830
|
+
"type": "boolean",
|
|
831
|
+
"description": "Whether to delete the processed version plans file after versioning is complete. This is false by default because the version plans are also needed for changelog generation.",
|
|
832
|
+
"default": false
|
|
833
|
+
},
|
|
834
|
+
"updateDependents": {
|
|
835
|
+
"type": "string",
|
|
836
|
+
"enum": ["never", "auto"],
|
|
837
|
+
"default": "auto",
|
|
838
|
+
"description": "When versioning independent projects, this controls whether to update their dependents (i.e. the things that depend on them). 'never' means no dependents will be updated (unless they happen to be versioned directly as well). 'auto' is the default and will cause dependents to be updated (a patch version bump) when a dependency is versioned."
|
|
839
|
+
},
|
|
840
|
+
"logUnchangedProjects": {
|
|
841
|
+
"type": "boolean",
|
|
842
|
+
"description": "Whether to log projects that have not changed during versioning.",
|
|
843
|
+
"default": true
|
|
844
|
+
},
|
|
845
|
+
"preserveLocalDependencyProtocols": {
|
|
846
|
+
"type": "boolean",
|
|
847
|
+
"description": "Whether to preserve local dependency protocols (e.g. file references, or the `workspace:` protocol in package.json files) of local dependencies when updating them during versioning.",
|
|
848
|
+
"default": true
|
|
849
|
+
},
|
|
850
|
+
"preserveMatchingDependencyRanges": {
|
|
851
|
+
"type": ["boolean", "array"],
|
|
852
|
+
"description": "Whether to preserve matching dependency ranges when updating them during versioning. This is false by default. (e.g. The new version will be '1.2.0' and the current version range in dependents is already '^1.0.0'. Therefore, the manifest file is not updated.)",
|
|
853
|
+
"default": false,
|
|
854
|
+
"items": {
|
|
907
855
|
"type": "string",
|
|
908
|
-
"
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
"additionalProperties": true
|
|
856
|
+
"enum": [
|
|
857
|
+
"dependencies",
|
|
858
|
+
"devDependencies",
|
|
859
|
+
"peerDependencies",
|
|
860
|
+
"optionalDependencies"
|
|
861
|
+
]
|
|
915
862
|
}
|
|
916
863
|
},
|
|
917
|
-
"
|
|
864
|
+
"versionActions": {
|
|
865
|
+
"type": "string",
|
|
866
|
+
"description": "The path to the version actions implementation to use for releasing all projects by default. This can also be overridden on the release group and project levels.",
|
|
867
|
+
"default": "@nx/js/src/release"
|
|
868
|
+
},
|
|
869
|
+
"versionActionsOptions": {
|
|
870
|
+
"type": "object",
|
|
871
|
+
"description": "The specific options that are defined by each version actions implementation. They will be passed to the version actions implementation when running a release.",
|
|
872
|
+
"additionalProperties": true
|
|
873
|
+
}
|
|
918
874
|
}
|
|
919
875
|
},
|
|
920
876
|
"NxReleaseGroupVersionConfiguration": {
|
|
921
877
|
"type": "object",
|
|
922
|
-
"$comment": "We need to improve this configuration definition to be more precise once legacy versioning is removed. Right now it needs to be left open and runtime validation will ensure correct behavior.",
|
|
923
878
|
"properties": {
|
|
924
879
|
"groupPreVersionCommand": {
|
|
925
880
|
"type": "string",
|
|
926
881
|
"description": "A command to run after validation of nx release configuration AND after the release.version.preVersionCommand (if any), but before versioning begins for this specific group. Useful for preparing build artifacts for the group. If --dry-run is passed, the command is still executed, but with the NX_DRY_RUN environment variable set to 'true'."
|
|
882
|
+
},
|
|
883
|
+
"conventionalCommits": {
|
|
884
|
+
"type": "boolean",
|
|
885
|
+
"description": "Shorthand for enabling the current version of projects to be resolved from git tags, and the next version to be determined by analyzing commit messages according to the Conventional Commits specification.",
|
|
886
|
+
"default": false
|
|
887
|
+
},
|
|
888
|
+
"git": {
|
|
889
|
+
"$ref": "#/definitions/NxReleaseGitConfiguration"
|
|
890
|
+
},
|
|
891
|
+
"specifierSource": {
|
|
892
|
+
"type": "string",
|
|
893
|
+
"enum": ["prompt", "conventional-commits", "version-plans"],
|
|
894
|
+
"default": "prompt",
|
|
895
|
+
"description": "The source to use for determining the specifier to use when versioning. 'prompt' is the default and will interactively prompt the user for an explicit/imperative specifier. 'conventional-commits' will attempt determine a specifier from commit messages conforming to the Conventional Commits specification. 'version-plans' will determine the specifier from the version plan files available on disk."
|
|
896
|
+
},
|
|
897
|
+
"manifestRootsToUpdate": {
|
|
898
|
+
"type": "array",
|
|
899
|
+
"items": {
|
|
900
|
+
"oneOf": [
|
|
901
|
+
{
|
|
902
|
+
"type": "string",
|
|
903
|
+
"description": "Path to the directory containing a manifest file to update. Supports placeholders like {projectRoot} and {projectName}."
|
|
904
|
+
},
|
|
905
|
+
{
|
|
906
|
+
"type": "object",
|
|
907
|
+
"properties": {
|
|
908
|
+
"path": {
|
|
909
|
+
"type": "string",
|
|
910
|
+
"description": "Path to the directory containing a manifest file to update. Supports placeholders like {projectRoot} and {projectName}."
|
|
911
|
+
},
|
|
912
|
+
"preserveLocalDependencyProtocols": {
|
|
913
|
+
"type": "boolean",
|
|
914
|
+
"description": "Whether to preserve local dependency references using protocols like 'workspace:' or 'file:'. Set this to false for dist files that need to be published if not using a package manager that swaps references at publish time like pnpm or bun.",
|
|
915
|
+
"default": true
|
|
916
|
+
}
|
|
917
|
+
},
|
|
918
|
+
"required": ["path"],
|
|
919
|
+
"additionalProperties": false
|
|
920
|
+
}
|
|
921
|
+
]
|
|
922
|
+
},
|
|
923
|
+
"description": "A list of directories containing manifest files (such as package.json) to apply updates to when versioning. By default, only the project root will be used, but you could customize this to only version a manifest in a dist directory, or even version multiple manifests in different directories, such as both source and dist."
|
|
924
|
+
},
|
|
925
|
+
"currentVersionResolver": {
|
|
926
|
+
"type": "string",
|
|
927
|
+
"enum": ["registry", "disk", "git-tag", "none"],
|
|
928
|
+
"description": "The resolver to use for determining the current version of a project during versioning. This is needed for versioning approaches which involve relatively modifying a current version to arrive at a new version, such as semver bumps like 'patch', 'minor' etc. Using 'none' explicitly declares that the current version is not needed to compute the new version, and should only be used with appropriate version actions implementations that support it."
|
|
929
|
+
},
|
|
930
|
+
"currentVersionResolverMetadata": {
|
|
931
|
+
"type": "object",
|
|
932
|
+
"additionalProperties": true,
|
|
933
|
+
"description": "Metadata to provide to the configured currentVersionResolver to help it in determining the current version. What to pass here is specific to each resolver."
|
|
934
|
+
},
|
|
935
|
+
"fallbackCurrentVersionResolver": {
|
|
936
|
+
"type": "string",
|
|
937
|
+
"enum": ["disk"],
|
|
938
|
+
"description": "The fallback version resolver to use when the configured currentVersionResolver fails to resolve the current version."
|
|
939
|
+
},
|
|
940
|
+
"versionPrefix": {
|
|
941
|
+
"type": "string",
|
|
942
|
+
"enum": ["auto", "", "~", "^", "="],
|
|
943
|
+
"default": "auto",
|
|
944
|
+
"description": "The prefix to use when versioning dependencies. This can be one of the following: auto, '', '~', '^', '=', where auto means the existing prefix will be preserved."
|
|
945
|
+
},
|
|
946
|
+
"deleteVersionPlans": {
|
|
947
|
+
"type": "boolean",
|
|
948
|
+
"description": "Whether to delete the processed version plans file after versioning is complete. This is false by default because the version plans are also needed for changelog generation.",
|
|
949
|
+
"default": false
|
|
950
|
+
},
|
|
951
|
+
"updateDependents": {
|
|
952
|
+
"type": "string",
|
|
953
|
+
"enum": ["never", "auto"],
|
|
954
|
+
"default": "auto",
|
|
955
|
+
"description": "When versioning independent projects, this controls whether to update their dependents (i.e. the things that depend on them). 'never' means no dependents will be updated (unless they happen to be versioned directly as well). 'auto' is the default and will cause dependents to be updated (a patch version bump) when a dependency is versioned."
|
|
956
|
+
},
|
|
957
|
+
"logUnchangedProjects": {
|
|
958
|
+
"type": "boolean",
|
|
959
|
+
"description": "Whether to log projects that have not changed during versioning.",
|
|
960
|
+
"default": true
|
|
961
|
+
},
|
|
962
|
+
"preserveLocalDependencyProtocols": {
|
|
963
|
+
"type": "boolean",
|
|
964
|
+
"description": "Whether to preserve local dependency protocols (e.g. file references, or the `workspace:` protocol in package.json files) of local dependencies when updating them during versioning.",
|
|
965
|
+
"default": true
|
|
966
|
+
},
|
|
967
|
+
"preserveMatchingDependencyRanges": {
|
|
968
|
+
"type": ["boolean", "array"],
|
|
969
|
+
"description": "Whether to preserve matching dependency ranges when updating them during versioning. This is false by default. (e.g. The new version will be '1.2.0' and the current version range in dependents is already '^1.0.0'. Therefore, the manifest file is not updated.)",
|
|
970
|
+
"default": false,
|
|
971
|
+
"items": {
|
|
972
|
+
"type": "string",
|
|
973
|
+
"enum": [
|
|
974
|
+
"dependencies",
|
|
975
|
+
"devDependencies",
|
|
976
|
+
"peerDependencies",
|
|
977
|
+
"optionalDependencies"
|
|
978
|
+
]
|
|
979
|
+
}
|
|
980
|
+
},
|
|
981
|
+
"versionActions": {
|
|
982
|
+
"type": "string",
|
|
983
|
+
"description": "The path to the version actions implementation to use for releasing all projects by default. This can also be overridden on the release group and project levels.",
|
|
984
|
+
"default": "@nx/js/src/release"
|
|
985
|
+
},
|
|
986
|
+
"versionActionsOptions": {
|
|
987
|
+
"type": "object",
|
|
988
|
+
"description": "The specific options that are defined by each version actions implementation. They will be passed to the version actions implementation when running a release.",
|
|
989
|
+
"additionalProperties": true
|
|
927
990
|
}
|
|
928
991
|
},
|
|
929
|
-
"additionalProperties":
|
|
992
|
+
"additionalProperties": false
|
|
930
993
|
},
|
|
931
994
|
"NxReleaseChangelogConfiguration": {
|
|
932
995
|
"type": "object",
|
|
@@ -1107,14 +1170,44 @@
|
|
|
1107
1170
|
},
|
|
1108
1171
|
"NxReleaseGroupDockerConfiguration": {
|
|
1109
1172
|
"type": "object",
|
|
1110
|
-
"$comment": "We need to improve this configuration definition to be more precise once legacy versioning is removed. Right now it needs to be left open and runtime validation will ensure correct behavior.",
|
|
1111
1173
|
"properties": {
|
|
1112
1174
|
"groupPreVersionCommand": {
|
|
1113
1175
|
"type": "string",
|
|
1114
1176
|
"description": "A command to run after validation of nx release configuration, but before docker versioning begins. Used for preparing docker build artifacts. If --dry-run is passed, the command is still executed, but with the NX_DRY_RUN environment variable set to 'true'. It will run in addition to the global `preVersionCommand`"
|
|
1177
|
+
},
|
|
1178
|
+
"skipVersionActions": {
|
|
1179
|
+
"oneOf": [
|
|
1180
|
+
{
|
|
1181
|
+
"type": "array",
|
|
1182
|
+
"items": {
|
|
1183
|
+
"type": "string"
|
|
1184
|
+
},
|
|
1185
|
+
"description": "Array of projects which should use a no-op VersionActions implementation rather than any potentially inferred by default or via Inference Plugins."
|
|
1186
|
+
},
|
|
1187
|
+
{
|
|
1188
|
+
"type": "boolean",
|
|
1189
|
+
"description": "When set to true, all projects in the release setup/release group will use a no-op VersionActions implementation."
|
|
1190
|
+
}
|
|
1191
|
+
],
|
|
1192
|
+
"description": "Projects which should use a no-op VersionActions implementation rather than any potentially inferred by default or via Inference Plugins. Can be an array of project names (subset of projects in the release setup/release group) or a boolean (true means all projects)."
|
|
1193
|
+
},
|
|
1194
|
+
"versionSchemes": {
|
|
1195
|
+
"type": "object",
|
|
1196
|
+
"additionalProperties": {
|
|
1197
|
+
"type": "string"
|
|
1198
|
+
},
|
|
1199
|
+
"description": "Record of named version patterns to choose between when versioning docker projects. e.g. \"production\": \"{currentDate|YYMM.DD}.{shortCommitSha}\", \"hotfix\": \"{currentDate|YYMM.DD}-hotfix\""
|
|
1200
|
+
},
|
|
1201
|
+
"repositoryName": {
|
|
1202
|
+
"type": "string",
|
|
1203
|
+
"description": "Repository name for the image on the configured registry"
|
|
1204
|
+
},
|
|
1205
|
+
"registryUrl": {
|
|
1206
|
+
"type": "string",
|
|
1207
|
+
"description": "Url of the Docker Image/Container Registry to push images to. Defaults to Docker Hub."
|
|
1115
1208
|
}
|
|
1116
1209
|
},
|
|
1117
|
-
"additionalProperties":
|
|
1210
|
+
"additionalProperties": false
|
|
1118
1211
|
}
|
|
1119
1212
|
}
|
|
1120
1213
|
}
|