Skip to content

Commit bb0ed07

Browse files
committed
[DOCS] Split changelog how-to into subpages
1 parent 7d776e3 commit bb0ed07

16 files changed

Lines changed: 1402 additions & 1433 deletions

config/changelog.example.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ pivot:
150150
# - Comma-separated string: "value1, value2, value3"
151151
# - YAML list: [value1, value2, value3]
152152
#
153-
# For details and examples, refer to the [rules documentation](https://github.com/elastic/docs-builder/blob/main/docs/contribute/changelog.md#rules-for-creation-and-bundling).
153+
# For details and examples, refer to the [rules documentation](https://github.com/elastic/docs-builder/blob/main/docs/contribute/configure-changelogs.md#rules).
154154
rules:
155155
# match: any
156156

@@ -169,7 +169,7 @@ rules:
169169
# exclude: "ILM"
170170

171171
# Bundle — filtering applied during 'changelog bundle' and 'changelog gh-release'.
172-
# See docs/contribute/changelog.md → "Bundle rule modes" for Mode 1 / 2 / 3 behavior.
172+
# See https://github.com/elastic/docs-builder/blob/main/docs/contribute/configure-changelogs.md#bundle-rule-modes for Mode 1 / 2 / 3 behavior.
173173
#
174174
# Mode 2 (global content): use global lists only — no `products` key, or `products: {}`.
175175
# Example — include changelogs that list elasticsearch OR kibana (evaluated per changelog):
@@ -213,7 +213,7 @@ bundle:
213213
# Whether to resolve (copy contents) by default
214214
resolve: true
215215
# Optional: default description text for bundles. Supports {version}, {lifecycle}, {owner}, and {repo} placeholders.
216-
# Use YAML literal block scalar (|) for multiline descriptions. See docs/contribute/changelog.md for examples.
216+
# Use YAML literal block scalar (|) for multiline descriptions.
217217
# description: |
218218
# This release includes new features and bug fixes.
219219
#

docs/_docset.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,11 @@ toc:
6969
- file: add-repo.md
7070
- file: release-new-version.md
7171
- file: changelog.md
72+
children:
73+
- file: configure-changelogs.md
74+
- file: create-changelogs.md
75+
- file: bundle-changelogs.md
76+
- file: publish-changelogs.md
7277
- hidden: locally.md
7378
- hidden: on-the-web.md
7479
- folder: building-blocks

docs/cli/changelog/add.md

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# changelog add
22

33
Create a changelog file that describes a single item in the release documentation.
4-
For details and examples, go to [](/contribute/changelog.md).
4+
For details and examples, go to [](/contribute/create-changelogs.md).
55

66
## Usage
77

@@ -169,3 +169,19 @@ When you run the `changelog add` command without the `--products` option, it res
169169
5. **Error** — if none of the above resolves to at least one product, an error is raised.
170170

