nx 22.3.0 → 22.3.2

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": {
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
+ },
16
28
  "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
- },
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."
29
+ "type": "string",
30
+ "description": "Default --base used by affected logic."
59
31
  },
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
32
+ "tasksRunnerOptions": {
33
+ "type": "object",
34
+ "additionalProperties": {
35
+ "$ref": "#/definitions/tasksRunnerOptions"
36
+ }
88
37
  },
89
- "autoExit": {
90
- "oneOf": [
91
- {
92
- "type": "boolean"
93
- },
94
- {
95
- "type": "number"
38
+ "namedInputs": {
39
+ "type": "object",
40
+ "description": "Named inputs used by inputs defined in targets",
41
+ "additionalProperties": {
42
+ "$ref": "#/definitions/inputs"
96
43
  }
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
100
44
  },
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
- }
45
+ "targetDefaults": {
46
+ "type": "object",
47
+ "description": "Target defaults",
48
+ "additionalProperties": {
49
+ "$ref": "#/definitions/targetDefaultsConfig"
163
50
  }
164
- ]
165
51
  },
166
- "groups": {
167
- "type": "object",
168
- "additionalProperties": {
52
+ "workspaceLayout": {
169
53
  "type": "object",
54
+ "description": "Where new apps + libs should be placed.",
170
55
  "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": {
56
+ "libsDir": {
209
57
  "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"
58
+ "description": "Default folder name for libs."
316
59
  },
317
- {
318
- "type": "boolean"
60
+ "appsDir": {
61
+ "type": "string",
62
+ "description": "Default folder name for apps."
319
63
  }
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
64
  },
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"]
65
+ "additionalProperties": false
337
66
  },
338
- "git": {
339
- "$ref": "#/definitions/NxReleaseGitConfiguration"
67
+ "cli": {
68
+ "$ref": "#/definitions/cliOptions"
340
69
  },
341
- "version": {
342
- "$ref": "#/definitions/NxReleaseVersionConfiguration"
70
+ "generators": {
71
+ "$ref": "#/definitions/generatorOptions"
343
72
  },
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."
73
+ "plugins": {
74
+ "type": "array",
75
+ "description": "Plugins for extending the project graph.",
76
+ "items": {
77
+ "$ref": "#/definitions/plugins"
352
78
  }
353
- ]
354
79
  },
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"
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
367
88
  },
368
- {
369
- "type": "array",
370
- "items": {
371
- "type": "string"
372
- }
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
100
+ },
101
+ "suppressHints": {
102
+ "type": "boolean",
103
+ "description": "Whether to suppress hint popups that provide guidance for unhandled keys.",
104
+ "default": false
373
105
  }
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
106
  },
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
107
+ "additionalProperties": false
391
108
  },
392
- "releaseTagPattern": {
393
- "type": "string",
394
- "description": "DEPRECATED: Use releaseTag.pattern instead. Will be removed in Nx 23."
109
+ "defaultProject": {
110
+ "type": "string",
111
+ "description": "Default project. When project isn't provided, the default project will be used."
395
112
  },
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."
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."
409
116
  },
410
- "releaseTagPatternRequireSemver": {
411
- "type": "boolean",
412
- "description": "DEPRECATED: Use releaseTag.requireSemver instead. Will be removed in Nx 23."
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."
413
120
  },
414
- "releaseTagPatternPreferDockerVersion": {
415
- "type": ["boolean", "string"],
416
- "enum": [true, false, "both"],
417
- "description": "DEPRECATED: Use releaseTag.preferDockerVersion instead. Will be removed in Nx 23."
121
+ "nxCloudEncryptionKey": {
122
+ "type": "string",
123
+ "description": "Specifies the encryption key used to encrypt artifacts data before sending it to nx cloud."
418
124
  },
419
- "releaseTagPatternStrictPreid": {
420
- "$ref": "#/definitions/NxReleaseReleaseTagPatternStrictPreidConfiguration",
421
- "description": "DEPRECATED: Use releaseTag.strictPreid instead. Will be removed in Nx 23."
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."
422
128
  },
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)"
129
+ "parallel": {
130
+ "type": "number",
131
+ "description": "Specifies how many tasks are ran in parallel by Nx for the default tasks runner."
447
132
  },
448
- "generatorOptions": {
449
- "type": "object",
450
- "description": "Options for the sync generators.",
451
- "additionalProperties": {
452
- "type": "object"
453
- }
133
+ "cacheDirectory": {
134
+ "type": "string",
135
+ "description": "Specifies the default location of the cache directory."
454
136
  },
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."
137
+ "useDaemonProcess": {
138
+ "type": "boolean",
139
+ "description": "Specifies whether the daemon should be used for the default tasks runner."
458
140
  },
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."
141
+ "useInferencePlugins": {
142
+ "type": "boolean",
143
+ "description": "Specifies whether to add inference plugins when generating new projects."
486
144
  },
487
- "rules": {
488
- "type": "array",
489
- "description": "List of conformance rules to apply",
490
- "items": {
145
+ "release": {
491
146
  "type": "object",
147
+ "description": "Configuration for the nx release commands.",
148
+ "additionalProperties": false,
492
149
  "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"
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."
517
325
  },
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"
326
+ "git": {
327
+ "$ref": "#/definitions/NxReleaseGitConfiguration"
521
328
  }
522
- },
523
- "required": ["matcher", "explanation"],
524
- "additionalProperties": false
525
329
  }
526
- ]
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
+ }
389
+ },
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."
429
+ },
430
+ {
431
+ "$ref": "#/definitions/NxReleaseDockerConfiguration"
432
+ }
433
+ ]
527
434
  }
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
- {
435
+ }
436
+ },
437
+ "sync": {
568
438
  "type": "object",
439
+ "description": "Configuration for the `nx sync` command",
569
440
  "properties": {
570
- "projects": {
571
- "oneOf": [
572
- {
573
- "type": "string",
574
- "description": "The project that the targets belong to."
575
- },
576
- {
441
+ "globalGenerators": {
577
442
  "type": "array",
578
- "description": "The projects that the targets belong to.",
579
443
  "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"]
444
+ "type": "string"
607
445
  },
608
- {
609
- "required": ["dependencies"]
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"
610
453
  }
611
- ]
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"
463
+ },
464
+ "description": "List of registered task sync generators to disable."
612
465
  }
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
466
  },
