Skip to content

Commit f990ada

Browse files
authored
Merge branch 'main' into handsomely-lighter
2 parents 05f2c68 + 7d776e3 commit f990ada

69 files changed

Lines changed: 3213 additions & 490 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Directory.Packages.props

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,9 @@
3434
<PackageVersion Include="AngleSharp" Version="1.4.0" />
3535
<PackageVersion Include="Aspire.Hosting" Version="13.0.0" />
3636
<PackageVersion Include="Aspire.Hosting.Testing" Version="13.0.0" />
37-
<PackageVersion Include="AWSSDK.Core" Version="4.0.3.24" />
37+
<PackageVersion Include="AWSSDK.Core" Version="4.0.3.27" />
3838
<PackageVersion Include="AWSSDK.DynamoDBv2" Version="4.0.14.1" />
39-
<PackageVersion Include="AWSSDK.SQS" Version="4.0.2.20" />
39+
<PackageVersion Include="AWSSDK.SQS" Version="4.0.2.23" />
4040
<PackageVersion Include="AWSSDK.S3" Version="4.0.18.6" />
4141
<PackageVersion Include="Elastic.OpenTelemetry" Version="1.1.0" />
4242
<PackageVersion Include="Microsoft.Extensions.Configuration.UserSecrets" Version="10.0.0" />
@@ -50,7 +50,7 @@
5050
<PackageVersion Include="Elastic.Clients.Elasticsearch" Version="9.3.4" />
5151
<PackageVersion Include="FakeItEasy" Version="9.0.1" />
5252
<PackageVersion Include="Elastic.Ingest.Elasticsearch" Version="0.40.0" />
53-
<PackageVersion Include="Elastic.Mapping" Version="0.40.0" />
53+
<PackageVersion Include="Elastic.Mapping" Version="0.41.0" />
5454
<PackageVersion Include="InMemoryLogger" Version="1.0.66" />
5555
<PackageVersion Include="MartinCostello.Logging.XUnit.v3" Version="0.7.0" />
5656
<PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="10.0.3" />
@@ -73,11 +73,11 @@
7373
<PackageVersion Include="ConsoleAppFramework.Abstractions" Version="5.7.2" />
7474
<PackageVersion Include="Crayon" Version="2.0.69" />
7575
<PackageVersion Include="DotNet.Glob" Version="3.1.3" />
76-
<PackageVersion Include="Errata" Version="0.15.0" />
76+
<PackageVersion Include="Errata" Version="0.16.0" />
7777
<PackageVersion Include="Github.Actions.Core" Version="9.0.0" />
7878
<PackageVersion Include="Microsoft.Extensions.Logging" Version="10.0.0" />
7979
<PackageVersion Include="Microsoft.Extensions.Logging.Console" Version="10.0.0" />
80-
<PackageVersion Include="Markdig" Version="1.1.1" />
80+
<PackageVersion Include="Markdig" Version="1.1.2" />
8181
<PackageVersion Include="Microsoft.IdentityModel.Tokens" Version="8.16.0" />
8282
<PackageVersion Include="ModelContextProtocol" Version="1.0.0" />
8383
<PackageVersion Include="ModelContextProtocol.AspNetCore" Version="1.0.0" />

config/assembler.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,9 @@ references:
169169
response-ops-team:
170170
private: true
171171
skip: true
172+
roadmap:
173+
private: false
174+
skip: true
172175
search-team:
173176
private: true
174177
skip: true
@@ -184,6 +187,7 @@ references:
184187

185188
# @elastic/developer-docs
186189
eland:
190+
elasticsearch-dsl-js:
187191
elasticsearch-hadoop:
188192
elasticsearch-java:
189193
elasticsearch-js:

