Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 9 additions & 9 deletions docs/_docset.yml
Original file line number Diff line number Diff line change
Expand Up @@ -185,17 +185,17 @@ toc:
- file: inbound-links-validate.md
- file: inbound-links-validate-all.md
- file: inbound-links-validate-link-reference.md
- folder: release
- folder: changelog
children:
- file: index.md
- file: changelog-add.md
- file: changelog-bundle.md
- file: changelog-bundle-amend.md
- file: changelog-evaluate-pr.md
- file: changelog-gh-release.md
- file: changelog-init.md
- file: changelog-remove.md
- file: changelog-render.md
- file: add.md
- file: bundle.md
- file: bundle-amend.md
- file: evaluate-pr.md
- file: gh-release.md
- file: init.md
- file: remove.md
- file: render.md
- folder: mcp
children:
- file: index.md
Expand Down
9 changes: 9 additions & 0 deletions docs/_redirects.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,17 @@ redirects:
'migration/freeze/gh-action.md' : 'index.md'
'migration/freeze/index.md' : 'index.md'
'cli/mcp.md': 'index.md'
'cli/release/changelog-add.md': 'cli/changelog/add.md'
'cli/release/changelog-evaluate-artifact.md': 'index.md'
'cli/release/changelog-evaluate-pr.md': 'cli/changelog/evaluate-pr.md'
'cli/release/changelog-bundle.md': 'cli/changelog/bundle.md'
'cli/release/changelog-bundle-amend.md': 'cli/changelog/bundle-amend.md'
'cli/release/changelog-gh-release.md': 'cli/changelog/gh-release.md'
'cli/release/changelog-init.md': 'cli/changelog/init.md'
'cli/release/changelog-prepare-artifact.md': 'index.md'
'cli/release/changelog-remove.md': 'cli/changelog/remove.md'
'cli/release/changelog-render.md': 'cli/changelog/render.md'
'cli/release/index.md': 'cli/changelog/index.md'
'testing/redirects/4th-page.md': 'testing/redirects/5th-page.md'
'testing/redirects/9th-page.md': '!testing/redirects/5th-page.md'
'testing/redirects/6th-page.md':
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
Amend a bundle with additional changelog entries.
Amend bundles follow a specific naming convention: `{parent-bundle-name}.amend-{N}.yaml` where `{N}` is a sequence number.

To create a bundle, use [](/cli/release/changelog-bundle.md).
To create a bundle, use [](/cli/changelog/bundle.md).
For details and examples, go to [](/contribute/changelog.md).

## Usage
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

Bundle changelog files.

To create the changelogs, use [](/cli/release/changelog-add.md).
To create the changelogs, use [](/cli/changelog/add.md).
For details and examples, go to [](/contribute/changelog.md).

## Usage
Expand Down Expand Up @@ -141,7 +141,7 @@ The `--input-products` option determines which changelog files are gathered for
: By default, the bundle contains only the file names and checksums.