635
467
  "additionalProperties": false
636
- },
637
- {
468
+ },
469
+ "conformance": {
638
470
  "type": "object",
471
+ "description": "Configuration for Nx Conformance",
639
472
  "properties": {
640
- "externalDependencies": {
641
- "type": "array",
642
- "items": {
643
- "type": "string"
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."
644
486
  },
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
- }
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
+ }
661
544
  },
662
- "required": ["dependentTasksOutputFiles"],
545
+ "required": ["rules"],
663
546
  "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
- }
729
547
  }
730
- },
731
- "additionalProperties": false
732
548
  },
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
- },
549
+ "definitions": {
771
550
  "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
- },
551
+ "type": "array",
552
+ "items": {
814
553
  "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"]
554
+ {
555
+ "type": "string"
556
+ },
557
+ {
558
+ "type": "object",
559
+ "properties": {
560
+ "fileset": {
561
+ "type": "string",
562
+ "description": "A glob"
563
+ }
827
564
  },
828
- {
829
- "required": ["dependencies"]
830
- }
831
- ]
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
832
664
  }
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
- {
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
- }
665
+ ]
884
666
  }
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"
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
667
  },
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"
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
+ }
942
678
  },
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'."
679
+ "generatorOptions": {
680
+ "type": "object",
681
+ "description": "List of default values used by generators."
946
682
  },
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."
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
+ }
729
+ }
730
+ },
731
+ "additionalProperties": false
952
732
  },
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": {
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": {
965
751
  "type": "string",