config/changelog.example.yml

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -212,13 +212,22 @@ bundle:
212212
output_directory: docs/releases
213213
# Whether to resolve (copy contents) by default
214214
resolve: true
215+
# 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.
217+
# description: |
218+
# This release includes new features and bug fixes.
219+
#
220+
# For more information, see the [release notes](https://www.elastic.co/docs/release-notes/product#product-{version}).
221+
# changelog-init-bundle-seed
215222
# PR/issue link allowlist: when set (including []), only links to these owner/repo pairs are kept
216223
# in bundle output; others are rewritten to '# PRIVATE:' sentinels (requires resolve: true).
217-
# When omitted, no link filtering is applied.
218-
# Add your repository and any others whose PR/issue links should appear in published docs.
224+
# There is no implicit allow: you must list every repo whose links should appear, including your
225+
# own (bundle.repo as owner/repo). When omitted entirely, no link filtering is applied.
226+
# Run `changelog init` in a GitHub clone to pre-fill owner, repo, and link_allow_repos, or set
227+
# bundle.owner, bundle.repo, and link_allow_repos manually. Example — allow only this repo:
219228
# link_allow_repos:
220-
# - elastic/elasticsearch
221-
# - elastic/kibana
229+
# - elastic/kibana
230+
# To allow cross-repo links, add more owner/repo entries (for example elastic/elasticsearch).
222231
# Optional: default GitHub repo name applied to all profiles that do not specify their own.
223232
# Used by the {changelog} directive to generate correct PR/issue links when the product ID
224233
# differs from the GitHub repository name. Can be overridden per profile.
@@ -242,6 +251,13 @@ bundle:
242251
# output: "elasticsearch-{version}.yaml"
243252
# # Optional: override the products array written to the bundle output.
244253
# # output_products: "elasticsearch {version}"
254+
# # Optional: profile-specific description (overrides bundle.description)
255+
# # description: |
256+
# # Elasticsearch {version} includes:
257+
# # - Performance improvements
258+
# # - Bug fixes and stability enhancements
259+
# #
260+
# # Download the release binaries: https://github.com/{owner}/{repo}/releases/tag/v{version}
245261
# Example: GitHub release profile (fetches PR list directly from a GitHub release)
246262
# Use when you want to bundle or remove changelogs based on a published GitHub release.
247263
# elasticsearch-gh-release:

config/navigation.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -276,6 +276,11 @@ toc:
276276
path_prefix: reference/elasticsearch/clients/javascript
277277
# Children include the entire AsciiDoc book
278278

279+
# JavaScript/TypeScript DSL
280+
# https://github.com/elastic/elasticsearch-dsl-js/blob/main/docs/reference/toc.yml
281+
- toc: elasticsearch-dsl-js://reference
282+
path_prefix: reference/elasticsearch/clients/javascript-dsl
283+
279284
# .NET
280285
# https://github.com/elastic/elasticsearch-net/blob/main/docs/reference/toc.yml
281286
- toc: elasticsearch-net://reference

config/versions.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ versioning_systems:
4747
current: 2.7.6
4848
apm-agent-java:
4949
base: 1.0
50-
current: 1.55.4
50+
current: 1.55.5
5151
apm-agent-node:
5252
base: 4.0
5353
current: 4.15.0
@@ -73,7 +73,7 @@ versioning_systems:
7373
# EDOTs
7474
edot-collector:
7575
base: 9.0
76-
current: 9.3.2
76+
current: 9.3.3
7777
edot-ios:
7878
base: 1.0
7979
current: 2.0.0
@@ -97,10 +97,10 @@ versioning_systems:
9797
current: 1.3.1
9898
edot-python:
9999
base: 1.0
100-
current: 1.11.0
100+
current: 1.12.0
101101
edot-cf-aws:
102102
base: 1.0
103-
current: 1.4.0
103+
current: 1.5.0
104104
edot-cf-azure:
105105
base: 0.1
106106
current: 0.7.1
@@ -152,7 +152,7 @@ versioning_systems:
152152
current: 9.3.1
153153
elasticsearch-client-java:
154154
base: 9.0
155-
current: 9.3.3
155+
current: 9.3.4
156156
elasticsearch-client-javascript:
157157
base: 9.0
158158
current: 9.3.4
@@ -167,7 +167,7 @@ versioning_systems:
167167
current: 9.3.0
168168
elasticsearch-client-ruby:
169169
base: 9.0
170-
current: 9.3.0
170+
current: 9.3.1
171171
elasticsearch-client-rust:
172172
base: 9.0
173173
current: 9.1.0-alpha.1