`--sanitize-private-links`
: Optional: Turn on [private link sanitization](/cli/release/changelog-bundle.md#private-link-sanitization).
: Optional: Turn on [private link sanitization](#private-link-sanitization).
: Pull requests and issues that target repositories marked `private: true` in the `references` section of `assembler.yml` are rewritten as quoted `# PRIVATE:` sentinel strings in the bundle file.
: This option requires a resolved bundle: use `--resolve` or set `bundle.resolve: true` in the `changelog.yml`.
: If sanitization is enabled and the bundle is not resolved, the command fails.
Expand Down Expand Up @@ -372,6 +372,7 @@ If you're using profile-based commands, they're affected by the following fields

`products`
: Required when filtering by product metadata (equivalent to the `--input-products` command option).
: The value `"* * *"` is equivalent to the `--all` command option.
: Not used when the filter comes from a promotion report, URL list file, or `source: github_release` — in those cases the PR or issue list determines what's included and `products` is ignored.
: Supports `{version}` and `{lifecycle}` placeholders that are substituted at runtime.
: Example: `"elasticsearch {version} {lifecycle}"`
Expand Down Expand Up @@ -452,42 +453,64 @@ For example:

```yaml
bundle:
# Input directory containing changelog YAML files
directory: docs/changelog
# Output directory for bundles
output_directory: docs/releases
# Whether to resolve (copy contents) by default
resolve: true
repo: elasticsearch <1>
owner: elastic
profiles:
# Collect all changelogs
release-all:
products: "* * *" <2>
output: "all.yaml"
# Find changelogs with any lifecycle and a partial date
serverless-monthly:
products: "cloud-serverless {version}-* *" <2>
products: "cloud-serverless {version}-* *" <3>
output: "serverless-{version}.yaml"
output_products: "cloud-serverless {version}"

# Find changelogs with a specific lifecycle
elasticsearch-ga-only:
products: "elasticsearch {version} ga" <3>
products: "elasticsearch {version} ga" <4>
output: "elasticsearch-{version}.yaml"

# Infer the lifecycle from the version
elasticsearch-release:
hide_features: <4>
hide_features: <5>
- feature-flag-1
- feature-flag-2
products: "elasticsearch {version} {lifecycle}" <5>
products: "elasticsearch {version} {lifecycle}" <6>
output: "elasticsearch-{version}.yaml"
output_products: "elasticsearch {version}"
```

1. Bundle-level defaults that apply to all profiles. Individual profiles can override these.
2. Bundles any changelogs that have `product: cloud-serverless`, any lifecycle, and the date partially specified in the command. This is equivalent to the `--input-products` command option's support for wildcards.
3. Bundles any changelogs that have `product: elasticsearch`, `lifecycle: ga`, and the version specified in the command.
4. Adds a `hide-features` array in the bundle. This is equivalent to the `--hide-features` command option.
5. In this case, the lifecycle is inferred from the version string passed as the second command argument (for example, `9.2.0-beta.1` → `beta`).
2. Collects all changelogs from the `directory`. This is equivalent to the `--all` command.
3. Collects any changelogs that have `product: cloud-serverless`, any lifecycle, and the date partially specified in the command. This is equivalent to the `--input-products` command option's support for wildcards.
4. Collects any changelogs that have `product: elasticsearch`, `lifecycle: ga`, and the version specified in the command.
5. Adds a `hide-features` array in the bundle. This is equivalent to the `--hide-features` command option.
6. In this case, the lifecycle is inferred from the version string passed as the second command argument (for example, `9.2.0-beta.1` → `beta`).

`output_products: "elasticsearch {version} {lifecycle}"` produces a single, authoritative product entry in the bundle derived from the release tag — for example, tag `v9.2.0` gives `elasticsearch 9.2.0 ga` and tag `v9.2.0-beta.1` gives `elasticsearch 9.2.0 beta`. Without `output_products`, the bundle products array is instead derived from the matched changelog files' own `products` fields, which is the consistent fallback for all profile types. Set `output_products` when you need a single clean product entry that reflects the release identity rather than the diverse metadata across individual changelog files.

:::{note}
The `products` field determines which changelog files are gathered for consideration. **`rules.bundle` still applies** afterward (see the note under [`--input-products`](#options)). Input stage and bundle filtering stage are conceptually separate.
:::

For profiles that use static patterns (without `{version}` or `{lifecycle}` placeholders), the second argument is still required but serves no functional purpose. You can pass any placeholder value. For example:

```sh
# Profile with static patterns - second argument unused but required
docs-builder changelog bundle release-all '*'
docs-builder changelog bundle release-all 'unused'
docs-builder changelog bundle release-all 'none'
```

If you are using the `{version}` placeholder in the `output_products` or `output` fields, you must provide an appropriate value even though it's not used by the `products` filter.

### Bundle by report or URL list [profile-bundle-report-examples]

You can also create profiles that are equivalent to the `--prs`, `--issues`, and `--report` filter options.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ The product, target version, and lifecycle are inferred automatically from the r

The `rules.bundle` section of your `changelog.yml` applies to bundles created by this command (after changelog files are gathered from the release).
Which fields take effect depends on [bundle rule modes](/contribute/changelog.md#bundle-rule-modes).
For details, refer to [Rules for filtered bundles](/cli/release/changelog-bundle.md#changelog-bundle-rules).
For details, refer to [Rules for filtered bundles](/cli/changelog/bundle.md#changelog-bundle-rules).
If you use per-product rule overrides, refer to [Single-product rule resolution (Mode 3 only)](/contribute/changelog.md#changelog-bundle-rule-resolution).

## Examples
Expand Down
15 changes: 15 additions & 0 deletions docs/cli/changelog/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
---
navigation_title: "changelog"
---

# Changelog commands

These commands are associated with product release documentation.

- [changelog add](add.md) - Create a changelog file
- [changelog bundle](bundle.md) - Create a changelog bundle file
- [changelog gh-release](gh-release.md) - Create changelogs and a bundle from a GitHub release
- [changelog init](init.md) - Initialize changelog configuration and folder structure
- [changelog bundle-amend](bundle-amend.md) - Add entries to an existing bundle
- [changelog render](render.md) - Generate markdown output from changelog bundle files
- [changelog evaluate-pr](evaluate-pr.md) - (CI) Evaluate a PR for changelog generation eligibility
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Remove changelog YAML files from a directory.

You can use either profile-based or command-option-based removal:

- **Profile-based**: `docs-builder changelog remove <profile> <version|promotion-report>` — uses the same `bundle.profiles` configuration as [`changelog bundle`](/cli/release/changelog-bundle.md) to determine which changelogs to remove.
- **Profile-based**: `docs-builder changelog remove <profile> <version|promotion-report>` — uses the same `bundle.profiles` configuration as [`changelog bundle`](/cli/changelog/bundle.md) to determine which changelogs to remove.
- **Option-based**: `docs-builder changelog remove --products "..." ` (or `--prs`, `--issues`, `--all`, `--release-version`, `--report`) — specify the filter directly.

These modes are mutually exclusive. You can't combine a profile argument with the command filter options.
Expand All @@ -31,7 +31,7 @@ These arguments apply to profile-based removal:
`[1] <string?>`
: Version number, promotion report URL/path, or URL list file.
: For example, `9.2.0`, `https://buildkite.../promotion-report.html`, or `/path/to/prs.txt`.
: See [Profile argument types](/cli/release/changelog-bundle.md#profile-argument-types) for details on accepted formats.
: See [Profile argument types](/cli/changelog/bundle.md#profile-argument-types) for details on accepted formats.

`[2] <string?>`
: Optional: Promotion report URL/path or URL list file when the second argument is a version string.
Expand Down Expand Up @@ -150,7 +150,7 @@ You can use `--release-version` to fetch pull request references directly from G
Only automated GitHub release notes (the default format or [Release Drafter](https://github.com/release-drafter/release-drafter) format) are supported at this time.
:::

This mirrors the equivalent [`--release-version` option on `changelog bundle`](/cli/release/changelog-bundle.md#changelog-bundle-release-version) and is useful when cleaning up after a release-based bundle.
This mirrors the equivalent [`--release-version` option on `changelog bundle`](/cli/changelog/bundle.md#changelog-bundle-release-version) and is useful when cleaning up after a release-based bundle.
For example:

```sh
Expand Down Expand Up @@ -223,7 +223,7 @@ You can remove the matching changelogs with:
docs-builder changelog remove elasticsearch-release 9.2.0 --dry-run
```

This removes changelogs for `elasticsearch 9.2.0 ga` — the same set that `docs-builder changelog bundle elasticsearch-release 9.2.0` would include. The lifecycle is inferred from the version string: `9.2.0` → `ga`, `9.2.0-beta.1` → `beta`. Refer to [Lifecycle inference for standard profiles](/cli/release/changelog-bundle.md#changelog-bundle-standard-profile-lifecycle) for details.
This removes changelogs for `elasticsearch 9.2.0 ga` — the same set that `docs-builder changelog bundle elasticsearch-release 9.2.0` would include. The lifecycle is inferred from the version string: `9.2.0` → `ga`, `9.2.0-beta.1` → `beta`. Refer to [Lifecycle inference for standard profiles](/cli/changelog/bundle.md#changelog-bundle-standard-profile-lifecycle) for details.

### Remove by report or URL list

Expand Down Expand Up @@ -283,4 +283,4 @@ docs-builder changelog remove agent-gh-release 1.34.0 --dry-run
The `repo` and `owner` used to identify the release follow the same precedence as bundling: profile-level `repo`/`owner` override `bundle.repo`/`bundle.owner`, which in turn override the default owner `elastic`.
:::

For the full list of profile configuration fields, go to [Profile configuration fields](/cli/release/changelog-bundle.md#changelog-bundle-profile-config).
For the full list of profile configuration fields, go to [Profile configuration fields](/cli/changelog/bundle.md#changelog-bundle-profile-config).
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

Generate markdown or asciidoc files from changelog bundle files.

To create the bundle files, use [](/cli/release/changelog-bundle.md).
To create the bundle files, use [](/cli/changelog/bundle.md).
For details and examples, go to [](/contribute/changelog.md).

## Usage
Expand Down Expand Up @@ -37,7 +37,7 @@ docs-builder changelog render [options...] [-h|--help]
: Paths support tilde (`~`) expansion and relative paths.

:::{note}
The `render` command automatically discovers and merges `.amend-*.yaml` files with their parent bundle. For more information about amended bundles, go to [](changelog-bundle-amend.md).
The `render` command automatically discovers and merges `.amend-*.yaml` files with their parent bundle. For more information about amended bundles, go to [](bundle-amend.md).
:::

`--file-type <string>`
Expand Down
2 changes: 1 addition & 1 deletion docs/cli/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,4 +51,4 @@ Assembler builds bring together all isolated documentation set builds and turn t

Commands that pertain to creating and publishing product release documentation.

[See available CLI commands for release docs](release/index.md)
[See available CLI commands for release docs](changelog/index.md)
15 changes: 0 additions & 15 deletions docs/cli/release/index.md

This file was deleted.

Loading
Loading