nx 22.3.1 → 22.3.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.
@@ -1,1386 +1,1386 @@
1
1
  {
2
- "$schema": "http://json-schema.org/draft-07/schema",
3
- "$id": "https://nx.dev/reference/nx-json",
4
- "title": "JSON schema for Nx configuration",
5
- "type": "object",
6
- "properties": {
7
- "implicitDependencies": {
8
- "type": "object",
9
- "description": "Map of files to projects that implicitly depend on them.",
10
- "deprecated": "Use named inputs instead. See https://nx.dev/deprecated/global-implicit-dependencies"
11
- },
12
- "affected": {
13
- "type": "object",
14
- "description": "Default options for `nx affected`.",
15
- "properties": {
16
- "defaultBase": {
17
- "type": "string",
18
- "description": "Default based branch used by affected commands."
19
- }
20
- },
21
- "additionalProperties": false,
22
- "deprecated": "Use `defaultBase` instead. Support for setting `defaultBase` in `affected` will be removed in Nx 20."
23
- },
24
- "extends": {
25
- "type": "string",
26
- "description": "Specifies the base config to extend."
27
- },
2
+ "$schema": "http://json-schema.org/draft-07/schema",
3
+ "$id": "https://nx.dev/reference/nx-json",
4
+ "title": "JSON schema for Nx configuration",
5
+ "type": "object",
6
+ "properties": {
7
+ "implicitDependencies": {
8
+ "type": "object",
9
+ "description": "Map of files to projects that implicitly depend on them.",
10
+ "deprecated": "Use named inputs instead. See https://nx.dev/deprecated/global-implicit-dependencies"
11
+ },
12
+ "affected": {
13
+ "type": "object",
14
+ "description": "Default options for `nx affected`.",
15
+ "properties": {
28
16
  "defaultBase": {
29
- "type": "string",
30
- "description": "Default --base used by affected logic."
17
+ "type": "string",
18
+ "description": "Default based branch used by affected commands."
19
+ }
20
+ },
21
+ "additionalProperties": false,
22
+ "deprecated": "Use `defaultBase` instead. Support for setting `defaultBase` in `affected` will be removed in Nx 20."
23
+ },
24
+ "extends": {
25
+ "type": "string",
26
+ "description": "Specifies the base config to extend."
27
+ },
28
+ "defaultBase": {
29
+ "type": "string",
30
+ "description": "Default --base used by affected logic."
31
+ },
32
+ "tasksRunnerOptions": {
33
+ "type": "object",
34
+ "additionalProperties": {
35
+ "$ref": "#/definitions/tasksRunnerOptions"
36
+ }
37
+ },
38
+ "namedInputs": {
39
+ "type": "object",
40
+ "description": "Named inputs used by inputs defined in targets",
41
+ "additionalProperties": {
42
+ "$ref": "#/definitions/inputs"
43
+ }
44
+ },
45
+ "targetDefaults": {
46
+ "type": "object",
47
+ "description": "Target defaults",
48
+ "additionalProperties": {
49
+ "$ref": "#/definitions/targetDefaultsConfig"
50
+ }
51
+ },
52
+ "workspaceLayout": {
53
+ "type": "object",
54
+ "description": "Where new apps + libs should be placed.",
55
+ "properties": {
56
+ "libsDir": {
57
+ "type": "string",
58
+ "description": "Default folder name for libs."
31
59
  },
32
- "tasksRunnerOptions": {
33
- "type": "object",
34
- "additionalProperties": {
35
- "$ref": "#/definitions/tasksRunnerOptions"
36
- }
60
+ "appsDir": {
61
+ "type": "string",
62
+ "description": "Default folder name for apps."
63
+ }
64
+ },
65
+ "additionalProperties": false
66
+ },
67
+ "cli": {
68
+ "$ref": "#/definitions/cliOptions"
69
+ },
70
+ "generators": {
71
+ "$ref": "#/definitions/generatorOptions"
72
+ },
73
+ "plugins": {
74
+ "type": "array",
75
+ "description": "Plugins for extending the project graph.",
76
+ "items": {
77
+ "$ref": "#/definitions/plugins"
78
+ }
79
+ },
80
+ "tui": {
81
+ "type": "object",
82
+ "description": "Settings for the Nx Terminal User Interface (TUI)",
83
+ "properties": {
84
+ "enabled": {
85
+ "type": "boolean",
86
+ "description": "Whether to enable the Terminal UI whenever possible (based on the current environment and terminal).",
87
+ "default": true
37
88
  },
38
- "namedInputs": {
39
- "type": "object",
40
- "description": "Named inputs used by inputs defined in targets",
41
- "additionalProperties": {
42
- "$ref": "#/definitions/inputs"
89
+ "autoExit": {
90
+ "oneOf": [
91
+ {
92
+ "type": "boolean"
93
+ },
94
+ {
95
+ "type": "number"
43
96
  }
97
+ ],
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.",
99
+ "default": 3
44
100
  },
45
- "targetDefaults": {
46
- "type": "object",
47
- "description": "Target defaults",
48
- "additionalProperties": {
49
- "$ref": "#/definitions/targetDefaultsConfig"
101
+ "suppressHints": {
102
+ "type": "boolean",
103
+ "description": "Whether to suppress hint popups that provide guidance for unhandled keys.",
104
+ "default": false
105
+ }
106
+ },
107
+ "additionalProperties": false
108
+ },
109
+ "defaultProject": {
110
+ "type": "string",
111
+ "description": "Default project. When project isn't provided, the default project will be used."
112
+ },
113
+ "nxCloudAccessToken": {
114
+ "type": "string",
115
+ "description": "The access token to use for nx-cloud. If set, the default tasks runner will be nx-cloud."
116
+ },
117
+ "nxCloudUrl": {
118
+ "type": "string",
119
+ "description": "Specifies the url pointing to an instance of nx cloud. Used for remote caching and displaying run links."
120
+ },
121
+ "nxCloudEncryptionKey": {
122
+ "type": "string",
123
+ "description": "Specifies the encryption key used to encrypt artifacts data before sending it to nx cloud."
124
+ },
125
+ "neverConnectToCloud": {
126
+ "type": "boolean",
127
+ "description": "Setting this to true will cause all attempts to connect your workspace to Nx Cloud to fail. This value does not prevent using Nx Cloud if already connected. Use NX_NO_CLOUD=true env var to prevent using Nx Cloud when running commands."
128
+ },
129
+ "parallel": {
130
+ "type": "number",
131
+ "description": "Specifies how many tasks are ran in parallel by Nx for the default tasks runner."
132
+ },
133
+ "cacheDirectory": {
134
+ "type": "string",
135
+ "description": "Specifies the default location of the cache directory."
136
+ },
137
+ "useDaemonProcess": {
138
+ "type": "boolean",
139
+ "description": "Specifies whether the daemon should be used for the default tasks runner."
140
+ },
141
+ "useInferencePlugins": {
142
+ "type": "boolean",
143
+ "description": "Specifies whether to add inference plugins when generating new projects."
144
+ },
145
+ "release": {
146
+ "type": "object",
147
+ "description": "Configuration for the nx release commands.",
148
+ "additionalProperties": false,
149
+ "properties": {
150
+ "projects": {
151
+ "oneOf": [
152
+ {
153
+ "type": "string",
154
+ "description": "A project name"
155
+ },
156
+ {
157
+ "type": "array",
158
+ "description": "An array of project names",
159
+ "minItems": 1,
160
+ "items": {
161
+ "type": "string"
162
+ }
50
163
  }
164
+ ]
51
165
  },
52
- "workspaceLayout": {
166
+ "groups": {
167
+ "type": "object",
168
+ "additionalProperties": {
53
169
  "type": "object",
54
- "description": "Where new apps + libs should be placed.",
55
170
  "properties": {
56
- "libsDir": {
171
+ "projectsRelationship": {
172
+ "type": "string",
173
+ "enum": ["fixed", "independent"]
174
+ },
175
+ "projects": {
176
+ "oneOf": [
177
+ {
57
178
  "type": "string",
58
- "description": "Default folder name for libs."
59
- },
60
- "appsDir": {
179
+ "description": "A project name"
180
+ },
181
+ {
182
+ "type": "array",
183
+ "description": "An array of project names",
184
+ "minItems": 1,
185
+ "items": {
186
+ "type": "string"
187
+ }
188
+ }
189
+ ]
190
+ },
191
+ "version": {
192
+ "$ref": "#/definitions/NxReleaseGroupVersionConfiguration"
193
+ },
194
+ "changelog": {
195
+ "oneOf": [
196
+ {
197
+ "$ref": "#/definitions/NxReleaseChangelogConfiguration"
198
+ },
199
+ {
200
+ "type": "boolean"
201
+ }
202
+ ]
203
+ },
204
+ "releaseTag": {
205
+ "type": "object",
206
+ "description": "Configuration for release tag generation and matching.",
207
+ "properties": {
208
+ "pattern": {
61
209
  "type": "string",
62
- "description": "Default folder name for apps."
210
+ "description": "Optionally override the git/release tag pattern to use for this group."
211
+ },
212
+ "checkAllBranchesWhen": {
213
+ "oneOf": [
214
+ {
215
+ "type": "boolean"
216
+ },
217
+ {
218
+ "type": "array",
219
+ "items": {
220
+ "type": "string"
221
+ }
222
+ }
223
+ ],
224
+ "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."
225
+ },
226
+ "requireSemver": {
227
+ "type": "boolean",
228
+ "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."
229
+ },
230
+ "preferDockerVersion": {
231
+ "type": ["boolean", "string"],
232
+ "enum": [true, false, "both"],
233
+ "description": "Controls how docker versions are used relative to semver versions when creating git tags and changelog entries. Set to true to use only the docker version, false to use only the semver version, or 'both' to create tags and changelog entries for both docker and semver versions. By default, this is set to true when docker configuration is present, and false otherwise."
234
+ },
235
+ "strictPreid": {
236
+ "$ref": "#/definitions/NxReleaseReleaseTagPatternStrictPreidConfiguration"
237
+ }
238
+ },
239
+ "additionalProperties": false
240
+ },
241
+ "releaseTagPattern": {
242
+ "type": "string",
243
+ "description": "DEPRECATED: Use releaseTag.pattern instead. Will be removed in Nx 23."
244
+ },
245
+ "releaseTagPatternCheckAllBranchesWhen": {
246
+ "oneOf": [
247
+ {
248
+ "type": "boolean"
249
+ },
250
+ {
251
+ "type": "array",
252
+ "items": {
253
+ "type": "string"
254
+ }
255
+ }
256
+ ],
257
+ "description": "DEPRECATED: Use releaseTag.checkAllBranchesWhen instead. Will be removed in Nx 23."
258
+ },
259
+ "releaseTagPatternRequireSemver": {
260
+ "type": "boolean",
261
+ "description": "DEPRECATED: Use releaseTag.requireSemver instead. Will be removed in Nx 23."
262
+ },
263
+ "releaseTagPatternPreferDockerVersion": {
264
+ "type": ["boolean", "string"],
265
+ "enum": [true, false, "both"],
266
+ "description": "DEPRECATED: Use releaseTag.preferDockerVersion instead. Will be removed in Nx 23."
267
+ },
268
+ "releaseTagPatternStrictPreid": {
269
+ "$ref": "#/definitions/NxReleaseReleaseTagPatternStrictPreidConfiguration",
270
+ "description": "DEPRECATED: Use releaseTag.strictPreid instead. Will be removed in Nx 23."
271
+ },
272
+ "versionPlans": {
273
+ "oneOf": [
274
+ {
275
+ "$ref": "#/definitions/NxReleaseVersionPlansConfiguration"
276
+ },
277
+ {
278
+ "type": "boolean",
279
+ "description": "Enables using version plans as a specifier source for versioning and to determine changes for changelog generation."
280
+ }
281
+ ]
282
+ },
283
+ "docker": {
284
+ "oneOf": [
285
+ {
286
+ "type": "boolean",
287
+ "enum": [true],
288
+ "description": "Enable docker configuration with default settings. Warning: Docker support is experimental. Breaking changes may occur and not adhere to semver versioning. "
289
+ },
290
+ {
291
+ "$ref": "#/definitions/NxReleaseGroupDockerConfiguration"
292
+ }
293
+ ]
294
+ }
295
+ },
296
+ "required": ["projects"]
297
+ }
298
+ },
299
+ "changelog": {
300
+ "type": "object",
301
+ "properties": {
302
+ "workspaceChangelog": {
303
+ "oneOf": [
304
+ {
305
+ "$ref": "#/definitions/NxReleaseChangelogConfiguration"
306
+ },
307
+ {
308
+ "type": "boolean"
63
309
  }
310
+ ]
64
311
  },
65
- "additionalProperties": false
312
+ "projectChangelogs": {
313
+ "oneOf": [
314
+ {
315
+ "$ref": "#/definitions/NxReleaseChangelogConfiguration"
316
+ },
317
+ {
318
+ "type": "boolean"
319
+ }
320
+ ]
321
+ },
322
+ "automaticFromRef": {
323
+ "type": "boolean",
324
+ "description": "Whether or not to automatically look up the first commit for the workspace (or package, if versioning independently) and use that as the starting point for changelog generation. If this is not enabled, changelog generation will fail if there is no previous matching git tag to use as a starting point."
325
+ },
326
+ "git": {
327
+ "$ref": "#/definitions/NxReleaseGitConfiguration"
328
+ }
329
+ }
330
+ },
331
+ "conventionalCommits": {
332
+ "$ref": "#/definitions/NxReleaseConventionalCommitsConfiguration"
333
+ },
334
+ "projectsRelationship": {
335
+ "type": "string",
336
+ "enum": ["fixed", "independent"]
66
337
  },
67
- "cli": {
68
- "$ref": "#/definitions/cliOptions"
338
+ "git": {
339
+ "$ref": "#/definitions/NxReleaseGitConfiguration"
69
340
  },
70
- "generators": {
71
- "$ref": "#/definitions/generatorOptions"
341
+ "version": {
342
+ "$ref": "#/definitions/NxReleaseVersionConfiguration"
72
343
  },
73
- "plugins": {
74
- "type": "array",
75
- "description": "Plugins for extending the project graph.",
76
- "items": {
77
- "$ref": "#/definitions/plugins"
344
+ "versionPlans": {
345
+ "oneOf": [
346
+ {
347
+ "$ref": "#/definitions/NxReleaseVersionPlansConfiguration"
348
+ },
349
+ {
350
+ "type": "boolean",
351
+ "description": "Enables using version plans as a specifier source for versioning and to determine changes for changelog generation."
78
352
  }
353
+ ]
79
354
  },
80
- "tui": {
81
- "type": "object",
82
- "description": "Settings for the Nx Terminal User Interface (TUI)",
83
- "properties": {
84
- "enabled": {
85
- "type": "boolean",
86
- "description": "Whether to enable the Terminal UI whenever possible (based on the current environment and terminal).",
87
- "default": true
88
- },
89
- "autoExit": {
90
- "oneOf": [
91
- {
92
- "type": "boolean"
93
- },
94
- {
95
- "type": "number"
96
- }
97
- ],
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.",
99
- "default": 3
355
+ "releaseTag": {
356
+ "type": "object",
357
+ "description": "Configuration for release tag generation and matching.",
358
+ "properties": {
359
+ "pattern": {
360
+ "type": "string",
361
+ "description": "Optionally override the git/release tag pattern to use. This field is the source of truth for changelog generation and release tagging, as well as for conventional commits parsing. It supports interpolating the version as {version} and (if releasing independently or forcing project level version control system releases) the project name as {projectName} within the string. The default releaseTagPattern for fixed/unified releases is: \"v{version}\". The default releaseTagPattern for independent releases at the project level is: \"{projectName}@{version}\""
362
+ },
363
+ "checkAllBranchesWhen": {
364
+ "oneOf": [
365
+ {
366
+ "type": "boolean"
100
367
  },
101
- "suppressHints": {
102
- "type": "boolean",
103
- "description": "Whether to suppress hint popups that provide guidance for unhandled keys.",
104
- "default": false
368
+ {
369
+ "type": "array",
370
+ "items": {
371
+ "type": "string"
372
+ }
105
373
  }
374
+ ],
375
+ "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."
106
376
  },
107
- "additionalProperties": false
377
+ "requireSemver": {
378
+ "type": "boolean",
379
+ "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."
380
+ },
381
+ "preferDockerVersion": {
382
+ "type": ["boolean", "string"],
383
+ "enum": [true, false, "both"],
384
+ "description": "Controls how docker versions are used relative to semver versions when creating git tags and changelog entries. Set to true to use only the docker version, false to use only the semver version, or 'both' to create tags and changelog entries for both docker and semver versions. By default, this is set to true when docker configuration is present, and false otherwise."
385
+ },
386
+ "strictPreid": {
387
+ "$ref": "#/definitions/NxReleaseReleaseTagPatternStrictPreidConfiguration"
388
+ }
389
+ },
390
+ "additionalProperties": false
108
391
  },
109
- "defaultProject": {
110
- "type": "string",
111
- "description": "Default project. When project isn't provided, the default project will be used."
392
+ "releaseTagPattern": {
393
+ "type": "string",
394
+ "description": "DEPRECATED: Use releaseTag.pattern instead. Will be removed in Nx 23."
112
395
  },
113
- "nxCloudAccessToken": {
114
- "type": "string",
115
- "description": "The access token to use for nx-cloud. If set, the default tasks runner will be nx-cloud."
396
+ "releaseTagPatternCheckAllBranchesWhen": {
397
+ "oneOf": [
398
+ {
399
+ "type": "boolean"
400
+ },
401
+ {
402
+ "type": "array",
403
+ "items": {
404
+ "type": "string"
405
+ }
406
+ }
407
+ ],
408
+ "description": "DEPRECATED: Use releaseTag.checkAllBranchesWhen instead. Will be removed in Nx 23."
116
409
  },
117
- "nxCloudUrl": {
118
- "type": "string",
119
- "description": "Specifies the url pointing to an instance of nx cloud. Used for remote caching and displaying run links."
410
+ "releaseTagPatternRequireSemver": {
411
+ "type": "boolean",
412
+ "description": "DEPRECATED: Use releaseTag.requireSemver instead. Will be removed in Nx 23."
120
413
  },
121
- "nxCloudEncryptionKey": {
122
- "type": "string",
123
- "description": "Specifies the encryption key used to encrypt artifacts data before sending it to nx cloud."
414
+ "releaseTagPatternPreferDockerVersion": {
415
+ "type": ["boolean", "string"],
416
+ "enum": [true, false, "both"],
417
+ "description": "DEPRECATED: Use releaseTag.preferDockerVersion instead. Will be removed in Nx 23."
124
418
  },
125
- "neverConnectToCloud": {
126
- "type": "boolean",
127
- "description": "Setting this to true will cause all attempts to connect your workspace to Nx Cloud to fail. This value does not prevent using Nx Cloud if already connected. Use NX_NO_CLOUD=true env var to prevent using Nx Cloud when running commands."
419
+ "releaseTagPatternStrictPreid": {
420
+ "$ref": "#/definitions/NxReleaseReleaseTagPatternStrictPreidConfiguration",
421
+ "description": "DEPRECATED: Use releaseTag.strictPreid instead. Will be removed in Nx 23."
128
422
  },
129
- "parallel": {
130
- "type": "number",
131
- "description": "Specifies how many tasks are ran in parallel by Nx for the default tasks runner."
423
+ "docker": {
424
+ "oneOf": [
425
+ {
426
+ "type": "boolean",
427
+ "enum": [true],
428
+ "description": "Enable docker configuration with default settings. Warning: Docker support is experimental. Breaking changes may occur and not adhere to semver versioning."
429
+ },
430
+ {
431
+ "$ref": "#/definitions/NxReleaseDockerConfiguration"
432
+ }
433
+ ]
434
+ }
435
+ }
436
+ },
437
+ "sync": {
438
+ "type": "object",
439
+ "description": "Configuration for the `nx sync` command",
440
+ "properties": {
441
+ "globalGenerators": {
442
+ "type": "array",
443
+ "items": {
444
+ "type": "string"
445
+ },
446
+ "description": "List of workspace-wide sync generators to be run (not attached to targets)"
132
447
  },
133
- "cacheDirectory": {
134
- "type": "string",
135
- "description": "Specifies the default location of the cache directory."
448
+ "generatorOptions": {
449
+ "type": "object",
450
+ "description": "Options for the sync generators.",
451
+ "additionalProperties": {
452
+ "type": "object"
453
+ }
136
454
  },
137
- "useDaemonProcess": {
138
- "type": "boolean",
139
- "description": "Specifies whether the daemon should be used for the default tasks runner."
455
+ "applyChanges": {
456
+ "type": "boolean",
457
+ "description": "Whether to automatically apply sync generator changes when running tasks. If not set, the user will be prompted. If set to `true`, the user will not be prompted and the changes will be applied. If set to `false`, the user will not be prompted and the changes will not be applied."
140
458
  },
141
- "useInferencePlugins": {
142
- "type": "boolean",
143
- "description": "Specifies whether to add inference plugins when generating new projects."
459
+ "disabledTaskSyncGenerators": {
460
+ "type": "array",
461
+ "items": {
462
+ "type": "string"
463
+ },
464
+ "description": "List of registered task sync generators to disable."
465
+ }
466
+ },
467
+ "additionalProperties": false
468
+ },
469
+ "conformance": {
470
+ "type": "object",
471
+ "description": "Configuration for Nx Conformance",
472
+ "properties": {
473
+ "outputPath": {
474
+ "oneOf": [
475
+ {
476
+ "type": "string",
477
+ "description": "Path to write the conformance results to"
478
+ },
479
+ {
480
+ "type": "boolean",
481
+ "enum": [false],
482
+ "description": "Disable writing the conformance results to a file"
483
+ }
484
+ ],
485
+ "description": "Optional path to write the conformance results to, defaults to 'dist/conformance-result.json'. Set to false to disable writing the conformance results to a file."
144
486
  },
145
- "release": {
487
+ "rules": {
488
+ "type": "array",
489
+ "description": "List of conformance rules to apply",
490
+ "items": {
146
491
  "type": "object",
147
- "description": "Configuration for the nx release commands.",
148
- "additionalProperties": false,
149
492
  "properties": {
150
- "projects": {
151
- "oneOf": [
152
- {
153
- "type": "string",
154
- "description": "A project name"
155
- },
156
- {
157
- "type": "array",
158
- "description": "An array of project names",
159
- "minItems": 1,
160
- "items": {
161
- "type": "string"
162
- }
163
- }
164
- ]
165
- },
166
- "groups": {
167
- "type": "object",
168
- "additionalProperties": {
169
- "type": "object",
170
- "properties": {
171
- "projectsRelationship": {
172
- "type": "string",
173
- "enum": ["fixed", "independent"]
174
- },
175
- "projects": {
176
- "oneOf": [
177
- {
178
- "type": "string",
179
- "description": "A project name"
180
- },
181
- {
182
- "type": "array",
183
- "description": "An array of project names",
184
- "minItems": 1,
185
- "items": {
186
- "type": "string"
187
- }
188
- }
189
- ]
190
- },
191
- "version": {
192
- "$ref": "#/definitions/NxReleaseGroupVersionConfiguration"
193
- },
194
- "changelog": {
195
- "oneOf": [
196
- {
197
- "$ref": "#/definitions/NxReleaseChangelogConfiguration"
198
- },
199
- {
200
- "type": "boolean"
201
- }
202
- ]
203
- },
204
- "releaseTag": {
205
- "type": "object",
206
- "description": "Configuration for release tag generation and matching.",
207
- "properties": {
208
- "pattern": {
209
- "type": "string",
210
- "description": "Optionally override the git/release tag pattern to use for this group."
211
- },
212
- "checkAllBranchesWhen": {
213
- "oneOf": [
214
- {
215
- "type": "boolean"
216
- },
217
- {
218
- "type": "array",
219
- "items": {
220
- "type": "string"
221
- }
222
- }
223
- ],
224
- "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."
225
- },
226
- "requireSemver": {
227
- "type": "boolean",
228
- "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."
229
- },
230
- "preferDockerVersion": {
231
- "type": ["boolean", "string"],
232
- "enum": [true, false, "both"],
233
- "description": "Controls how docker versions are used relative to semver versions when creating git tags and changelog entries. Set to true to use only the docker version, false to use only the semver version, or 'both' to create tags and changelog entries for both docker and semver versions. By default, this is set to true when docker configuration is present, and false otherwise."
234
- },
235
- "strictPreid": {
236
- "$ref": "#/definitions/NxReleaseReleaseTagPatternStrictPreidConfiguration"
237
- }
238
- },
239
- "additionalProperties": false
240
- },
241
- "releaseTagPattern": {
242
- "type": "string",
243
- "description": "DEPRECATED: Use releaseTag.pattern instead. Will be removed in Nx 23."
244
- },
245
- "releaseTagPatternCheckAllBranchesWhen": {
246
- "oneOf": [
247
- {
248
- "type": "boolean"
249
- },
250
- {
251
- "type": "array",
252
- "items": {
253
- "type": "string"
254
- }
255
- }
256
- ],
257
- "description": "DEPRECATED: Use releaseTag.checkAllBranchesWhen instead. Will be removed in Nx 23."
258
- },
259
- "releaseTagPatternRequireSemver": {
260
- "type": "boolean",
261
- "description": "DEPRECATED: Use releaseTag.requireSemver instead. Will be removed in Nx 23."
262
- },
263
- "releaseTagPatternPreferDockerVersion": {
264
- "type": ["boolean", "string"],
265
- "enum": [true, false, "both"],
266
- "description": "DEPRECATED: Use releaseTag.preferDockerVersion instead. Will be removed in Nx 23."
267
- },
268
- "releaseTagPatternStrictPreid": {
269
- "$ref": "#/definitions/NxReleaseReleaseTagPatternStrictPreidConfiguration",
270
- "description": "DEPRECATED: Use releaseTag.strictPreid instead. Will be removed in Nx 23."
271
- },
272
- "versionPlans": {
273
- "oneOf": [
274
- {
275
- "$ref": "#/definitions/NxReleaseVersionPlansConfiguration"
276
- },
277
- {
278
- "type": "boolean",
279
- "description": "Enables using version plans as a specifier source for versioning and to determine changes for changelog generation."
280
- }
281
- ]
282
- },
283
- "docker": {
284
- "oneOf": [
285
- {
286
- "type": "boolean",
287
- "enum": [true],
288
- "description": "Enable docker configuration with default settings. Warning: Docker support is experimental. Breaking changes may occur and not adhere to semver versioning. "
289
- },
290
- {
291
- "$ref": "#/definitions/NxReleaseGroupDockerConfiguration"
292
- }
293
- ]
294
- }
295
- },
296
- "required": ["projects"]
297
- }
298
- },
299
- "changelog": {
300
- "type": "object",
301
- "properties": {
302
- "workspaceChangelog": {
303
- "oneOf": [
304
- {
305
- "$ref": "#/definitions/NxReleaseChangelogConfiguration"
306
- },
307
- {
308
- "type": "boolean"
309
- }
310
- ]
311
- },
312
- "projectChangelogs": {
313
- "oneOf": [
314
- {
315
- "$ref": "#/definitions/NxReleaseChangelogConfiguration"
316
- },
317
- {
318
- "type": "boolean"
319
- }
320
- ]
321
- },
322
- "automaticFromRef": {
323
- "type": "boolean",
324
- "description": "Whether or not to automatically look up the first commit for the workspace (or package, if versioning independently) and use that as the starting point for changelog generation. If this is not enabled, changelog generation will fail if there is no previous matching git tag to use as a starting point."
325
- },
326
- "git": {
327
- "$ref": "#/definitions/NxReleaseGitConfiguration"
328
- }
329
- }
330
- },
331
- "conventionalCommits": {
332
- "$ref": "#/definitions/NxReleaseConventionalCommitsConfiguration"
333
- },
334
- "projectsRelationship": {
335
- "type": "string",
336
- "enum": ["fixed", "independent"]
337
- },
338
- "git": {
339
- "$ref": "#/definitions/NxReleaseGitConfiguration"
340
- },
341
- "version": {
342
- "$ref": "#/definitions/NxReleaseVersionConfiguration"
343
- },
344
- "versionPlans": {
345
- "oneOf": [
346
- {
347
- "$ref": "#/definitions/NxReleaseVersionPlansConfiguration"
348
- },
349
- {
350
- "type": "boolean",
351
- "description": "Enables using version plans as a specifier source for versioning and to determine changes for changelog generation."
352
- }
353
- ]
354
- },
355
- "releaseTag": {
356
- "type": "object",
357
- "description": "Configuration for release tag generation and matching.",
358
- "properties": {
359
- "pattern": {
360
- "type": "string",
361
- "description": "Optionally override the git/release tag pattern to use. This field is the source of truth for changelog generation and release tagging, as well as for conventional commits parsing. It supports interpolating the version as {version} and (if releasing independently or forcing project level version control system releases) the project name as {projectName} within the string. The default releaseTagPattern for fixed/unified releases is: \"v{version}\". The default releaseTagPattern for independent releases at the project level is: \"{projectName}@{version}\""
362
- },
363
- "checkAllBranchesWhen": {
364
- "oneOf": [
365
- {
366
- "type": "boolean"
367
- },
368
- {
369
- "type": "array",
370
- "items": {
371
- "type": "string"
372
- }
373
- }
374
- ],
375
- "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."
376
- },
377
- "requireSemver": {
378
- "type": "boolean",
379
- "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."
380
- },
381
- "preferDockerVersion": {
382
- "type": ["boolean", "string"],
383
- "enum": [true, false, "both"],
384
- "description": "Controls how docker versions are used relative to semver versions when creating git tags and changelog entries. Set to true to use only the docker version, false to use only the semver version, or 'both' to create tags and changelog entries for both docker and semver versions. By default, this is set to true when docker configuration is present, and false otherwise."
385
- },
386
- "strictPreid": {
387
- "$ref": "#/definitions/NxReleaseReleaseTagPatternStrictPreidConfiguration"
388
- }
493
+ "rule": {
494
+ "type": "string",
495
+ "description": "Relative path to a local rule implementation, node_module path or nx-cloud rule ID for Nx Cloud Enterprise."
496
+ },
497
+ "options": {
498
+ "type": "object",
499
+ "description": "Rule specific configuration options.",
500
+ "additionalProperties": true
501
+ },
502
+ "projects": {
503
+ "type": "array",
504
+ "description": "The projects to apply this rule to. This property accepts an array of strings which can be project names, glob patterns, directories, tag references or anything else that is supported by the `--projects` filter. By default, the implied value is ['*'] (all projects). You can also use objects with 'matcher' and 'explanation' properties to document why specific projects are included or excluded.",
505
+ "items": {
506
+ "oneOf": [
507
+ {
508
+ "type": "string",
509
+ "description": "A project name, glob pattern, directory, tag reference, or any other valid project filter"
389
510
  },
390
- "additionalProperties": false
391
- },
392
- "releaseTagPattern": {
393
- "type": "string",
394
- "description": "DEPRECATED: Use releaseTag.pattern instead. Will be removed in Nx 23."
395
- },
396
- "releaseTagPatternCheckAllBranchesWhen": {
397
- "oneOf": [
398
- {
399
- "type": "boolean"
400
- },
401
- {
402
- "type": "array",
403
- "items": {
404
- "type": "string"
405
- }
406
- }
407
- ],
408
- "description": "DEPRECATED: Use releaseTag.checkAllBranchesWhen instead. Will be removed in Nx 23."
409
- },
410
- "releaseTagPatternRequireSemver": {
411
- "type": "boolean",
412
- "description": "DEPRECATED: Use releaseTag.requireSemver instead. Will be removed in Nx 23."
413
- },
414
- "releaseTagPatternPreferDockerVersion": {
415
- "type": ["boolean", "string"],
416
- "enum": [true, false, "both"],
417
- "description": "DEPRECATED: Use releaseTag.preferDockerVersion instead. Will be removed in Nx 23."
418
- },
419
- "releaseTagPatternStrictPreid": {
420
- "$ref": "#/definitions/NxReleaseReleaseTagPatternStrictPreidConfiguration",
421
- "description": "DEPRECATED: Use releaseTag.strictPreid instead. Will be removed in Nx 23."
422
- },
423
- "docker": {
424
- "oneOf": [
425
- {
426
- "type": "boolean",
427
- "enum": [true],
428
- "description": "Enable docker configuration with default settings. Warning: Docker support is experimental. Breaking changes may occur and not adhere to semver versioning."
511
+ {
512
+ "type": "object",
513
+ "properties": {
514
+ "matcher": {
515
+ "type": "string",
516
+ "description": "A project name, glob pattern, directory, tag reference, or any other valid project filter"
429
517
  },
430
- {
431
- "$ref": "#/definitions/NxReleaseDockerConfiguration"
518
+ "explanation": {
519
+ "type": "string",
520
+ "description": "An explanation to communicate to colleagues why this particular project or projects were included or excluded from the rule"
432
521
  }
433
- ]
522
+ },
523
+ "required": ["matcher", "explanation"],
524
+ "additionalProperties": false
525
+ }
526
+ ]
434
527
  }
435
- }
436
- },
437
- "sync": {
528
+ },
529
+ "explanation": {
530
+ "type": "string",
531
+ "description": "Optional explanation field for users to be able to communicate to their colleagues why a particular rule is enabled and important to the workspace in question."
532
+ },
533
+ "status": {
534
+ "type": "string",
535
+ "enum": ["enforced", "evaluated", "disabled"],
536
+ "description": "Override the default status of the rule, which is 'enforced'. If set to 'evaluated', the rule will be reported as normal, but not enforced (will exit with code 0). If set to 'disabled', the rule will not be evaluated at all.",
537
+ "default": "enforced"
538
+ }
539
+ },
540
+ "required": ["rule"],
541
+ "additionalProperties": false
542
+ }
543
+ }
544
+ },
545
+ "required": ["rules"],
546
+ "additionalProperties": false
547
+ }
548
+ },
549
+ "definitions": {
550
+ "inputs": {
551
+ "type": "array",
552
+ "items": {
553
+ "oneOf": [
554
+ {
555
+ "type": "string"
556
+ },
557
+ {
558
+ "type": "object",
559
+ "properties": {
560
+ "fileset": {
561
+ "type": "string",
562
+ "description": "A glob"
563
+ }
564
+ },
565
+ "additionalProperties": false
566
+ },
567
+ {
438
568
  "type": "object",
439
- "description": "Configuration for the `nx sync` command",
440
569
  "properties": {
441
- "globalGenerators": {
570
+ "projects": {
571
+ "oneOf": [
572
+ {
573
+ "type": "string",
574
+ "description": "The project that the targets belong to."
575
+ },
576
+ {
442
577
  "type": "array",
578
+ "description": "The projects that the targets belong to.",
443
579
  "items": {
444
- "type": "string"
445
- },
446
- "description": "List of workspace-wide sync generators to be run (not attached to targets)"
447
- },
448
- "generatorOptions": {
449
- "type": "object",
450
- "description": "Options for the sync generators.",
451
- "additionalProperties": {
452
- "type": "object"
580
+ "type": "string"
453
581
  }
454
- },
455
- "applyChanges": {
456
- "type": "boolean",
457
- "description": "Whether to automatically apply sync generator changes when running tasks. If not set, the user will be prompted. If set to `true`, the user will not be prompted and the changes will be applied. If set to `false`, the user will not be prompted and the changes will not be applied."
458
- },
459
- "disabledTaskSyncGenerators": {
460
- "type": "array",
461
- "items": {
462
- "type": "string"
582
+ }
583
+ ]
584
+ },
585
+ "dependencies": {
586
+ "type": "boolean",
587
+ "description": "Include files belonging to the input for all the project dependencies of this target."
588
+ },
589
+ "input": {
590
+ "type": "string",
591
+ "description": "The name of the input."
592
+ }
593
+ },
594
+ "oneOf": [
595
+ {
596
+ "required": ["projects", "input"]
597
+ },
598
+ {
599
+ "required": ["dependencies", "input"]
600
+ },
601
+ {
602
+ "required": ["input"],
603
+ "not": {
604
+ "anyOf": [
605
+ {
606
+ "required": ["projects"]
463
607
  },
464
- "description": "List of registered task sync generators to disable."
608
+ {
609
+ "required": ["dependencies"]
610
+ }
611
+ ]
465
612
  }
613
+ }
614
+ ],
615
+ "additionalProperties": false
616
+ },
617
+ {
618
+ "type": "object",
619
+ "properties": {
620
+ "runtime": {
621
+ "type": "string",
622
+ "description": "The command that will be executed and the results of which is added to the hash"
623
+ }
466
624
  },
467
625
  "additionalProperties": false
468
- },
469
- "conformance": {
626
+ },
627
+ {
470
628
  "type": "object",
471
- "description": "Configuration for Nx Conformance",
472
629
  "properties": {
473
- "outputPath": {
474
- "oneOf": [
475
- {
476
- "type": "string",
477
- "description": "Path to write the conformance results to"
478
- },
479
- {
480
- "type": "boolean",
481
- "enum": [false],
482
- "description": "Disable writing the conformance results to a file"
483
- }
484
- ],
485
- "description": "Optional path to write the conformance results to, defaults to 'dist/conformance-result.json'. Set to false to disable writing the conformance results to a file."
630
+ "env": {
631
+ "type": "string",
632
+ "description": "The name of the env var which value is added to the hash"
633
+ }
634
+ },
635
+ "additionalProperties": false
636
+ },
637
+ {
638
+ "type": "object",
639
+ "properties": {
640
+ "externalDependencies": {
641
+ "type": "array",
642
+ "items": {
643
+ "type": "string"
486
644
  },
487
- "rules": {
488
- "type": "array",
489
- "description": "List of conformance rules to apply",
490
- "items": {
491
- "type": "object",
492
- "properties": {
493
- "rule": {
494
- "type": "string",
495
- "description": "Relative path to a local rule implementation, node_module path or nx-cloud rule ID for Nx Cloud Enterprise."
496
- },
497
- "options": {
498
- "type": "object",
499
- "description": "Rule specific configuration options.",
500
- "additionalProperties": true
501
- },
502
- "projects": {
503
- "type": "array",
504
- "description": "The projects to apply this rule to. This property accepts an array of strings which can be project names, glob patterns, directories, tag references or anything else that is supported by the `--projects` filter. By default, the implied value is ['*'] (all projects). You can also use objects with 'matcher' and 'explanation' properties to document why specific projects are included or excluded.",
505
- "items": {
506
- "oneOf": [
507
- {
508
- "type": "string",
509
- "description": "A project name, glob pattern, directory, tag reference, or any other valid project filter"
510
- },
511
- {
512
- "type": "object",
513
- "properties": {
514
- "matcher": {
515
- "type": "string",
516
- "description": "A project name, glob pattern, directory, tag reference, or any other valid project filter"
517
- },
518
- "explanation": {
519
- "type": "string",
520
- "description": "An explanation to communicate to colleagues why this particular project or projects were included or excluded from the rule"
521
- }
522
- },
523
- "required": ["matcher", "explanation"],
524
- "additionalProperties": false
525
- }
526
- ]
527
- }
528
- },
529
- "explanation": {
530
- "type": "string",
531
- "description": "Optional explanation field for users to be able to communicate to their colleagues why a particular rule is enabled and important to the workspace in question."
532
- },
533
- "status": {
534
- "type": "string",
535
- "enum": ["enforced", "evaluated", "disabled"],
536
- "description": "Override the default status of the rule, which is 'enforced'. If set to 'evaluated', the rule will be reported as normal, but not enforced (will exit with code 0). If set to 'disabled', the rule will not be evaluated at all.",
537
- "default": "enforced"
538
- }
539
- },
540
- "required": ["rule"],
541
- "additionalProperties": false
542
- }
543
- }
645
+ "description": "The list of external dependencies that our target depends on for `nx:run-commands` and community plugins."
646
+ }
647
+ },
648
+ "additionalProperties": false
649
+ },
650
+ {
651
+ "type": "object",
652
+ "properties": {
653
+ "dependentTasksOutputFiles": {
654
+ "type": "string",
655
+ "description": "The glob list of output files that project depends on."
656
+ },
657
+ "transitive": {
658
+ "type": "boolean",
659
+ "description": "Whether the check for outputs should be recursive or stop at the first level of dependencies."
660
+ }
544
661
  },
545
- "required": ["rules"],
662
+ "required": ["dependentTasksOutputFiles"],
546
663
  "additionalProperties": false
664
+ }
665
+ ]
666
+ }
667
+ },
668
+ "cliOptions": {
669
+ "type": "object",
670
+ "description": "Default generator collection.",
671
+ "properties": {
672
+ "packageManager": {
673
+ "type": "string",
674
+ "description": "The default package manager to use.",
675
+ "enum": ["yarn", "pnpm", "npm", "bun"]
676
+ }
677
+ }
678
+ },
679
+ "generatorOptions": {
680
+ "type": "object",
681
+ "description": "List of default values used by generators."
682
+ },
683
+ "tasksRunnerOptions": {
684
+ "type": "object",
685
+ "description": "Available Task Runners.",
686
+ "properties": {
687
+ "runner": {
688
+ "type": "string",
689
+ "description": "Path to resolve the runner."
690
+ },
691
+ "options": {
692
+ "type": "object",
693
+ "description": "Default options for the runner.",
694
+ "properties": {
695
+ "accessToken": {
696
+ "type": "string"
697
+ },
698
+ "nxCloudId": {
699
+ "type": "string"
700
+ },
701
+ "captureStderr": {
702
+ "type": "boolean",
703
+ "description": "Defines whether the cache captures stderr or just stdout."
704
+ },
705
+ "parallel": {
706
+ "type": "number",
707
+ "description": "Defines the max number of targets ran in parallel."
708
+ },
709
+ "cacheableOperations": {
710
+ "type": "array",
711
+ "description": "Defines the list of targets/operations that are cached by Nx.",
712
+ "items": {
713
+ "type": "string"
714
+ }
715
+ },
716
+ "cacheDirectory": {
717
+ "type": "string",
718
+ "description": "Defines where the local cache is stored."
719
+ },
720
+ "skipNxCache": {
721
+ "type": "boolean",
722
+ "description": "Defines whether the Nx Cache should be skipped."
723
+ },
724
+ "encryptionKey": {
725
+ "type": "string",
726
+ "description": "Defines an encryption key to support end-to-end encryption of your cloud cache. You may also provide an environment variable with the key NX_CLOUD_ENCRYPTION_KEY that contains an encryption key as its value. The Nx Cloud task runner normalizes the key length, so any length of key is acceptable."
727
+ }
728
+ }
547
729
  }
730
+ },
731
+ "additionalProperties": false
548
732
  },
549
- "definitions": {
733
+ "targetDefaultsConfig": {
734
+ "type": "object",
735
+ "description": "Target defaults",
736
+ "properties": {
737
+ "executor": {
738
+ "description": "The function that Nx will invoke when you run this target",
739
+ "type": "string"
740
+ },
741
+ "options": {
742
+ "type": "object"
743
+ },
744
+ "outputs": {
745
+ "type": "array",
746
+ "items": {
747
+ "type": "string"
748
+ }
749
+ },
750
+ "defaultConfiguration": {
751
+ "type": "string",
752
+ "description": "The name of a configuration to use as the default if a configuration is not provided"
753
+ },
754
+ "configurations": {
755
+ "type": "object",
756
+ "description": "provides extra sets of values that will be merged into the options map",
757
+ "additionalProperties": {
758
+ "type": "object"
759
+ }
760
+ },
761
+ "continuous": {
762
+ "type": "boolean",
763
+ "default": false,
764
+ "description": "Whether this target runs continuously until stopped"
765
+ },
766
+ "parallelism": {
767
+ "type": "boolean",
768
+ "default": true,
769
+ "description": "Whether this target can be run in parallel with other tasks"
770
+ },
550
771
  "inputs": {
551
- "type": "array",
552
- "items": {
553
- "oneOf": [
554
- {
555
- "type": "string"
556
- },
557
- {
558
- "type": "object",
559
- "properties": {
560
- "fileset": {
561
- "type": "string",
562
- "description": "A glob"
563
- }
564
- },
565
- "additionalProperties": false
566
- },
567
- {
568
- "type": "object",
569
- "properties": {
570
- "projects": {
571
- "oneOf": [
572
- {
573
- "type": "string",
574
- "description": "The project that the targets belong to."
575
- },
576
- {
577
- "type": "array",
578
- "description": "The projects that the targets belong to.",
579
- "items": {
580
- "type": "string"
581
- }
582
- }
583
- ]
584
- },
585
- "dependencies": {
586
- "type": "boolean",
587
- "description": "Include files belonging to the input for all the project dependencies of this target."
588
- },
589
- "input": {
590
- "type": "string",
591
- "description": "The name of the input."
592
- }
593
- },
594
- "oneOf": [
595
- {
596
- "required": ["projects", "input"]
597
- },
598
- {
599
- "required": ["dependencies", "input"]
600
- },
601
- {
602
- "required": ["input"],
603
- "not": {
604
- "anyOf": [
605
- {
606
- "required": ["projects"]
607
- },
608
- {
609
- "required": ["dependencies"]
610
- }
611
- ]
612
- }
613
- }
614
- ],
615
- "additionalProperties": false
616
- },
617
- {
618
- "type": "object",
619
- "properties": {
620
- "runtime": {
621
- "type": "string",
622
- "description": "The command that will be executed and the results of which is added to the hash"
623
- }
624
- },
625
- "additionalProperties": false
626
- },
627
- {
628
- "type": "object",
629
- "properties": {
630
- "env": {
631
- "type": "string",
632
- "description": "The name of the env var which value is added to the hash"
633
- }
634
- },
635
- "additionalProperties": false
636
- },
637
- {
638
- "type": "object",
639
- "properties": {
640
- "externalDependencies": {
641
- "type": "array",
642
- "items": {
643
- "type": "string"
644
- },
645
- "description": "The list of external dependencies that our target depends on for `nx:run-commands` and community plugins."
646
- }
647
- },
648
- "additionalProperties": false
649
- },
650
- {
651
- "type": "object",
652
- "properties": {
653
- "dependentTasksOutputFiles": {
654
- "type": "string",
655
- "description": "The glob list of output files that project depends on."
656
- },
657
- "transitive": {
658
- "type": "boolean",
659
- "description": "Whether the check for outputs should be recursive or stop at the first level of dependencies."
660
- }
661
- },
662
- "required": ["dependentTasksOutputFiles"],
663
- "additionalProperties": false
664
- }
665
- ]
666
- }
772
+ "$ref": "#/definitions/inputs"
667
773
  },
668
- "cliOptions": {
669
- "type": "object",
670
- "description": "Default generator collection.",
671
- "properties": {
672
- "packageManager": {
673
- "type": "string",
674
- "description": "The default package manager to use.",
675
- "enum": ["yarn", "pnpm", "npm", "bun"]
676
- }
677
- }
678
- },
679
- "generatorOptions": {
680
- "type": "object",
681
- "description": "List of default values used by generators."
682
- },
683
- "tasksRunnerOptions": {
684
- "type": "object",
685
- "description": "Available Task Runners.",
686
- "properties": {
687
- "runner": {
688
- "type": "string",
689
- "description": "Path to resolve the runner."
690
- },
691
- "options": {
692
- "type": "object",
693
- "description": "Default options for the runner.",
694
- "properties": {
695
- "accessToken": {
696
- "type": "string"
697
- },
698
- "nxCloudId": {
699
- "type": "string"
700
- },
701
- "captureStderr": {
702
- "type": "boolean",
703
- "description": "Defines whether the cache captures stderr or just stdout."
704
- },
705
- "parallel": {
706
- "type": "number",
707
- "description": "Defines the max number of targets ran in parallel."
708
- },
709
- "cacheableOperations": {
710
- "type": "array",
711
- "description": "Defines the list of targets/operations that are cached by Nx.",
712
- "items": {
713
- "type": "string"
714
- }
715
- },
716
- "cacheDirectory": {
717
- "type": "string",
718
- "description": "Defines where the local cache is stored."
719
- },
720
- "skipNxCache": {
721
- "type": "boolean",
722
- "description": "Defines whether the Nx Cache should be skipped."
723
- },
724
- "encryptionKey": {
725
- "type": "string",
726
- "description": "Defines an encryption key to support end-to-end encryption of your cloud cache. You may also provide an environment variable with the key NX_CLOUD_ENCRYPTION_KEY that contains an encryption key as its value. The Nx Cloud task runner normalizes the key length, so any length of key is acceptable."
774
+ "dependsOn": {
775
+ "type": "array",
776
+ "items": {
777
+ "oneOf": [
778
+ {
779
+ "type": "string"
780
+ },
781
+ {
782
+ "type": "object",
783
+ "properties": {
784
+ "projects": {
785
+ "oneOf": [
786
+ {
787
+ "type": "string",
788
+ "description": "A project name"
789
+ },
790
+ {
791
+ "type": "array",
792
+ "description": "An array of project names",
793
+ "minItems": 1,
794
+ "items": {
795
+ "type": "string"
727
796
  }
728
- }
729
- }
730
- },
731
- "additionalProperties": false
732
- },
733
- "targetDefaultsConfig": {
734
- "type": "object",
735
- "description": "Target defaults",
736
- "properties": {
737
- "executor": {
738
- "description": "The function that Nx will invoke when you run this target",
739
- "type": "string"
740
- },
741
- "options": {
742
- "type": "object"
743
- },
744
- "outputs": {
745
- "type": "array",
746
- "items": {
747
- "type": "string"
748
- }
749
- },
750
- "defaultConfiguration": {
797
+ }
798
+ ]
799
+ },
800
+ "dependencies": {
801
+ "type": "boolean"
802
+ },
803
+ "target": {
751
804
  "type": "string",
752
- "description": "The name of a configuration to use as the default if a configuration is not provided"
753
- },
754
- "configurations": {
755
- "type": "object",
756
- "description": "provides extra sets of values that will be merged into the options map",
757
- "additionalProperties": {
758
- "type": "object"
759
- }
760
- },
761
- "continuous": {
762
- "type": "boolean",
763
- "default": false,
764
- "description": "Whether this target runs continuously until stopped"
765
- },
766
- "parallelism": {
767
- "type": "boolean",
768
- "default": true,
769
- "description": "Whether this target can be run in parallel with other tasks"
770
- },
771
- "inputs": {
772
- "$ref": "#/definitions/inputs"
773
- },
774
- "dependsOn": {
775
- "type": "array",
776
- "items": {
777
- "oneOf": [
778
- {
779
- "type": "string"
780
- },
781
- {
782
- "type": "object",
783
- "properties": {
784
- "projects": {
785
- "oneOf": [
786
- {
787
- "type": "string",
788
- "description": "A project name"
789
- },
790
- {
791
- "type": "array",
792
- "description": "An array of project names",
793
- "minItems": 1,
794
- "items": {
795
- "type": "string"
796
- }
797
- }
798
- ]
799
- },
800
- "dependencies": {
801
- "type": "boolean"
802
- },
803
- "target": {
804
- "type": "string",
805
- "description": "The name of the target."
806
- },
807
- "params": {
808
- "type": "string",
809
- "description": "Configuration for params handling.",
810
- "enum": ["ignore", "forward"],
811
- "default": "ignore"
812
- }
813
- },
814
- "oneOf": [
815
- {
816
- "required": ["projects", "target"]
817
- },
818
- {
819
- "required": ["dependencies", "target"]
820
- },
821
- {
822
- "required": ["target"],
823
- "not": {
824
- "anyOf": [
825
- {
826
- "required": ["projects"]
827
- },
828
- {
829
- "required": ["dependencies"]
830
- }
831
- ]
832
- }
833
- }
834
- ],
835
- "additionalProperties": false
836
- }
837
- ]
838
- }
839
- },
840
- "cache": {
841
- "type": "boolean",
842
- "description": "Specifies if the given target should be cacheable"
843
- },
844
- "syncGenerators": {
845
- "type": "array",
846
- "items": {
847
- "type": "string"
848
- },
849
- "description": "List of generators to run before the target to ensure the workspace is up to date"
850
- }
851
- },
852
- "additionalProperties": false
853
- },
854
- "plugins": {
855
- "oneOf": [
856
- {
805
+ "description": "The name of the target."
806
+ },
807
+ "params": {
857
808
  "type": "string",
858
- "description": "A plugin module to load with default options"
809
+ "description": "Configuration for params handling.",
810
+ "enum": ["ignore", "forward"],
811
+ "default": "ignore"
812
+ }
859
813
  },
860
- {
861
- "type": "object",
862
- "properties": {
863
- "plugin": {
864
- "type": "string",
865
- "description": "The plugin module to load"
866
- },
867
- "options": {
868
- "type": "object",
869
- "description": "The options passed to the plugin when creating nodes and dependencies"
870
- },
871
- "include": {
872
- "type": "array",
873
- "description": "File patterns which are included by the plugin",
874
- "items": {
875
- "type": "string"
876
- }
814
+ "oneOf": [
815
+ {
816
+ "required": ["projects", "target"]
817
+ },
818
+ {
819
+ "required": ["dependencies", "target"]
820
+ },
821
+ {
822
+ "required": ["target"],
823
+ "not": {
824
+ "anyOf": [
825
+ {
826
+ "required": ["projects"]
877
827
  },
878
- "exclude": {
879
- "type": "array",
880
- "description": "File patterns which are excluded by the plugin",
881
- "items": {
882
- "type": "string"
883
- }
828
+ {
829
+ "required": ["dependencies"]
884
830
  }
831
+ ]
885
832
  }
886
- }
833
+ }
834
+ ],
835
+ "additionalProperties": false
836
+ }
887
837
  ]
838
+ }
888
839
  },
889
- "NxReleaseGitConfiguration": {
890
- "type": "object",
891
- "properties": {
892
- "commit": {
893
- "type": "boolean",
894
- "description": "Whether or not to automatically commit the changes made by current command"
895
- },
896
- "commitMessage": {
897
- "type": "string",
898
- "description": "Custom git commit message to use when committing the changes made by this command"
899
- },
900
- "commitArgs": {
901
- "type": ["string", "array"],
902
- "description": "Additional arguments (added after the --message argument, which may or may not be customized with --git-commit-message) to pass to the `git commit` command invoked behind the scenes"
903
- },
904
- "stageChanges": {
905
- "type": "boolean",
906
- "description": "Whether or not to stage the changes made by this command. Always treated as true if commit is true."
907
- },
908
- "tag": {
909
- "type": "boolean",
910
- "description": "Whether or not to automatically tag the changes made by this command"
911
- },
912
- "tagMessage": {
913
- "type": "string",
914
- "description": "Custom git tag message to use when tagging the changes made by this command. This defaults to be the same value as the tag itself."
915
- },
916
- "tagArgs": {
917
- "type": ["string", "array"],
918
- "description": "Additional arguments to pass to the `git tag` command invoked behind the scenes"
919
- },
920
- "push": {
921
- "type": "boolean",
922
- "description": "Whether or not to automatically push the changes made by this command. This defaults to false"
923
- },
924
- "pushArgs": {
925
- "type": ["string", "array"],
926
- "description": "Additional arguments to pass to the `git push` command invoked behind the scenes"
927
- }
840
+ "cache": {
841
+ "type": "boolean",
842
+ "description": "Specifies if the given target should be cacheable"
843
+ },
844
+ "syncGenerators": {
845
+ "type": "array",
846
+ "items": {
847
+ "type": "string"
848
+ },
849
+ "description": "List of generators to run before the target to ensure the workspace is up to date"
850
+ }
851
+ },
852
+ "additionalProperties": false
853
+ },
854
+ "plugins": {
855
+ "oneOf": [
856
+ {
857
+ "type": "string",
858
+ "description": "A plugin module to load with default options"
859
+ },
860
+ {
861
+ "type": "object",
862
+ "properties": {
863
+ "plugin": {
864
+ "type": "string",
865
+ "description": "The plugin module to load"
866
+ },
867
+ "options": {
868
+ "type": "object",
869
+ "description": "The options passed to the plugin when creating nodes and dependencies"
870
+ },
871
+ "include": {
872
+ "type": "array",
873
+ "description": "File patterns which are included by the plugin",
874
+ "items": {
875
+ "type": "string"
876
+ }
877
+ },
878
+ "exclude": {
879
+ "type": "array",
880
+ "description": "File patterns which are excluded by the plugin",
881
+ "items": {
882
+ "type": "string"
883
+ }
928
884
  }
885
+ }
886
+ }
887
+ ]
888
+ },
889
+ "NxReleaseGitConfiguration": {
890
+ "type": "object",
891
+ "properties": {
892
+ "commit": {
893
+ "type": "boolean",
894
+ "description": "Whether or not to automatically commit the changes made by current command"
929
895
  },
930
- "NxReleaseVersionConfiguration": {
931
- "type": "object",
932
- "description": "Configuration for the versioning phase of releases.",
933
- "additionalProperties": false,
934
- "properties": {
935
- "conventionalCommits": {
936
- "type": "boolean",
937
- "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.",
938
- "default": false
939
- },
940
- "git": {
941
- "$ref": "#/definitions/NxReleaseGitConfiguration"
942
- },
943
- "preVersionCommand": {
944
- "type": "string",
945
- "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'."
946
- },
947
- "specifierSource": {
948
- "type": "string",
949
- "enum": ["prompt", "conventional-commits", "version-plans"],
950
- "default": "prompt",
951
- "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."
952
- },
953
- "manifestRootsToUpdate": {
954
- "type": "array",
955
- "items": {
956
- "oneOf": [
957
- {
958
- "type": "string",
959
- "description": "Path to the directory containing a manifest file to update. Supports placeholders like {projectRoot} and {projectName}."
960
- },
961
- {
962
- "type": "object",
963
- "properties": {
964
- "path": {
965
- "type": "string",
966
- "description": "Path to the directory containing a manifest file to update. Supports placeholders like {projectRoot} and {projectName}."
967
- },
968
- "preserveLocalDependencyProtocols": {
969
- "type": "boolean",
970
- "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.",
971
- "default": true
972
- }
973
- },
974
- "required": ["path"],
975
- "additionalProperties": false
976
- }
977
- ]
978
- },
979
- "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."
980
- },
981
- "currentVersionResolver": {
982
- "type": "string",
983
- "enum": ["registry", "disk", "git-tag", "none"],
984
- "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."
985
- },
986
- "currentVersionResolverMetadata": {
987
- "type": "object",
988
- "additionalProperties": true,
989
- "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."
990
- },
991
- "fallbackCurrentVersionResolver": {
992
- "type": "string",
993
- "enum": ["disk"],
994
- "description": "The fallback version resolver to use when the configured currentVersionResolver fails to resolve the current version."
995
- },
996
- "versionPrefix": {
997
- "type": "string",
998
- "enum": ["auto", "", "~", "^", "="],
999
- "default": "auto",
1000
- "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."
1001
- },
1002
- "deleteVersionPlans": {
1003
- "type": "boolean",
1004
- "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.",
1005
- "default": false
1006
- },
1007
- "updateDependents": {
896
+ "commitMessage": {
897
+ "type": "string",
898
+ "description": "Custom git commit message to use when committing the changes made by this command"
899
+ },
900
+ "commitArgs": {
901
+ "type": ["string", "array"],
902
+ "description": "Additional arguments (added after the --message argument, which may or may not be customized with --git-commit-message) to pass to the `git commit` command invoked behind the scenes"
903
+ },
904
+ "stageChanges": {
905
+ "type": "boolean",
906
+ "description": "Whether or not to stage the changes made by this command. Always treated as true if commit is true."
907
+ },
908
+ "tag": {
909
+ "type": "boolean",
910
+ "description": "Whether or not to automatically tag the changes made by this command"
911
+ },
912
+ "tagMessage": {
913
+ "type": "string",
914
+ "description": "Custom git tag message to use when tagging the changes made by this command. This defaults to be the same value as the tag itself."
915
+ },
916
+ "tagArgs": {
917
+ "type": ["string", "array"],
918
+ "description": "Additional arguments to pass to the `git tag` command invoked behind the scenes"
919
+ },
920
+ "push": {
921
+ "type": "boolean",
922
+ "description": "Whether or not to automatically push the changes made by this command. This defaults to false"
923
+ },
924
+ "pushArgs": {
925
+ "type": ["string", "array"],
926
+ "description": "Additional arguments to pass to the `git push` command invoked behind the scenes"
927
+ }
928
+ }
929
+ },
930
+ "NxReleaseVersionConfiguration": {
931
+ "type": "object",
932
+ "description": "Configuration for the versioning phase of releases.",
933
+ "additionalProperties": false,
934
+ "properties": {
935
+ "conventionalCommits": {
936
+ "type": "boolean",
937
+ "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.",
938
+ "default": false
939
+ },
940
+ "git": {
941
+ "$ref": "#/definitions/NxReleaseGitConfiguration"
942
+ },
943
+ "preVersionCommand": {
944
+ "type": "string",
945
+ "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'."
946
+ },
947
+ "specifierSource": {
948
+ "type": "string",
949
+ "enum": ["prompt", "conventional-commits", "version-plans"],
950
+ "default": "prompt",
951
+ "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."
952
+ },
953
+ "manifestRootsToUpdate": {
954
+ "type": "array",
955
+ "items": {
956
+ "oneOf": [
957
+ {
958
+ "type": "string",
959
+ "description": "Path to the directory containing a manifest file to update. Supports placeholders like {projectRoot} and {projectName}."
960
+ },
961
+ {
962
+ "type": "object",
963
+ "properties": {
964
+ "path": {
1008
965
  "type": "string",
1009
- "enum": ["never", "auto", "always"],
1010
- "default": "auto",
1011
- "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, as long as a group or projects filter is not applied that does not include them. 'always' will cause dependents to be updated (a patch version bump) when a dependency is versioned, even if they are not included in the group or projects filter."
1012
- },
1013
- "logUnchangedProjects": {
966
+ "description": "Path to the directory containing a manifest file to update. Supports placeholders like {projectRoot} and {projectName}."
967
+ },
968
+ "preserveLocalDependencyProtocols": {
1014
969
  "type": "boolean",
1015
- "description": "Whether to log projects that have not changed during versioning.",
970
+ "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.",
1016
971
  "default": true
972
+ }
1017
973
  },
1018
- "preserveLocalDependencyProtocols": {
1019
- "type": "boolean",
1020
- "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.",
1021
- "default": true
1022
- },
1023
- "preserveMatchingDependencyRanges": {
1024
- "type": ["boolean", "array"],
1025
- "description": "Whether to preserve matching dependency ranges when updating them during versioning. This is true 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.)",
1026
- "default": true,
1027
- "items": {
1028
- "type": "string",
1029
- "enum": [
1030
- "dependencies",
1031
- "devDependencies",
1032
- "peerDependencies",
1033
- "optionalDependencies"
1034
- ]
1035
- }
1036
- },
1037
- "versionActions": {
1038
- "type": "string",
1039
- "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.",
1040
- "default": "@nx/js/src/release"
1041
- },
1042
- "versionActionsOptions": {
1043
- "type": "object",
1044
- "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.",
1045
- "additionalProperties": true
1046
- }
1047
- }
974
+ "required": ["path"],
975
+ "additionalProperties": false
976
+ }
977
+ ]
978
+ },
979
+ "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."
1048
980
  },
1049
- "NxReleaseGroupVersionConfiguration": {
1050
- "type": "object",
1051
- "properties": {
1052
- "groupPreVersionCommand": {
1053
- "type": "string",
1054
- "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'."
1055
- },
1056
- "conventionalCommits": {
1057
- "type": "boolean",
1058
- "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.",
1059
- "default": false
1060
- },
1061
- "git": {
1062
- "$ref": "#/definitions/NxReleaseGitConfiguration"
1063
- },
1064
- "specifierSource": {
1065
- "type": "string",
1066
- "enum": ["prompt", "conventional-commits", "version-plans"],
1067
- "default": "prompt",
1068
- "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."
1069
- },
1070
- "manifestRootsToUpdate": {
1071
- "type": "array",
1072
- "items": {
1073
- "oneOf": [
1074
- {
1075
- "type": "string",
1076
- "description": "Path to the directory containing a manifest file to update. Supports placeholders like {projectRoot} and {projectName}."
1077
- },
1078
- {
1079
- "type": "object",
1080
- "properties": {
1081
- "path": {
1082
- "type": "string",
1083
- "description": "Path to the directory containing a manifest file to update. Supports placeholders like {projectRoot} and {projectName}."
1084
- },
1085
- "preserveLocalDependencyProtocols": {
1086
- "type": "boolean",
1087
- "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.",
1088
- "default": true
1089
- }
1090
- },
1091
- "required": ["path"],
1092
- "additionalProperties": false
1093
- }
1094
- ]
1095
- },
1096
- "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."
1097
- },
1098
- "currentVersionResolver": {
1099
- "type": "string",
1100
- "enum": ["registry", "disk", "git-tag", "none"],
1101
- "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."
1102
- },
1103
- "currentVersionResolverMetadata": {
1104
- "type": "object",
1105
- "additionalProperties": true,
1106
- "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."
1107
- },
1108
- "fallbackCurrentVersionResolver": {
1109
- "type": "string",
1110
- "enum": ["disk"],
1111
- "description": "The fallback version resolver to use when the configured currentVersionResolver fails to resolve the current version."
1112
- },
1113
- "versionPrefix": {
1114
- "type": "string",
1115
- "enum": ["auto", "", "~", "^", "="],
1116
- "default": "auto",
1117
- "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."
1118
- },
1119
- "deleteVersionPlans": {
1120
- "type": "boolean",
1121
- "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.",
1122
- "default": false
1123
- },
1124
- "updateDependents": {
981
+ "currentVersionResolver": {
982
+ "type": "string",
983
+ "enum": ["registry", "disk", "git-tag", "none"],
984
+ "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."
985
+ },
986
+ "currentVersionResolverMetadata": {
987
+ "type": "object",
988
+ "additionalProperties": true,
989
+ "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."
990
+ },
991
+ "fallbackCurrentVersionResolver": {
992
+ "type": "string",
993
+ "enum": ["disk"],
994
+ "description": "The fallback version resolver to use when the configured currentVersionResolver fails to resolve the current version."
995
+ },
996
+ "versionPrefix": {
997
+ "type": "string",
998
+ "enum": ["auto", "", "~", "^", "="],
999
+ "default": "auto",
1000
+ "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."
1001
+ },
1002
+ "deleteVersionPlans": {
1003
+ "type": "boolean",
1004
+ "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.",
1005
+ "default": false
1006
+ },
1007
+ "updateDependents": {
1008
+ "type": "string",
1009
+ "enum": ["never", "auto", "always"],
1010
+ "default": "auto",
1011
+ "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, as long as a group or projects filter is not applied that does not include them. 'always' will cause dependents to be updated (a patch version bump) when a dependency is versioned, even if they are not included in the group or projects filter."
1012
+ },
1013
+ "logUnchangedProjects": {
1014
+ "type": "boolean",
1015
+ "description": "Whether to log projects that have not changed during versioning.",
1016
+ "default": true
1017
+ },
1018
+ "preserveLocalDependencyProtocols": {
1019
+ "type": "boolean",
1020
+ "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.",
1021
+ "default": true
1022
+ },
1023
+ "preserveMatchingDependencyRanges": {
1024
+ "type": ["boolean", "array"],
1025
+ "description": "Whether to preserve matching dependency ranges when updating them during versioning. This is true 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.)",
1026
+ "default": true,
1027
+ "items": {
1028
+ "type": "string",
1029
+ "enum": [
1030
+ "dependencies",
1031
+ "devDependencies",
1032
+ "peerDependencies",
1033
+ "optionalDependencies"
1034
+ ]
1035
+ }
1036
+ },
1037
+ "versionActions": {
1038
+ "type": "string",
1039
+ "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.",
1040
+ "default": "@nx/js/src/release"
1041
+ },
1042
+ "versionActionsOptions": {
1043
+ "type": "object",
1044
+ "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.",
1045
+ "additionalProperties": true
1046
+ }
1047
+ }
1048
+ },
1049
+ "NxReleaseGroupVersionConfiguration": {
1050
+ "type": "object",
1051
+ "properties": {
1052
+ "groupPreVersionCommand": {
1053
+ "type": "string",
1054
+ "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'."
1055
+ },
1056
+ "conventionalCommits": {
1057
+ "type": "boolean",
1058
+ "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.",
1059
+ "default": false
1060
+ },
1061
+ "git": {
1062
+ "$ref": "#/definitions/NxReleaseGitConfiguration"
1063
+ },
1064
+ "specifierSource": {
1065
+ "type": "string",
1066
+ "enum": ["prompt", "conventional-commits", "version-plans"],
1067
+ "default": "prompt",
1068
+ "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."
1069
+ },
1070
+ "manifestRootsToUpdate": {
1071
+ "type": "array",
1072
+ "items": {
1073
+ "oneOf": [
1074
+ {
1075
+ "type": "string",
1076
+ "description": "Path to the directory containing a manifest file to update. Supports placeholders like {projectRoot} and {projectName}."
1077
+ },
1078
+ {
1079
+ "type": "object",
1080
+ "properties": {
1081
+ "path": {
1125
1082
  "type": "string",
1126
- "enum": ["never", "auto"],
1127
- "default": "auto",
1128
- "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."
1129
- },
1130
- "logUnchangedProjects": {
1083
+ "description": "Path to the directory containing a manifest file to update. Supports placeholders like {projectRoot} and {projectName}."
1084
+ },
1085
+ "preserveLocalDependencyProtocols": {
1131
1086
  "type": "boolean",
1132
- "description": "Whether to log projects that have not changed during versioning.",
1087
+ "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.",
1133
1088
  "default": true
1089
+ }
1134
1090
  },
1135
- "preserveLocalDependencyProtocols": {
1136
- "type": "boolean",
1137
- "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.",
1138
- "default": true
1139
- },
1140
- "preserveMatchingDependencyRanges": {
1141
- "type": ["boolean", "array"],
1142
- "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.)",
1143
- "default": false,
1144
- "items": {
1145
- "type": "string",
1146
- "enum": [
1147
- "dependencies",
1148
- "devDependencies",
1149
- "peerDependencies",
1150
- "optionalDependencies"
1151
- ]
1152
- }
1153
- },
1154
- "versionActions": {
1155
- "type": "string",
1156
- "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.",
1157
- "default": "@nx/js/src/release"
1158
- },
1159
- "versionActionsOptions": {
1160
- "type": "object",
1161
- "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.",
1162
- "additionalProperties": true
1163
- }
1164
- },
1165
- "additionalProperties": false
1091
+ "required": ["path"],
1092
+ "additionalProperties": false
1093
+ }
1094
+ ]
1095
+ },
1096
+ "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."
1166
1097
  },
1167
- "NxReleaseChangelogConfiguration": {
1168
- "type": "object",
1169
- "properties": {
1170
- "createRelease": {
1171
- "oneOf": [
1172
- {
1173
- "type": "string",
1174
- "enum": ["github", "gitlab"]
1175
- },
1176
- {
1177
- "type": "boolean",
1178
- "enum": [false]
1179
- },
1180
- {
1181
- "$ref": "#/definitions/CreateReleaseProviderConfiguration"
1182
- }
1183
- ]
1184
- },
1185
- "entryWhenNoChanges": {
1186
- "oneOf": [
1187
- {
1188
- "type": "string"
1189
- },
1190
- {
1191
- "type": "boolean",
1192
- "enum": [false]
1193
- }
1194
- ]
1195
- },
1196
- "file": {
1197
- "oneOf": [
1198
- {
1199
- "type": "string"
1200
- },
1201
- {
1202
- "type": "boolean",
1203
- "enum": [false]
1204
- }
1205
- ]
1206
- },
1207
- "renderer": {
1208
- "type": "string"
1209
- },
1210
- "renderOptions": {
1211
- "$ref": "#/definitions/ChangelogRenderOptions"
1212
- }
1098
+ "currentVersionResolver": {
1099
+ "type": "string",
1100
+ "enum": ["registry", "disk", "git-tag", "none"],
1101
+ "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."
1102
+ },
1103
+ "currentVersionResolverMetadata": {
1104
+ "type": "object",
1105
+ "additionalProperties": true,
1106
+ "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."
1107
+ },
1108
+ "fallbackCurrentVersionResolver": {
1109
+ "type": "string",
1110
+ "enum": ["disk"],
1111
+ "description": "The fallback version resolver to use when the configured currentVersionResolver fails to resolve the current version."
1112
+ },
1113
+ "versionPrefix": {
1114
+ "type": "string",
1115
+ "enum": ["auto", "", "~", "^", "="],
1116
+ "default": "auto",
1117
+ "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."
1118
+ },
1119
+ "deleteVersionPlans": {
1120
+ "type": "boolean",
1121
+ "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.",
1122
+ "default": false
1123
+ },
1124
+ "updateDependents": {
1125
+ "type": "string",
1126
+ "enum": ["never", "auto"],
1127
+ "default": "auto",
1128
+ "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."
1129
+ },
1130
+ "logUnchangedProjects": {
1131
+ "type": "boolean",
1132
+ "description": "Whether to log projects that have not changed during versioning.",
1133
+ "default": true
1134
+ },
1135
+ "preserveLocalDependencyProtocols": {
1136
+ "type": "boolean",
1137
+ "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.",
1138
+ "default": true
1139
+ },
1140
+ "preserveMatchingDependencyRanges": {
1141
+ "type": ["boolean", "array"],
1142
+ "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.)",
1143
+ "default": false,
1144
+ "items": {
1145
+ "type": "string",
1146
+ "enum": [
1147
+ "dependencies",
1148
+ "devDependencies",
1149
+ "peerDependencies",
1150
+ "optionalDependencies"
1151
+ ]
1152
+ }
1153
+ },
1154
+ "versionActions": {
1155
+ "type": "string",
1156
+ "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.",
1157
+ "default": "@nx/js/src/release"
1158
+ },
1159
+ "versionActionsOptions": {
1160
+ "type": "object",
1161
+ "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.",
1162
+ "additionalProperties": true
1163
+ }
1164
+ },
1165
+ "additionalProperties": false
1166
+ },
1167
+ "NxReleaseChangelogConfiguration": {
1168
+ "type": "object",
1169
+ "properties": {
1170
+ "createRelease": {
1171
+ "oneOf": [
1172
+ {
1173
+ "type": "string",
1174
+ "enum": ["github", "gitlab"]
1175
+ },
1176
+ {
1177
+ "type": "boolean",
1178
+ "enum": [false]
1179
+ },
1180
+ {
1181
+ "$ref": "#/definitions/CreateReleaseProviderConfiguration"
1213
1182
  }
1183
+ ]
1214
1184
  },
1215
- "CreateReleaseProviderConfiguration": {
1216
- "type": "object",
1217
- "properties": {
1218
- "provider": {
1219
- "type": "string",
1220
- "enum": ["github-enterprise-server", "gitlab"]
1221
- },
1222
- "hostname": {
1223
- "type": "string",
1224
- "description": "The hostname of the VCS provider instance, e.g. github.example.com"
1225
- },
1226
- "apiBaseUrl": {
1227
- "type": "string",
1228
- "description": "The base URL for the relevant VCS provider API. If not set, this will default to `https://${hostname}/api/v3` (github) or `https://${hostname}/api/v4` (gitlab)."
1229
- }
1185
+ "entryWhenNoChanges": {
1186
+ "oneOf": [
1187
+ {
1188
+ "type": "string"
1230
1189
  },
1231
- "required": ["provider", "hostname"]
1190
+ {
1191
+ "type": "boolean",
1192
+ "enum": [false]
1193
+ }
1194
+ ]
1232
1195
  },
1233
- "NxReleaseVersionPlansConfiguration": {
1234
- "type": "object",
1235
- "properties": {
1236
- "ignorePatternsForPlanCheck": {
1237
- "type": "array",
1238
- "items": {
1239
- "type": "string"
1240
- },
1241
- "description": "Changes to files matching any of these optional patterns will be excluded from the affected project logic within the `nx release plan:check` command. This is useful for ignoring files that are not relevant to the versioning process, such as documentation or configuration files."
1242
- }
1196
+ "file": {
1197
+ "oneOf": [
1198
+ {
1199
+ "type": "string"
1200
+ },
1201
+ {
1202
+ "type": "boolean",
1203
+ "enum": [false]
1243
1204
  }
1205
+ ]
1244
1206
  },
1245
- "NxReleaseReleaseTagPatternStrictPreidConfiguration": {
1246
- "type": "boolean",
1247
- "description": "When set to true and multiple tags match your configured \"releaseTagPattern\", the git tag matching logic will strictly prefer the tag which contain a semver preid which matches the one given to the nx release invocation.\n\nFor example, let's say your \"releaseTagPattern\" is \"{projectName}@{version}\" and you have the following tags for project \"my-lib\", which uses semver:\n- my-lib@1.2.4-beta.1\n- my-lib@1.2.4-alpha.1\n- my-lib@1.2.3\n\nIf \"releaseTagPatternStrictPreid\" is set to true and you run:\n- `nx release --preid beta`, the git tag \"my-lib@1.2.4-beta.1\" will be resolved.\n- `nx release --preid alpha`, the git tag \"my-lib@1.2.4-alpha.1\" will be resolved.\n- `nx release` (no preid), the git tag \"my-lib@1.2.3\" will be resolved.\n\nIf \"releaseTagPatternStrictPreid\" is set to false, the git tag \"my-lib@1.2.4-beta.1\" will always be resolved as the latest tag that matches the pattern, regardless of any preid which gets passed to nx release.\n\nNOTE: This feature was added in a minor version and is therefore set to false by default, but this may change in a future major version."
1207
+ "renderer": {
1208
+ "type": "string"
1248
1209
  },
1249
- "ChangelogRenderOptions": {
1250
- "type": "object",
1251
- "additionalProperties": true
1210
+ "renderOptions": {
1211
+ "$ref": "#/definitions/ChangelogRenderOptions"
1212
+ }
1213
+ }
1214
+ },
1215
+ "CreateReleaseProviderConfiguration": {
1216
+ "type": "object",
1217
+ "properties": {
1218
+ "provider": {
1219
+ "type": "string",
1220
+ "enum": ["github-enterprise-server", "gitlab"]
1252
1221
  },
1253
- "NxReleaseConventionalCommitsConfiguration": {
1254
- "type": "object",
1255
- "properties": {
1256
- "types": {
1257
- "type": "object",
1258
- "description": "A map of commit types to their configuration. If a type is set to 'true', then it will be enabled with the default 'semverBump' of 'patch' and will appear in the changelog. If a type is set to 'false', then it will not trigger a version bump and will be hidden from the changelog.",
1259
- "additionalProperties": {
1260
- "oneOf": [
1261
- {
1262
- "type": "boolean"
1263
- },
1264
- {
1265
- "type": "object",
1266
- "properties": {
1267
- "semverBump": {
1268
- "type": "string",
1269
- "enum": ["major", "minor", "patch", "none"],
1270
- "description": "The semver bump to apply to the version of the project(s) when a commit of this type is included in the release.",
1271
- "default": "patch"
1272
- },
1273
- "changelog": {
1274
- "description": "Configuration for the changelog section for commits of this type. If set to 'true', then commits of this type will be included in the changelog with their default title for the type. If set to 'false', then commits of this type will not be included in the changelog.",
1275
- "oneOf": [
1276
- {
1277
- "type": "boolean"
1278
- },
1279
- {
1280
- "type": "object",
1281
- "properties": {
1282
- "title": {
1283
- "type": "string",
1284
- "description": "The title of the section in the changelog for commits of this type"
1285
- },
1286
- "hidden": {
1287
- "type": "boolean",
1288
- "description": "Whether or not to include commits of this type in the changelog",
1289
- "default": false
1290
- }
1291
- }
1292
- }
1293
- ]
1294
- }
1295
- }
1296
- }
1297
- ]
1298
- }
1299
- }
1300
- }
1222
+ "hostname": {
1223
+ "type": "string",
1224
+ "description": "The hostname of the VCS provider instance, e.g. github.example.com"
1301
1225
  },
1302
- "NxReleaseDockerConfiguration": {
1303
- "type": "object",
1304
- "description": "Configuration for handling Docker projects during nx release.",
1305
- "properties": {
1306
- "preVersionCommand": {
1226
+ "apiBaseUrl": {
1227
+ "type": "string",
1228
+ "description": "The base URL for the relevant VCS provider API. If not set, this will default to `https://${hostname}/api/v3` (github) or `https://${hostname}/api/v4` (gitlab)."
1229
+ }
1230
+ },
1231
+ "required": ["provider", "hostname"]
1232
+ },
1233
+ "NxReleaseVersionPlansConfiguration": {
1234
+ "type": "object",
1235
+ "properties": {
1236
+ "ignorePatternsForPlanCheck": {
1237
+ "type": "array",
1238
+ "items": {
1239
+ "type": "string"
1240
+ },
1241
+ "description": "Changes to files matching any of these optional patterns will be excluded from the affected project logic within the `nx release plan:check` command. This is useful for ignoring files that are not relevant to the versioning process, such as documentation or configuration files."
1242
+ }
1243
+ }
1244
+ },
1245
+ "NxReleaseReleaseTagPatternStrictPreidConfiguration": {
1246
+ "type": "boolean",
1247
+ "description": "When set to true and multiple tags match your configured \"releaseTagPattern\", the git tag matching logic will strictly prefer the tag which contain a semver preid which matches the one given to the nx release invocation.\n\nFor example, let's say your \"releaseTagPattern\" is \"{projectName}@{version}\" and you have the following tags for project \"my-lib\", which uses semver:\n- my-lib@1.2.4-beta.1\n- my-lib@1.2.4-alpha.1\n- my-lib@1.2.3\n\nIf \"releaseTagPatternStrictPreid\" is set to true and you run:\n- `nx release --preid beta`, the git tag \"my-lib@1.2.4-beta.1\" will be resolved.\n- `nx release --preid alpha`, the git tag \"my-lib@1.2.4-alpha.1\" will be resolved.\n- `nx release` (no preid), the git tag \"my-lib@1.2.3\" will be resolved.\n\nIf \"releaseTagPatternStrictPreid\" is set to false, the git tag \"my-lib@1.2.4-beta.1\" will always be resolved as the latest tag that matches the pattern, regardless of any preid which gets passed to nx release.\n\nNOTE: This feature was added in a minor version and is therefore set to false by default, but this may change in a future major version."
1248
+ },
1249
+ "ChangelogRenderOptions": {
1250
+ "type": "object",
1251
+ "additionalProperties": true
1252
+ },
1253
+ "NxReleaseConventionalCommitsConfiguration": {
1254
+ "type": "object",
1255
+ "properties": {
1256
+ "types": {
1257
+ "type": "object",
1258
+ "description": "A map of commit types to their configuration. If a type is set to 'true', then it will be enabled with the default 'semverBump' of 'patch' and will appear in the changelog. If a type is set to 'false', then it will not trigger a version bump and will be hidden from the changelog.",
1259
+ "additionalProperties": {
1260
+ "oneOf": [
1261
+ {
1262
+ "type": "boolean"
1263
+ },
1264
+ {
1265
+ "type": "object",
1266
+ "properties": {
1267
+ "semverBump": {
1307
1268
  "type": "string",
1308
- "description": "A command to run after validation of nx release configuration, but before docker versioning begins. Useful 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'."
1309
- },
1310
- "skipVersionActions": {
1269
+ "enum": ["major", "minor", "patch", "none"],
1270
+ "description": "The semver bump to apply to the version of the project(s) when a commit of this type is included in the release.",
1271
+ "default": "patch"
1272
+ },
1273
+ "changelog": {
1274
+ "description": "Configuration for the changelog section for commits of this type. If set to 'true', then commits of this type will be included in the changelog with their default title for the type. If set to 'false', then commits of this type will not be included in the changelog.",
1311
1275
  "oneOf": [
1312
- {
1313
- "type": "array",
1314
- "items": {
1315
- "type": "string"
1316
- },
1317
- "description": "Array of projects which should use a no-op VersionActions implementation rather than any potentially inferred by default or via Inference Plugins."
1318
- },
1319
- {
1276
+ {
1277
+ "type": "boolean"
1278
+ },
1279
+ {
1280
+ "type": "object",
1281
+ "properties": {
1282
+ "title": {
1283
+ "type": "string",
1284
+ "description": "The title of the section in the changelog for commits of this type"
1285
+ },
1286
+ "hidden": {
1320
1287
  "type": "boolean",
1321
- "description": "When set to true, all projects in the release setup/release group will use a no-op VersionActions implementation."
1288
+ "description": "Whether or not to include commits of this type in the changelog",
1289
+ "default": false
1290
+ }
1322
1291
  }
1323
- ],
1324
- "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)."
1325
- },
1326
- "versionSchemes": {
1327
- "type": "object",
1328
- "additionalProperties": {
1329
- "type": "string"
1330
- },
1331
- "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\""
1332
- },
1333
- "repositoryName": {
1334
- "type": "string",
1335
- "description": "Repository name for the image on the configured registry"
1336
- },
1337
- "registryUrl": {
1338
- "type": "string",
1339
- "description": "Url of the Docker Image/Container Registry to push images to. Defaults to Docker Hub."
1292
+ }
1293
+ ]
1294
+ }
1340
1295
  }
1296
+ }
1297
+ ]
1298
+ }
1299
+ }
1300
+ }
1301
+ },
1302
+ "NxReleaseDockerConfiguration": {
1303
+ "type": "object",
1304
+ "description": "Configuration for handling Docker projects during nx release.",
1305
+ "properties": {
1306
+ "preVersionCommand": {
1307
+ "type": "string",
1308
+ "description": "A command to run after validation of nx release configuration, but before docker versioning begins. Useful 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'."
1309
+ },
1310
+ "skipVersionActions": {
1311
+ "oneOf": [
1312
+ {
1313
+ "type": "array",
1314
+ "items": {
1315
+ "type": "string"
1316
+ },
1317
+ "description": "Array of projects which should use a no-op VersionActions implementation rather than any potentially inferred by default or via Inference Plugins."
1341
1318
  },
1342
- "additionalProperties": false
1319
+ {
1320
+ "type": "boolean",
1321
+ "description": "When set to true, all projects in the release setup/release group will use a no-op VersionActions implementation."
1322
+ }
1323
+ ],
1324
+ "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)."
1343
1325
  },
1344
- "NxReleaseGroupDockerConfiguration": {
1345
- "type": "object",
1346
- "properties": {
1347
- "groupPreVersionCommand": {
1348
- "type": "string",
1349
- "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`"
1350
- },
1351
- "skipVersionActions": {
1352
- "oneOf": [
1353
- {
1354
- "type": "array",
1355
- "items": {
1356
- "type": "string"
1357
- },
1358
- "description": "Array of projects which should use a no-op VersionActions implementation rather than any potentially inferred by default or via Inference Plugins."
1359
- },
1360
- {
1361
- "type": "boolean",
1362
- "description": "When set to true, all projects in the release setup/release group will use a no-op VersionActions implementation."
1363
- }
1364
- ],
1365
- "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)."
1366
- },
1367
- "versionSchemes": {
1368
- "type": "object",
1369
- "additionalProperties": {
1370
- "type": "string"
1371
- },
1372
- "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\""
1373
- },
1374
- "repositoryName": {
1375
- "type": "string",
1376
- "description": "Repository name for the image on the configured registry"
1377
- },
1378
- "registryUrl": {
1379
- "type": "string",
1380
- "description": "Url of the Docker Image/Container Registry to push images to. Defaults to Docker Hub."
1381
- }
1326
+ "versionSchemes": {
1327
+ "type": "object",
1328
+ "additionalProperties": {
1329
+ "type": "string"
1330
+ },
1331
+ "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\""
1332
+ },
1333
+ "repositoryName": {
1334
+ "type": "string",
1335
+ "description": "Repository name for the image on the configured registry"
1336
+ },
1337
+ "registryUrl": {
1338
+ "type": "string",
1339
+ "description": "Url of the Docker Image/Container Registry to push images to. Defaults to Docker Hub."
1340
+ }
1341
+ },
1342
+ "additionalProperties": false
1343
+ },
1344
+ "NxReleaseGroupDockerConfiguration": {
1345
+ "type": "object",
1346
+ "properties": {
1347
+ "groupPreVersionCommand": {
1348
+ "type": "string",
1349
+ "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`"
1350
+ },
1351
+ "skipVersionActions": {
1352
+ "oneOf": [
1353
+ {
1354
+ "type": "array",
1355
+ "items": {
1356
+ "type": "string"
1357
+ },
1358
+ "description": "Array of projects which should use a no-op VersionActions implementation rather than any potentially inferred by default or via Inference Plugins."
1382
1359
  },
1383
- "additionalProperties": false
1360
+ {
1361
+ "type": "boolean",
1362
+ "description": "When set to true, all projects in the release setup/release group will use a no-op VersionActions implementation."
1363
+ }
1364
+ ],
1365
+ "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)."
1366
+ },
1367
+ "versionSchemes": {
1368
+ "type": "object",
1369
+ "additionalProperties": {
1370
+ "type": "string"
1371
+ },
1372
+ "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\""
1373
+ },
1374
+ "repositoryName": {
1375
+ "type": "string",
1376
+ "description": "Repository name for the image on the configured registry"
1377
+ },
1378
+ "registryUrl": {
1379
+ "type": "string",
1380
+ "description": "Url of the Docker Image/Container Registry to push images to. Defaults to Docker Hub."
1384
1381
  }
1382
+ },
1383
+ "additionalProperties": false
1385
1384
  }
1385
+ }
1386
1386
  }