You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
"summary": "Required: Path(s) to changelog YAML file(s) to add as comma-separated values (e.g., --add \u0022file1.yaml,file2.yaml\u0022). Supports tilde (~) expansion and relative paths.",
2904
+
"summary": "Optional: Changelog YAML paths to add. Repeat --add or pass a comma-separated list in one value (for example, --add \u0022file1.yaml,file2.yaml\u0022). Supports tilde (~) expansion and relative paths.",
2905
+
"repeatable": true,
2906
+
"elementType": "string"
2907
+
},
2908
+
{
2909
+
"role": "flag",
2910
+
"name": "remove",
2911
+
"type": "array",
2912
+
"required": false,
2913
+
"summary": "Optional: Changelog YAML paths to exclude from the effective bundle. Repeat --remove or pass a comma-separated list in one value. Supports tilde (~) expansion and relative paths.",
2905
2914
"repeatable": true,
2906
2915
"elementType": "string"
2907
2916
},
@@ -2910,9 +2919,25 @@
2910
2919
"name": "resolve",
2911
2920
"type": "boolean",
2912
2921
"required": false,
2913
-
"summary": "Optional: Copy the contents of each changelog file into the entries array. Use --no-resolve to explicitly turn off resolve (overrides inference from original bundle).",
2922
+
"summary": "Optional: When using --add, inline each added changelog\u0027s content in the amend file. Use --no-resolve to record file references only. When omitted, inferred from the parent bundle. Does not apply to --remove.",
2914
2923
"defaultValue": "default"
2915
2924
},
2925
+
{
2926
+
"role": "flag",
2927
+
"name": "force",
2928
+
"type": "boolean",
2929
+
"required": false,
2930
+
"summary": "Optional: When removing, match by file name even if the bundle checksum differs from the file on disk.",
2931
+
"defaultValue": "false"
2932
+
},
2933
+
{
2934
+
"role": "flag",
2935
+
"name": "dry-run",
2936
+
"type": "boolean",
2937
+
"required": false,
2938
+
"summary": "Optional: Preview changes without writing an amend file.",
Copy file name to clipboardExpand all lines: docs/cli/changelog/cmd-bundle-amend.md
+71-5Lines changed: 71 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,14 +1,16 @@
1
1
## Description
2
2
3
-
Amend a bundle with additional changelog entries.
3
+
Amend a bundle with additional or excluded changelog entries without modifying the parent bundle file.
4
4
Amend bundles follow a specific naming convention: `{parent-bundle-name}.amend-{N}.yaml` where `{N}` is a sequence number.
5
5
6
+
Specify at least one of `--add` or `--remove`.
7
+
6
8
To create a bundle, use [](/cli/changelog/bundle.md).
7
9
For details and examples, go to [](/contribute/bundle-changelogs.md).
8
10
9
11
## Resolve behaviour
10
12
11
-
By default, the `bundle-amend` command **infers** whether to resolve entries from the original bundle.
13
+
By default, the `bundle-amend` command **infers** whether to resolve entries from the original bundle when you use `--add`.
12
14
If the original bundle contains resolved entries (with inline `title`, `type`, and so on), the amend file will also be resolved.
13
15
If the original bundle contains only file references, the amend file will also contain only file references.
14
16
@@ -19,9 +21,13 @@ You can override this behaviour:
19
21
-`--resolve`: Force entries to be resolved (inline content), regardless of the original bundle.
20
22
-`--no-resolve`: Force entries to contain only file references, regardless of the original bundle.
21
23
24
+
`--resolve` and `--no-resolve` apply only to `--add`. Removals always record `exclude-entries` with file name and checksum.
25
+
22
26
## Output
23
27
24
-
Amend bundles contain only the additional entries, not a full repetition of the original bundle. For example:
28
+
Amend bundles contain only the changes for that amend file, not a full repetition of the original bundle.
29
+
30
+
Additions:
25
31
26
32
```yaml
27
33
# 9.3.0.amend-1.yaml
@@ -31,8 +37,20 @@ entries:
31
37
checksum: abc123def456
32
38
```
33
39
34
-
When bundles are loaded (either via the `changelog render` command or the `{changelog}` directive), amend files are **automatically merged** with their parent bundles.
35
-
The entries from all matching amend files are combined with the parent bundle's entries, and the result is rendered as a single release.
40
+
Removals:
41
+
42
+
```yaml
43
+
# 9.3.0.amend-2.yaml
44
+
exclude-entries:
45
+
- file:
46
+
name: 138723.yaml
47
+
checksum: def456abc123
48
+
```
49
+
50
+
An amend file can contain both `exclude-entries` and `entries`. Within each amend file, exclusions are applied before additions.
51
+
52
+
When bundles are loaded (either via the `changelog render` command or the `{changelog}` directive), amend files are **automatically merged** with their parent bundles in sequence (`amend-1`, `amend-2`, …).
53
+
The result is rendered as a single release.
36
54
37
55
:::{note}
38
56
Amend bundles do not need to include `products` or `hide-features` fields — they inherit these from their parent bundle. If an amend bundle is found without a matching parent bundle, it remains standalone.
Copy file name to clipboardExpand all lines: docs/cli/changelog/cmd-remove.md
+10Lines changed: 10 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,6 +11,16 @@ Before deleting anything, the command checks whether any matching files are refe
11
11
12
12
For more context, go to [](/contribute/bundle-changelogs.md#changelog-remove).
13
13
14
+
## Bundle dependency check
15
+
16
+
The dependency scan considers the **effective** entry list for each parent bundle: parent `entries` merged with amend sidecars (`{bundle}.amend-N.yaml`) in numeric order. Within each amend file, `exclude-entries` are applied before additions, matching how bundles are loaded for [`changelog render`](/cli/changelog/render.md) and the `{changelog}` directive.
17
+
18
+
A changelog file blocks deletion only when it still appears in that effective list as an **unresolved** entry (the bundle references the file by name and checksum rather than embedding inline title and type). Resolved entries do not require the source file on disk.
19
+
20
+
If you removed an entry from a bundle with [`changelog bundle-amend --remove`](/cli/changelog/bundle-amend.md), the corresponding `exclude-entries` record drops it from the effective list, so `changelog remove` can delete the source file even when the parent bundle still lists it.
21
+
22
+
Amend sidecar files are not scanned as parent bundles themselves—only the parent bundle file plus its amend chain is evaluated. If an amend file cannot be parsed, the command logs a warning and uses the parent bundle entries only for that dependency check.
23
+
14
24
## Directory resolution
15
25
16
26
Both modes use the same ordered fallback to locate changelog YAML files and existing bundles.
Amend bundles follow a specific naming convention: `{parent-bundle-name}.amend-{N}.yaml`where `{N}` is a sequence number.
251
251
252
-
:::{note}
253
-
There is currently no command to **remove** changelogs from a bundle. You must edit the bundle file manually or else re-generate the bundle with an updated source of truth or a new rule that excludes the changelog.
254
-
:::
252
+
To remove entries from an existing bundle without editing the parent file, use `--remove` on the same command:
253
+
254
+
```sh
255
+
docs-builder changelog bundle-amend \
256
+
./docs/releases/9.3.0.yaml \
257
+
--remove "./docs/changelog/138723.yaml"
258
+
```
259
+
260
+
This creates an amend file with `exclude-entries` that is merged when the bundle is rendered.
261
+
After excluding an entry from unresolved bundles, you can use `changelog remove` to delete the source changelog file.
255
262
256
263
When bundles are turned into docs (either via the `changelog render` command or the `{changelog}` directive), amend files are **automatically merged** with their parent bundles.
257
264
The changelogs from all matching amend files are combined with the parent bundle's changelogs and the result is rendered as a single release.
Copy file name to clipboardExpand all lines: docs/syntax/changelog.md
+6-3Lines changed: 6 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -286,7 +286,7 @@ Bundles with the same target version/date are automatically merged into a single
286
286
287
287
Bundles can have associated **amend files** that follow the naming pattern `{bundle-name}.amend-{N}.yaml` (e.g., `9.3.0.amend-1.yaml`). When loading bundles, the directive automatically discovers and merges amend files with their parent bundles.
288
288
289
-
This allows you to add late additions to a release without modifying the original bundle file:
289
+
This allows you to add or remove late changes to a release without modifying the original bundle file:
290
290
291
291
```
292
292
bundles/
@@ -295,6 +295,8 @@ bundles/
295
295
└── 9.3.0.amend-2.yaml # Second amend (auto-merged with parent)
296
296
```
297
297
298
+
Amend files may contain `entries` (additions) and `exclude-entries` (removals). Within each amend file, exclusions are applied before additions. Amend files are processed in numeric order.
299
+
298
300
All entries from the parent and amend bundles are rendered together as a single release section. The parent bundle's metadata (products, hide-features, repo) is preserved.
299
301
300
302
## Default folder structure
@@ -386,8 +388,9 @@ This prevents silent data loss where changelog entries would be quietly omitted
386
388
To fix this, either:
387
389
388
390
- Restore the missing changelog files, or
389
-
- Re-create the bundle with `--resolve` to embed entry content directly (making the bundle self-contained), or
390
-
- Remove the unresolvable entry from the bundle file.
391
+
- Re-create the bundle with `--resolve` to embed entry content directly (making the bundle self-contained).
392
+
393
+
`bundle-amend --remove`only applies when the source changelog file is still available (for example, to drop an entry from the effective bundle before you delete the file with `changelog remove`).
391
394
392
395
:::{tip}
393
396
In general, if you want to be able to remove changelog files after your releases, create your bundles with the `--resolve` option or set `bundle.resolve` to `true` in the changelog configuration file.
0 commit comments