nx 22.1.0-canary.20251022-681825e → 22.1.0-canary.20251023-59cf495

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