171171
Product-specific `rules.create` rules are evaluated *after* products are resolved from labels, so label-derived products correctly participate in per-product create rule checks.
172+
173+
## Configuration checks
174+
175+
By default, the command checks the following path for a configuration file: `docs/changelog.yml`.
176+
You can specify a different path with the `--config` command option.
177+
178+
If a configuration file exists, the command validates its values before generating changelog files:
179+
180+
- If the configuration file contains `lifecycles`, `products`, `subtype`, or `type` values that don't match the values in `ChangelogEntryType.cs`, `ChangelogEntrySubtype.cs`, or `Lifecycle.cs`, validation fails.
181+
- If the configuration file contains `areas` values and they don't match what you specify in the `--areas` command option, validation fails.
182+
- If the configuration file contains `lifecycles` or `products` values that are a subset of the available values and you try to create a changelog with values outside that subset, validation fails.
183+
184+
In each of these cases where validation fails, a changelog file is not created.
185+
186+
If the configuration file contains `rules.create` definitions and a PR or issue has a blocking label, that PR is skipped and no changelog file is created for it.
187+
For more information, refer to [Rules for creation and publishing](/contribute/configure-changelogs.md#rules).

docs/cli/changelog/bundle-amend.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ Amend a bundle with additional changelog entries.
44
Amend bundles follow a specific naming convention: `{parent-bundle-name}.amend-{N}.yaml` where `{N}` is a sequence number.
55

66
To create a bundle, use [](/cli/changelog/bundle.md).
7-
For details and examples, go to [](/contribute/changelog.md).
7+
For details and examples, go to [](/contribute/bundle-changelogs.md).
88

99
## Usage
1010

docs/cli/changelog/bundle.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ You must choose one method for determining what's in the bundle (`--all`, `--inp
9393

9494
`--input-products <List<ProductInfo>?>`
9595
: Filter by products in the format "product target lifecycle, ...".
96-
: For more information about the valid product and lifecycle values, go to [Product format](/contribute/changelog.md#product-format).
96+
: For more information about the valid product and lifecycle values, go to [Product format](/contribute/create-changelogs.md#product-format).
9797
: When specified, all three parts (product, target, lifecycle) are required but can be wildcards (`*`). Multiple comma-separated values are combined with OR: a changelog is included if it matches any of the specified product/target/lifecycle combinations. For example:
9898

9999
- `"cloud-serverless 2025-12-02 ga, cloud-serverless 2025-12-06 beta"` — include changelogs for either cloud-serverless 2025-12-02 ga or cloud-serverless 2025-12-06 beta
@@ -103,7 +103,7 @@ You must choose one method for determining what's in the bundle (`--all`, `--inp
103103
- `"* * *"` - match all changelogs (equivalent to `--all`)
104104

105105
:::{note}
106-
The `--input-products` option determines which changelog files are gathered for consideration. **`rules.bundle` is not disabled** when you use `--input-products` — global `include_products` / `exclude_products`, type/area rules, and (when configured) per-product rules still run **after** matching, unless your configuration is in [no-filtering mode](/contribute/changelog.md#bundle-rule-modes). The only “mutually exclusive” pairing on this command is **profile-based** bundling versus **option-based** flags (see [Usage](#usage)), not `--input-products` versus `rules.bundle`.
106+
The `--input-products` option determines which changelog files are gathered for consideration. **`rules.bundle` is not disabled** when you use `--input-products` — global `include_products` / `exclude_products`, type/area rules, and (when configured) per-product rules still run **after** matching, unless your configuration is in [no-filtering mode](/contribute/configure-changelogs.md#bundle-rule-modes). The only “mutually exclusive” pairing on this command is **profile-based** bundling versus **option-based** flags (see [Usage](#usage)), not `--input-products` versus `rules.bundle`.
107107
:::
108108

109109
`--issues <string[]?>`
@@ -122,7 +122,7 @@ The `--input-products` option determines which changelog files are gathered for
122122
`--output-products <List<ProductInfo>?>`
123123
: Optional: Explicitly set the products array in the output file in format "product target lifecycle, ...".
124124
: This value replaces information that would otherwise be derived from changelogs.
125-
: When `rules.bundle.products` per-product overrides are configured, `--output-products` also supplies the product IDs used to choose the **rule context product** (first alphabetically) for Mode 3. To use a different product's rules, run a separate bundle with only that product in `--output-products`. For details, refer to [Single-product rule resolution algorithm](/contribute/changelog.md#changelog-bundle-rule-resolution).
125+
: When `rules.bundle.products` per-product overrides are configured, `--output-products` also supplies the product IDs used to choose the **rule context product** (first alphabetically) for Mode 3. To use a different product's rules, run a separate bundle with only that product in `--output-products`. For details, refer to [Product-specific bundle rules](/contribute/configure-changelogs.md#rules-bundle-products).
126126

127127
`--owner <string?>`
128128
: Optional: The GitHub repository owner, required when pull requests or issues are specified as numbers.
@@ -243,7 +243,7 @@ This may result in broken links if the product ID doesn't match the GitHub repos
243243

244244
The `rules.bundle` section in the changelog configuration file lets you filter entries during bundling. It applies to both `changelog bundle` and `changelog gh-release`, after entries are matched by the primary filter (`--prs`, `--issues`, `--all`, **`--input-products`**, and so on) and before the bundle is written.
245245

246-
Which `rules.bundle` fields take effect depends on the [bundle rule modes](/contribute/changelog.md#bundle-rule-modes) (no filtering, global rules against each changelog’s content, or per-product rule context). Input stage (gathering entries) and bundle filtering stage (filtering for output) are conceptually separate.
246+
Which `rules.bundle` fields take effect depends on the [bundle rule modes](/contribute/configure-changelogs.md#bundle-rule-modes) (no filtering, global rules against each changelog’s content, or per-product rule context). Input stage (gathering entries) and bundle filtering stage (filtering for output) are conceptually separate.
247247

248248
The following fields are supported:
249249

@@ -272,7 +272,7 @@ The following fields are supported:
272272
: Match mode for the area filter (`any`, `all`, or `conjunction`). Inherits from `rules.match` when not specified.
273273

274274
`products`
275-
: Per-product filter overrides for **all filter types** (product, type, area). Keys are product IDs (or comma-separated lists). When this map is **non-empty**, the bundler uses **per-product rule context** mode: global `rules.bundle` product/type/area fields are **not** used for filtering (repeat constraints under each product key if you still need them). For details, refer to [Bundle rule modes](/contribute/changelog.md#bundle-rule-modes) and [Single-product rule resolution (Mode 3 only)](/contribute/changelog.md#changelog-bundle-rule-resolution).
275+
: Per-product filter overrides for **all filter types** (product, type, area). Keys are product IDs (or comma-separated lists). When this map is **non-empty**, the bundler uses **per-product rule context** mode: global `rules.bundle` product/type/area fields are **not** used for filtering (repeat constraints under each product key if you still need them). For details, refer to [Bundle rule modes](/contribute/configure-changelogs.md#bundle-rule-modes) and [Product-specific bundle rules](/contribute/configure-changelogs.md#rules-bundle-products).
276276

277277
```yaml
278278
rules:
@@ -448,7 +448,7 @@ If your configuration file defines a standard profile (that is to say, not a Git
448448
| `9.2.0-alpha.1` | `preview` |
449449
| `9.2.0-preview.1` | `preview` |
450450

451-
For more information about acceptable product and lifecycle values, go to [Product format](/contribute/changelog.md#product-format).
451+
For more information about acceptable product and lifecycle values, go to [Product format](/contribute/create-changelogs.md#product-format).
452452

453453
You can invoke those profiles with commands like this:
454454

docs/cli/changelog/gh-release.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,9 +58,9 @@ The product, target version, and lifecycle are inferred automatically from the r
5858
## Configuration
5959

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

6565
## Examples
6666

docs/cli/changelog/remove.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ These modes are mutually exclusive. You can't combine a profile argument with th
1111

1212
Before deleting anything, the command checks whether any of the matching files are referenced by unresolved bundles, to prevent silently breaking the `{changelog}` directive.
1313

14-
For more context, go to [](/contribute/changelog.md#changelog-remove).
14+
For more context, go to [](/contribute/bundle-changelogs.md#changelog-remove).
1515

1616
## Usage
1717

docs/cli/changelog/render.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
Generate markdown or asciidoc files from changelog bundle files.
44

55
To create the bundle files, use [](/cli/changelog/bundle.md).
6-
For details and examples, go to [](/contribute/changelog.md).
6+
For details and examples, go to [](/contribute/publish-changelogs.md).
77

88
## Usage
99

@@ -60,7 +60,7 @@ The `render` command automatically discovers and merges `.amend-*.yaml` files wi
6060
: Defaults to the version in the first bundle.
6161
: If the string contains spaces, they are replaced with dashes when used in directory names and anchors.
6262

63-
The `changelog render` command does **not** use `rules.publish` for filtering. Filtering must be done at bundle time using `rules.bundle`. For more information, refer to [](/contribute/changelog.md). For how the directive differs, see the [{changelog} directive syntax reference](/syntax/changelog.md).
63+
The `changelog render` command does **not** use `rules.publish` for filtering. Filtering must be done at bundle time using `rules.bundle`. For more information, refer to [](/contribute/publish-changelogs.md). For how the directive differs, see the [{changelog} directive syntax reference](/syntax/changelog.md).
6464

6565
## Output formats
6666

0 commit comments

Comments
 (0)