docs-builder.slnx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@
7474
<Project Path="src/services/Elastic.Changelog/Elastic.Changelog.csproj" />
7575
<Project Path="src/services/Elastic.Documentation.Assembler/Elastic.Documentation.Assembler.csproj" />
7676
<Project Path="src/services/Elastic.Documentation.Isolated/Elastic.Documentation.Isolated.csproj" />
77+
<Project Path="src/services/Elastic.Documentation.Integrations/Elastic.Documentation.Integrations.csproj" />
7778
<Project Path="src/services/Elastic.Documentation.Services/Elastic.Documentation.Services.csproj" />
7879
<Project Path="src/services/Elastic.Documentation.Search/Elastic.Documentation.Search.csproj" />
7980
</Folder>
@@ -99,6 +100,7 @@
99100
<Project Path="tests/Elastic.Markdown.Tests/Elastic.Markdown.Tests.csproj" />
100101
<Project Path="tests/Navigation.Tests/Navigation.Tests.csproj" />
101102
<Project Path="tests/Elastic.Changelog.Tests/Elastic.Changelog.Tests.csproj" />
103+
<Project Path="tests/Elastic.Documentation.Integrations.Tests/Elastic.Documentation.Integrations.Tests.csproj" />
102104
</Folder>
103105
<Project Path=".github/.github.csproj">
104106
<Build Project="false" />

