changelog bundle-amend cli command
docs-builder changelog bundle-amend <bundle-path> [options]
Amend a bundle with additional or excluded changelog entries without modifying the parent bundle file.
Amend bundles follow a specific naming convention: {parent-bundle-name}.amend-{N}.yaml where {N} is a sequence number.
Specify at least one of --add or --remove.
To create a bundle, use changelog bundle cli command. For details and examples, go to Bundle changelogs.
<bundle-path>stringrequired-
Required: Path to the original bundle file to amend
Constraints: symbolic links not allowed, must exist, extensions: yml, yaml
--addstring[]-
Optional: Changelog YAML paths to add. Repeat --add or pass a comma-separated list in one value (for example, --add "file1.yaml,file2.yaml"). Supports tilde (~) expansion and relative paths.
Repeatable: pass
--addmultiple times to supply more than one value --removestring[]-
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.
Repeatable: pass
--removemultiple times to supply more than one value --[no-]resolve- Optional: When using --add, inline each added changelog's 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.
--[no-]force-
Optional: When removing, match by file name even if the bundle checksum differs from the file on disk.
Default:
false --[no-]dry-run-
Optional: Preview changes without writing an amend file.
Default:
false -l--log-levelenum-
Minimum log level.
Values: trace, debug, information, warning, error, critical, none
Default:
information -c--config-sourceenum-
Override the configuration source: local, remote
Values: local, remote, embedded
--[no-]skip-private-repositories- Skip cloning private repositories
-l--log-levelenum-
Minimum log level.
Values: trace, debug, information, warning, error, critical, none
Default:
information -c--config-sourceenum-
Override the configuration source: local, remote
Values: local, remote, embedded
--[no-]skip-private-repositories- Skip cloning private repositories
By default, the bundle-amend command infers whether to resolve entries from the original bundle when you use --add.
If the original bundle contains resolved entries (with inline title, type, and so on), the amend file will also be resolved.
If the original bundle contains only file references, the amend file will also contain only file references.
This inference ensures that amend files are portable — they contain everything needed to be understood alongside the original bundle, even when copied to another repository.
You can override this behaviour:
--resolve: Force entries to be resolved (inline content), regardless of the original bundle.--no-resolve: Force entries to contain only file references, regardless of the original bundle.
--resolve and --no-resolve apply only to --add. Removals always record exclude-entries with file name and checksum.
Amend bundles contain only the changes for that amend file, not a full repetition of the original bundle.
Additions:
# 9.3.0.amend-1.yaml
entries:
- file:
name: late-addition.yaml
checksum: abc123def456
Removals:
# 9.3.0.amend-2.yaml
exclude-entries:
- file:
name: 138723.yaml
checksum: def456abc123
An amend file can contain both exclude-entries and entries. Within each amend file, exclusions are applied before additions.
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, …).
The result is rendered as a single release.
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.
rules.bundle filtering does not apply to changelog bundle-amend. The command is a direct-injection escape hatch: the files you specify with --add are always included regardless of any product, type, or area filter configuration.
docs-builder changelog bundle-amend \
./docs/changelog/bundles/9.3.0.yaml \
--add ./docs/changelog/138723.yaml
The new bundle automatically matches the resolve style of the original bundle.
docs-builder changelog bundle-amend \
./docs/changelog/bundles/9.3.0.yaml \
--remove ./docs/changelog/138723.yaml
The CLI computes the file checksum automatically and matches it against the effective bundle (parent plus any existing amend files).
If the bundle contains the file with a different checksum, the command fails unless you pass --force to remove by file name only.
Comma-separated list:
docs-builder changelog bundle-amend \
./docs/changelog/bundles/9.3.0.yaml \
--add "./docs/changelog/138723.yaml,./docs/changelog/1770424335.yaml"
Or repeat --add:
docs-builder changelog bundle-amend \
./docs/changelog/bundles/9.3.0.yaml \
--add ./docs/changelog/138723.yaml \
--add ./docs/changelog/1770424335.yaml
docs-builder changelog bundle-amend \
./docs/changelog/bundles/9.3.0.yaml \
--remove "./docs/changelog/old-a.yaml,./docs/changelog/old-b.yaml"
docs-builder changelog bundle-amend \
./docs/changelog/bundles/9.3.0.yaml \
--remove ./docs/changelog/old-entry.yaml \
--add ./docs/changelog/new-entry.yaml
# Force resolved (inline) entries
docs-builder changelog bundle-amend \
./docs/changelog/bundles/9.3.0.yaml \
--add "./docs/changelog/138723.yaml" \
--resolve
# Force file-only references
docs-builder changelog bundle-amend 9.3.0.yaml \
--add ./docs/changelog/late-addition.yaml \
--no-resolve
docs-builder changelog bundle-amend \
./docs/changelog/bundles/9.3.0.yaml \
--remove ./docs/changelog/138723.yaml \
--dry-run