Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
69 commits
Select commit Hold shift + click to select a range
ba9dc5c
Create changelog bundle command
lcawl Dec 11, 2025
c55369e
Limited bundle contents
lcawl Dec 11, 2025
1d55a26
Add tests
lcawl Dec 11, 2025
b671cd9
Fix target handling
lcawl Dec 11, 2025
2546710
Add some version error handling
lcawl Dec 11, 2025
906d1e0
Change --product-version to --products
lcawl Dec 11, 2025
4fd65c1
Ignore bundle files when bundling
lcawl Dec 11, 2025
f7157af
Change version to target in bundle
lcawl Dec 12, 2025
fb4828a
Rename input-products, add output-products
lcawl Dec 12, 2025
3fbdeb4
Add resolve option
lcawl Dec 12, 2025
814c36e
Potential fix for pull request finding 'Missed opportunity to use Where'
lcawl Dec 12, 2025
484bd3f
Add CLI docs
lcawl Dec 12, 2025
6ff29fd
Update changelog how-to
lcawl Dec 12, 2025
0b91259
Add ignored file
lcawl Dec 12, 2025
82c2b8a
Improve docs
lcawl Dec 12, 2025
21edffa
Merge branch 'main' into changelog-manifest
lcawl Dec 12, 2025
b4a67cb
Edit docs
lcawl Dec 13, 2025
e4da275
Merge branch 'main' into changelog-manifest
lcawl Dec 29, 2025
ebdfcae
Add changelog render command (#2352)
lcawl Dec 29, 2025
74e258a
Merge branch 'main' into changelog-manifest
lcawl Dec 30, 2025
f4b7250
Add option to hide private links when rendering changelogs (#2408)
lcawl Dec 31, 2025
0645a4c
Fix changelog render when title has spaces (#2409)
lcawl Dec 31, 2025
dcaa3a6
Update src/services/Elastic.Documentation.Services/ChangelogService.cs
lcawl Jan 2, 2026
4217f58
Update src/services/Elastic.Documentation.Services/ChangelogService.cs
lcawl Jan 2, 2026
558ebe0
Update src/services/Elastic.Documentation.Services/ChangelogService.cs
lcawl Jan 2, 2026
c9fb894
Update src/services/Elastic.Documentation.Services/ChangelogService.cs
lcawl Jan 2, 2026
676e101
Update src/services/Elastic.Documentation.Services/ChangelogService.cs
lcawl Jan 2, 2026
b319643
Update src/services/Elastic.Documentation.Services/ChangelogService.cs
lcawl Jan 2, 2026
249db6c
Update src/services/Elastic.Documentation.Services/ChangelogService.cs
lcawl Jan 2, 2026
31fca08
Update src/services/Elastic.Documentation.Services/ChangelogService.cs
lcawl Jan 2, 2026
690dca6
Merge branch 'main' into changelog-manifest
lcawl Jan 2, 2026
4051319
Consolidate regex patterns
lcawl Jan 2, 2026
188348c
Static class for changelog entry types
lcawl Jan 2, 2026
752db4c
Add docs for changelog render
lcawl Jan 2, 2026
3aadae5
Add changelog-render
lcawl Jan 2, 2026
0a2bb06
Augment docs
lcawl Jan 2, 2026
659c090
Fix docs typo
lcawl Jan 2, 2026
cbeb702
Combine docs-builder bundle prs and prs-file options (#2411)
lcawl Jan 3, 2026
4084aee
Merge branch 'main' into changelog-manifest
lcawl Jan 5, 2026
236a819
Potential fix for pull request finding 'Missed opportunity to use Where'
lcawl Jan 5, 2026
dc8f8c5
Add docs-builder changelog render --hide-features option (#2412)
lcawl Jan 5, 2026
401d890
Merge branch 'main' into changelog-manifest
lcawl Jan 5, 2026
ae7a00b
Potential fix for pull request finding 'Missed opportunity to use Where'
lcawl Jan 5, 2026
d1022de
Merge branch 'main' into changelog-manifest
lcawl Jan 6, 2026
20dfba1
Fix failing test
lcawl Jan 6, 2026
df4bd8b
Fix BundleChangelogs_WithShortPrFormat_FiltersCorrectly
lcawl Jan 6, 2026
f065913
Add render_blockers to changelog config (#2426)
lcawl Jan 7, 2026
7201173
Potential fix for pull request finding 'Container contents are never …
lcawl Jan 7, 2026
c04e7bf
Potential fix for pull request finding 'Missed opportunity to use Sel…
lcawl Jan 7, 2026
691aa2b
Potential fix for pull request finding 'Missed opportunity to use Sel…
lcawl Jan 7, 2026
24b88a5
Potential fix for pull request finding 'Missed opportunity to use Where'
lcawl Jan 7, 2026
d86ad43
Potential fix for pull request finding 'Missed opportunity to use Sel…
lcawl Jan 7, 2026
a96f1c7
Potential fix for pull request finding 'Missed opportunity to use Where'
lcawl Jan 7, 2026
b5b03c2
Potential fix for pull request finding 'Missed opportunity to use Where'
lcawl Jan 7, 2026
0b6310e
Render missing changelog types and subtypes (#2427)
lcawl Jan 7, 2026
d601353
Potential fix for pull request finding 'Missed opportunity to use Where'
lcawl Jan 7, 2026
40934de
Fix RenderChangelogs_WithUnhandledType_EmitsWarning test
lcawl Jan 7, 2026
e3908a6
Merge branch 'main' into changelog-manifest
lcawl Jan 7, 2026
cfb5220
Wildcard support in docs-builder changelog bundle --input-products (#…
lcawl Jan 8, 2026
dcc08ad
Merge branch 'main' into changelog-manifest
cotti Jan 13, 2026
d09afc0
Improve changelog bundle --output (#2458)
lcawl Jan 14, 2026
ab77b5b
Fix changelog render with multiple input (#2461)
lcawl Jan 14, 2026
3ea7a7c
Merge branch 'main' into changelog-manifest
cotti Jan 14, 2026
52a9ce3
Merge main into changelog-manifest
cotti Jan 14, 2026
5e02960
Merge main into changelog-manifest
cotti Jan 14, 2026
4ef48b4
Merge branch 'main' into changelog-manifest
cotti Jan 15, 2026
61eaa77
Merge main into changelog-manifest
cotti Jan 14, 2026
473f2a7
Merge remote-tracking branch 'origin/changelog-manifest' into changel…
cotti Jan 15, 2026
9932307
Fix lint
cotti Jan 15, 2026
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
75 changes: 45 additions & 30 deletions config/changelog.yml.example
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,16 @@

# Available types for changelog entries
available_types:
- feature
- enhancement
- bug-fix
- known-issue
- breaking-change
- bug-fix
- deprecation
- docs
- enhancement
- feature
- known-issue
- other
- regression
- security
- other

# Available subtypes for breaking changes
available_subtypes:
Expand All @@ -34,47 +34,62 @@ available_lifecycles:

# Available areas (optional - if not specified, all areas are allowed)
available_areas:
- search
- security
- machine-learning
- observability
- index-management
# - Autoscaling
# - Search
# - Security
# - Watcher
# Add more areas as needed

# Available products (optional - if not specified, all products are allowed)
available_products:
- elasticsearch
- kibana
- apm
- beats
- elastic-agent
- fleet
- cloud-hosted
- cloud-serverless
- cloud-enterprise
# - elasticsearch
# - kibana
# - apm
# - beats
# - elastic-agent
# - fleet
# - cloud-hosted
# - cloud-serverless
# - cloud-enterprise
# Add more products as needed

# GitHub label mappings (optional - used when --pr option is specified)
# Maps GitHub PR labels to changelog type values
# When a PR has a label that matches a key, the corresponding type value is used
label_to_type:
# Example mappings - customize based on your label naming conventions
# "type:feature": feature
# "type:bug": bug-fix
# "type:enhancement": enhancement
# "type:breaking": breaking-change
# "type:security": security
# ">breaking": breaking-change
# ">bug": bug-fix
# ">docs": docs
# ">enhancement": enhancement
# ">feature": feature

# Maps GitHub PR labels to changelog area values
# Multiple labels can map to the same area, and a single label can map to multiple areas (comma-separated)
label_to_areas:
# Example mappings - customize based on your label naming conventions
# "area:search": search
# "area:security": security
# "area:ml": machine-learning
# "area:observability": observability
# "area:index": index-management
# "area:multiple": "search, security" # Multiple areas comma-separated
# ":Distributed Coordination/Autoscaling": Autoscaling
# ":Search/Search": Search
# ":Security/Security": Security
# ":Data Management/Watcher": Watcher
# "area:multiple": "Search, Security" # Multiple areas comma-separated

# Render blockers (optional - used by the "docs-builder changelog render" command)
# Changelogs matching the specified products and areas/types will be commented out in rendered output files
# Dictionary key can be a single product ID or comma-separated product IDs (e.g., "elasticsearch, cloud-serverless")
# Dictionary value contains areas and/or types that should be blocked for those products
render_blockers:
# Multiple products (comma-separated) with areas and types that should be blocked
"cloud-hosted, cloud-serverless":
areas: # List of area values that should be blocked (commented out) during render
- Autoscaling
- Watcher
types: # List of type values that should be blocked (commented out) during render
- docs
# Single product with areas that should be blocked
elasticsearch:
areas:
- Security

# Product-specific label blockers (optional)
# Maps product IDs to lists of pull request labels that prevent changelog creation for that product
Expand Down
2 changes: 2 additions & 0 deletions docs/_docset.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
project: 'doc-builder'
max_toc_depth: 2
# indicates this documentation set is not linkable by assembler.
Expand Down Expand Up @@ -160,6 +160,8 @@
children:
- file: index.md
- file: changelog-add.md
- file: changelog-bundle.md
- file: changelog-render.md
- folder: mcp
children:
- file: index.md
Expand Down
61 changes: 61 additions & 0 deletions docs/cli/release/changelog-bundle.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
# changelog bundle

Bundle changelog files.

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

## Usage

```sh
docs-builder changelog bundle [options...] [-h|--help]
```

## Options

`--all`
: Include all changelogs from the directory.
: Only one filter option can be specified: `--all`, `--input-products`, or `--prs`.

`--directory <string?>`
: Optional: The directory that contains the changelog YAML files.
: Defaults to the current directory.

`--input-products <List<ProductInfo>?>`
: Filter by products in format "product target lifecycle, ..."
: Only one filter option can be specified: `--all`, `--input-products`, or `--prs`.
: When specified, all three parts (product, target, lifecycle) are required but can be wildcards (`*`). For example:

- `"cloud-serverless 2025-12-02 ga, cloud-serverless 2025-12-06 beta"` - exact matches
- `"cloud-serverless 2025-12-02 *"` - match cloud-serverless 2025-12-02 with any lifecycle
- `"elasticsearch * *"` - match all elasticsearch changelogs
- `"* 9.3.* *"` - match any product with target starting with "9.3."
- `"* * *"` - match all changelogs (equivalent to `--all`)

`--output <string?>`
: Optional: The output path for the bundle.
: Can be either (1) a directory path, in which case `changelog-bundle.yaml` is created in that directory, or (2) a file path ending in `.yml` or `.yaml`.
: Defaults to `changelog-bundle.yaml` in the input directory.

`--output-products <List<ProductInfo>?>`
: Optional: Explicitly set the products array in the output file in format "product target lifecycle, ...".
: This value replaces information that would otherwise by derived from changelogs.

`--owner <string?>`
: The GitHub repository owner, which is required when pull requests are specified as numbers.

`--prs <string[]?>`
: Filter by pull request URLs or numbers (comma-separated), or a path to a newline-delimited file containing PR URLs or numbers. Can be specified multiple times.
: Only one filter option can be specified: `--all`, `--input-products`, or `--prs`.
: Each occurrence can be either comma-separated PRs (e.g., `--prs "https://github.com/owner/repo/pull/123,6789"`) or a file path (e.g., `--prs /path/to/file.txt`).
: When specifying PRs directly, provide comma-separated values.
: When specifying a file path, provide a single value that points to a newline-delimited file.

`--repo <string?>`
: The GitHub repository name, which is required when PRs are specified as numbers.

`--resolve`
: Optional: Copy the contents of each changelog file into the entries array.
: By default, the bundle contains only the file names and checksums.
53 changes: 53 additions & 0 deletions docs/cli/release/changelog-render.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
# changelog render

Generate markdown files from changelog bundle files.

To create the bundle files, use [](/cli/release/changelog-bundle.md).

For details and examples, go to [](/contribute/changelog.md).

## Usage

```sh
docs-builder changelog render [options...] [-h|--help]
```

## Options

`--input <string[]>`
: One or more bundle input files.
: Each bundle is specified as "bundle-file-path|changelog-file-path|repo|link-visibility" using pipe (`|`) as delimiter.
: To merge multiple bundles, separate them with commas: `--input "bundle1|dir1|repo1|keep-links,bundle2|dir2|repo2|hide-links"`.
: For example, `--input "/path/to/changelog-bundle.yaml|/path/to/changelogs|elasticsearch|keep-links"`.
: Only `bundle-file-path` is required for each bundle.
: Use `repo` if your changelogs do not contain full URLs for the pull requests or issues; otherwise they will be incorrectly derived with "elastic/elastic" in the URL by default.
: Use `link-visibility` to control whether PR/issue links are shown or hidden for entries from this bundle. Valid values are `keep-links` (default) or `hide-links`. Use `hide-links` for bundles from private repositories.
: **Important**: Paths must be absolute or use environment variables. Tilde (`~`) expansion is not supported.

`--output <string?>`
: Optional: The output directory for rendered markdown files.
: Defaults to current directory.

`--title <string?>`
: Optional: The title to use for section headers, directories, and anchors in output markdown files.
: Defaults to the version in the first bundle.
: If the string contains spaces, they are replaced with dashes when used in directory names and anchors.

`--subsections`
: Optional: Group entries by area in subsections.
: Defaults to false.

`--hide-features <string[]?>`
: Optional: Filter by feature IDs (comma-separated), or a path to a newline-delimited file containing feature IDs. Can be specified multiple times.
: Each occurrence can be either comma-separated feature IDs (e.g., `--hide-features "feature:new-search-api,feature:enhanced-analytics"`) or a file path (e.g., `--hide-features /path/to/file.txt`).
: When specifying feature IDs directly, provide comma-separated values.
: When specifying a file path, provide a single value that points to a newline-delimited file. The file should contain one feature ID per line.
: Entries with matching `feature-id` values will be commented out in the markdown output and a warning will be emitted.

`--config <string?>`
: Optional: Path to the changelog.yml configuration file.
: Defaults to `docs/changelog.yml`.
: This configuration file is where the command looks for `render_blockers` details.

You can configure `render_blockers` in your `changelog.yml` configuration file to automatically block changelog entries from being rendered based on their products, areas, and/or types.
For more information, refer to [](/contribute/changelog.md#render-blockers).
2 changes: 2 additions & 0 deletions docs/cli/release/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,5 @@ navigation_title: "changelog"
These commands are associated with product release documentation.

- [changelog add](changelog-add.md) - Create a changelog file
- [changelog bundle](changelog-bundle.md) - Create a changelog bundle file
- [changelog render](changelog-render.md) - Generate markdown output from changelog bundle files
Loading
Loading