docs/cli/changelog/add.md

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,16 +29,15 @@ docs-builder changelog add [options...] [-h|--help]
2929
: If the content contains any special characters such as backquotes, you must precede it with a backslash escape character (`\`).
3030

3131
`--no-extract-release-notes`
32-
: Optional: Turn off extraction of release notes from PR descriptions.
33-
: The extractor looks for content in various formats in the PR description:
32+
: Optional: Turn off extraction of release notes from PR or issue descriptions.
33+
: The extractor looks for content in various formats in the PR or issue description:
3434
: - `Release Notes: ...`
3535
: - `Release-Notes: ...`
3636
: - `release notes: ...`
3737
: - `Release Note: ...`
3838
: - `Release Notes - ...`
3939
: - `## Release Note` (as a markdown header)
40-
: Short release notes (≤120 characters, single line) are used as the changelog title (only if `--title` is not explicitly provided).
41-
: Long release notes (>120 characters or multi-line) are used as the changelog description (only if `--description` is not explicitly provided).
40+
: Matched release note text is used as the changelog description (only if `--description` is not explicitly provided). The changelog title is always taken from `--title` or from the PR or issue title, not from the release note section.
4241
: By default, the behavior is determined by the `extract.release_notes` changelog configuration setting.
4342

4443
`--feature-id <string?>`

docs/cli/changelog/bundle.md

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,13 @@ The second argument (`[1]`) and optional third argument (`[2]`) accept the follo
5454
- **Promotion report file** — A path to a downloaded `.html` file containing a promotion report.
5555
- **URL list file** — A path to a plain-text file containing one fully-qualified GitHub PR or issue URL per line. For example, `https://github.com/elastic/elasticsearch/pull/123`. The file must contain only PR URLs or only issue URLs, not a mix. Bare numbers and short forms such as `owner/repo#123` are not allowed.
5656

57+
## General options
58+
59+
These options work with both profile-based and option-based modes.
60+
61+
`--plan`
62+
: Output a structured set of CI step outputs (`needs_network`, `needs_github_token`, `output_path`) describing Docker flags, network requirements, and the resolved output path, then exit without generating the bundle. Intended for CI actions that need to determine container configuration before running the actual bundle step. When running outside GitHub Actions, the output is written to stdout.
63+
5764
## Options
5865

5966
The following options are only valid in option-based mode (no profile argument).
@@ -71,6 +78,13 @@ You must choose one method for determining what's in the bundle (`--all`, `--inp
7178
: Optional: The directory that contains the changelog YAML files.
7279
: When not specified, falls back to `bundle.directory` from the changelog configuration, then the current working directory. See [Output files](#output-files) for the full resolution order.
7380

81+
`--description <string?>`
82+
: Optional: Bundle description text with placeholder support.
83+
: Supports `{version}`, `{lifecycle}`, `{owner}`, and `{repo}` placeholders. Overrides `bundle.description` from config.
84+
: When using `{version}` or `{lifecycle}` placeholders, predictable substitution values are required:
85+
: - **Option-based mode**: Requires `--output-products` to be explicitly specified
86+
: - **Profile-based mode**: Requires either a version argument OR `output_products` in the profile configuration
87+
7488
`--hide-features <string[]?>`
7589
: Optional: A list of feature IDs (comma-separated), or a path to a newline-delimited file containing feature IDs.
7690
: Can be specified multiple times.
@@ -347,6 +361,33 @@ docs-builder changelog bundle \
347361
By default all changelogs that match PRs in the GitHub release notes are included in the bundle.
348362
To apply additional filtering by the changelog type, areas, or products, add `rules.bundle` [filters](#changelog-bundle-rules).
349363

364+
### Bundle with description
365+
366+
You can add a description to bundles using the `--description` option. For simple descriptions, use regular quotes:
367+
368+
```sh
369+
docs-builder changelog bundle \
370+
--all \
371+
--description "This release includes new features and bug fixes."
372+
```
373+
374+
For multiline descriptions with multiple paragraphs, lists, and links, use ANSI-C quoting (`$'...'`) with `\n` for line breaks:
375+
376+
```sh
377+
docs-builder changelog bundle \
378+
--all \
379+
--description $'This release includes significant improvements:\n\n- Enhanced performance\n- Bug fixes and stability improvements\n\nFor security updates, go to [security announcements](https://example.com/docs).'
380+
```
381+
382+
When using placeholders in option-based mode, you must explicitly specify `--output-products` for predictable substitution:
383+
384+
```sh
385+
docs-builder changelog bundle \
386+
--all \
387+
--output-products "elasticsearch 9.1.0 ga" \
388+
--description "Elasticsearch {version} includes performance improvements. Download: https://github.com/{owner}/{repo}/releases/tag/v{version}"
389+
```
390+
350391
## Profile-based examples
351392

352393
When the changelog configuration file defines `bundle.profiles`, you can use those profiles with the `changelog bundle` command.
@@ -435,6 +476,29 @@ docs-builder changelog bundle elasticsearch-gh-release 9.2.0
435476
docs-builder changelog bundle elasticsearch-gh-release latest
436477
```
437478

479+
:::{warning}
480+
**Placeholder validation**: If your profile uses `{version}` or `{lifecycle}` placeholders in the description, you must ensure predictable substitution values:
481+
482+
```sh
483+
# ✅ Good: Version provided for placeholder substitution
484+
docs-builder changelog bundle elasticsearch-release 9.2.0 ./report.html
485+
486+
# ❌ Bad: No version, placeholders will fail unless profile has output_products
487+
docs-builder changelog bundle elasticsearch-release ./report.html
488+
```
489+
490+
To fix the second case, either provide a version argument or add an `output_products` pattern to your profile:
491+
492+
```yaml
493+
bundle:
494+
profiles:
495+
elasticsearch-release:
496+
products: "elasticsearch * *"
497+
output_products: "elasticsearch {version}" # Enables placeholder substitution
498+
description: "Download: https://github.com/{owner}/{repo}/releases/tag/v{version}"
499+
```
500+
:::
501+
438502
### Bundle by product
439503

440504
You can create profiles that are equivalent to the `--input-products` filter option, that is to say the bundle will contain only changelogs with matching `products`.

docs/cli/changelog/gh-release.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,10 @@ docs-builder changelog gh-release <repo> [version] [options...] [-h|--help]
3131
`--config <string?>`
3232
: Optional: Path to the changelog.yml configuration file. Defaults to `docs/changelog.yml`.
3333

34+
`--description <string?>`
35+
: Optional: Bundle description text with placeholder support.
36+
: Supports `{version}`, `{lifecycle}`, `{owner}`, and `{repo}` placeholders. Overrides `bundle.description` from config.
37+
3438
`--output <string?>`
3539
: Optional: Output directory for the generated changelog files. Falls back to `bundle.directory` in `changelog.yml` when not specified. Defaults to `./changelogs`.
3640

@@ -86,6 +90,13 @@ docs-builder changelog gh-release elasticsearch v9.2.0 \
8690
--config ./docs/changelog.yml
8791
```
8892

93+
### Add description with placeholders
94+
95+
```sh
96+
docs-builder changelog gh-release elasticsearch v9.2.0 \
97+
--description "Elasticsearch {version} includes new features and fixes. Download: https://github.com/{owner}/{repo}/releases/tag/v{version}"
98+
```
99+
89100
### Strip component prefixes from titles
90101

91102
```sh

docs/cli/changelog/init.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ If no docs folder exists, the command creates `{path}/docs` and places `changelo
1313
The command creates a `changelog.yml` configuration file (from the built-in template) and `changelog` and `releases` subdirectories in the `docs` folder.
1414
When `--changelog-dir` or `--bundles-dir` is specified, the corresponding `bundle.directory` and `bundle.output_directory` values in `changelog.yml` are set or updated (whether creating a new file or the file already exists).
1515

16+
When the template is written for the first time, the command can **seed** `bundle.owner`, `bundle.repo`, and `bundle.link_allow_repos` so PR and issue links resolve under the explicit link allowlist in [changelog.example.yml](https://github.com/elastic/docs-builder/blob/main/config/changelog.example.yml) (there is no implicit allow for your own repository). Seeding runs when `git` remote `origin` points at **github.com** and/or when you pass `--owner` and/or `--repo`. CLI values override values inferred from `git`. If you pass `--repo` without `--owner` and `git` does not supply an owner, the owner defaults to `elastic`. If neither `git` nor CLI provides enough information, the placeholder line is removed from the template and you can set bundle fields manually.
17+
1618
## Usage
1719

1820
```sh
@@ -33,6 +35,12 @@ docs-builder changelog init [options...] [-h|--help]
3335
: Optional: Path to the bundles output directory.
3436
: Defaults to `{docsFolder}/releases`.
3537

38+
`--owner <string?>`
39+
: Optional: GitHub organization or user for `bundle.owner` and for seeding `bundle.link_allow_repos` when creating `changelog.yml`. Overrides the owner parsed from `git` remote `origin`.
40+
41+
`--repo <string?>`
42+
: Optional: GitHub repository name for `bundle.repo` and for seeding `bundle.link_allow_repos` when creating `changelog.yml`. Overrides the repository name parsed from `git` remote `origin`.
43+
3644
## Examples
3745

3846
Initialize changelog (creates or uses docs folder, places `changelog.yml` there, plus `changelog` and `releases` subdirectories):
@@ -55,3 +63,9 @@ docs-builder changelog init \
5563
--changelog-dir ./my-changelogs \
5664
--bundles-dir ./my-releases
5765
```
66+
67+
Initialize without relying on `git` (for example in a clean checkout or CI), setting the GitHub owner and repository used to seed bundle defaults and `link_allow_repos`:
68+
69+
```sh
70+
docs-builder changelog init --owner elastic --repo kibana
71+
```

0 commit comments

Comments
 (0)