966
- "description": "Path to the directory containing a manifest file to update. Supports placeholders like {projectRoot} and {projectName}."
967
- },
968
- "preserveLocalDependencyProtocols": {
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": {
969
762
  "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
- }
763
+ "default": false,
764
+ "description": "Whether this target runs continuously until stopped"
973
765
  },
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": {
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."
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
1069
853
  },
1070
- "manifestRootsToUpdate": {
1071
- "type": "array",
1072
- "items": {
854
+ "plugins": {
1073
855
  "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": {
856
+ {
1082
857
  "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
- }
858
+ "description": "A plugin module to load with default options"
1090
859
  },
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": {
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"
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
+ }
884
+ }
885
+ }
886
+ }
1151
887
  ]
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
888
  },
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"
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
+ }
1182
928
  }
1183
- ]
1184
929
  },
1185
- "entryWhenNoChanges": {
1186
- "oneOf": [
1187
- {
1188
- "type": "string"
1189
- },
1190
- {
1191
- "type": "boolean",
1192
- "enum": [false]
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": {
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
+ }
1193
1047
  }
1194
- ]
1195
1048
  },
1196
- "file": {
1197
- "oneOf": [
1198
- {
1199
- "type": "string"
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": {
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
+ }
1200
1164
  },
1201
- {
1202
- "type": "boolean",
1203
- "enum": [false]
1204
- }
1205
- ]
1206
- },
1207
- "renderer": {
1208
- "type": "string"
1209
- },
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"]
1221
- },
1222
- "hostname": {
1223
- "type": "string",
1224
- "description": "The hostname of the VCS provider instance, e.g. github.example.com"
1165
+ "additionalProperties": false
1225
1166
  },
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": {
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.",
1167
+ "NxReleaseChangelogConfiguration": {
1168
+ "type": "object",
1169
+ "properties": {
1170
+ "createRelease": {
1275
1171
  "oneOf": [
1276
- {
1277
- "type": "boolean"
1278
- },
1279
- {
1280
- "type": "object",
1281
- "properties": {
1282
- "title": {
1172
+ {
1283
1173
  "type": "string",
1284
- "description": "The title of the section in the changelog for commits of this type"
1285
- },
1286
- "hidden": {
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
+ {
1287
1191
  "type": "boolean",
1288
- "description": "Whether or not to include commits of this type in the changelog",
1289
- "default": false
1290
- }
1192
+ "enum": [false]
1291
1193
  }
1292
- }
1293
1194
  ]
1294
- }
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"
1295
1212
  }
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'."
1213
+ }
1309
1214
  },
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."
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
+ }
1318
1230
  },
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)."
1231
+ "required": ["provider", "hostname"]
1325
1232
  },
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\""
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
+ }
1332
1244
  },
1333
- "repositoryName": {
1334
- "type": "string",
1335
- "description": "Repository name for the image on the configured registry"
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."
1336
1248
  },
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`"
1249
+ "ChangelogRenderOptions": {
1250
+ "type": "object",
1251
+ "additionalProperties": true
1350
1252
  },
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."
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
+ }
1363
1300
  }
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
1301
  },
1374
- "repositoryName": {
1375
- "type": "string",
1376
- "description": "Repository name for the image on the configured registry"
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."
1318
+ },
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)."
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."
1340
+ }
1341
+ },
1342
+ "additionalProperties": false
1377
1343
  },
1378
- "registryUrl": {
1379
- "type": "string",
1380
- "description": "Url of the Docker Image/Container Registry to push images to. Defaults to Docker Hub."
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
+ }
1382
+ },
1383
+ "additionalProperties": false
1381
1384
  }
1382
- },
1383
- "additionalProperties": false
1384
1385
  }
1385
- }
1386
1386
  }