Repository navigation
Set the Serverless product pair on every release serverless entry - #4378
Merged
Merged
Conversation
An entry that carries a Team label such as Team:Cloud Security took the product that Kibana's changelog.yml maps that label to, and lost cloud-serverless. The manual flow forces "cloud-serverless, kibana" and the automated command now does the same, for both Elasticsearch bundles too. Related to elastic/docs-eng-team#1017 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RyiyHmDHcUFt8rjMNR8TBm
Contributor
Docs preview (local build)Handbook preview: https://docs-v3-preview.elastic.dev/elastic/docs-builder/pull/4378/ |
The YAML writer uses the platform line ending, so the multi-line assertion failed on Windows. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RyiyHmDHcUFt8rjMNR8TBm
Mpdreamz
approved these changes
Oct 9, 2026
This was referenced Oct 15, 2026
skynetigor
pushed a commit
to skynetigor/kibana
that referenced
this pull request
Oct 15, 2026
…tic#298020) ## Summary Adds `products.implies` to `docs/changelog.yml`, so a PR whose team label maps to `observability` or `security` also gets the `kibana` and `cloud-serverless` products. ```yaml implies: observability: [kibana, cloud-serverless] security: [kibana, cloud-serverless] ``` ## Background A team label names a solution, not a deployment target. Today it makes an entry observability-only or security-only, and the per-product `rules.bundle` check then drops that entry from the Kibana and Serverless bundles. `release serverless` works around this by forcing `kibana` and `cloud-serverless` onto every entry (elastic/docs-builder#4378). elastic/docs-builder#4469 adds `products.implies`, so the config can say this instead and the override can go (elastic/docs-builder#4461). The work is tracked in elastic/docs-eng-team#1059. With this block, an entry built from a PR gets: | PR labels | Products | |---|---| | `Team:obs-ux-logs` | `observability`, `kibana`, `cloud-serverless` | | `Team:SecuritySolution` | `security`, `kibana`, `cloud-serverless` | | no product label | `kibana`, `cloud-serverless` (the defaults) | ## Do not merge yet The config loader is strict. `docs-builder` 1.64.0, the current release, rejects the new key: ``` YAML parsing error in changelog configuration: Property 'implies' not found on type 'Elastic.Documentation.Configuration.Changelog.ProductsConfigYaml'. ``` Kibana's changelog workflows run the released binary, so this PR stays a draft until elastic/docs-builder#4469 is merged and released, and the workflows pick up that release. ## Verify Ran against this file: - `docs-builder` 1.64.0: `changelog validate-labels --config docs/changelog.yml --pr-labels "release_note:feature,Team:SecuritySolution"` fails with the error above. - A build of elastic/docs-builder#4469: the same command gives `products=security, kibana, cloud-serverless`. Before this change it gives `products=security`. With `release_note:feature,Team:Docs` it gives no product and no error; the defaults apply when the entry is written. Related to elastic/docs-eng-team#1059 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01RyiyHmDHcUFt8rjMNR8TBm Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
crespocarlos
pushed a commit
to crespocarlos/kibana
that referenced
this pull request
Oct 16, 2026
…tic#298020) ## Summary Adds `products.implies` to `docs/changelog.yml`, so a PR whose team label maps to `observability` or `security` also gets the `kibana` and `cloud-serverless` products. ```yaml implies: observability: [kibana, cloud-serverless] security: [kibana, cloud-serverless] ``` ## Background A team label names a solution, not a deployment target. Today it makes an entry observability-only or security-only, and the per-product `rules.bundle` check then drops that entry from the Kibana and Serverless bundles. `release serverless` works around this by forcing `kibana` and `cloud-serverless` onto every entry (elastic/docs-builder#4378). elastic/docs-builder#4469 adds `products.implies`, so the config can say this instead and the override can go (elastic/docs-builder#4461). The work is tracked in elastic/docs-eng-team#1059. With this block, an entry built from a PR gets: | PR labels | Products | |---|---| | `Team:obs-ux-logs` | `observability`, `kibana`, `cloud-serverless` | | `Team:SecuritySolution` | `security`, `kibana`, `cloud-serverless` | | no product label | `kibana`, `cloud-serverless` (the defaults) | ## Do not merge yet The config loader is strict. `docs-builder` 1.64.0, the current release, rejects the new key: ``` YAML parsing error in changelog configuration: Property 'implies' not found on type 'Elastic.Documentation.Configuration.Changelog.ProductsConfigYaml'. ``` Kibana's changelog workflows run the released binary, so this PR stays a draft until elastic/docs-builder#4469 is merged and released, and the workflows pick up that release. ## Verify Ran against this file: - `docs-builder` 1.64.0: `changelog validate-labels --config docs/changelog.yml --pr-labels "release_note:feature,Team:SecuritySolution"` fails with the error above. - A build of elastic/docs-builder#4469: the same command gives `products=security, kibana, cloud-serverless`. Before this change it gives `products=security`. With `release_note:feature,Team:Docs` it gives no product and no error; the defaults apply when the entry is written. Related to elastic/docs-eng-team#1059 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01RyiyHmDHcUFt8rjMNR8TBm Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
docs-builder release serverlessnow setscloud-serverlessand the service's own product (kibanaorelasticsearch) on every entry it builds, whatever the PR's team labels say.Affects: Release notes
Prompt summary: Fix the products of the entries in the first real automated Kibana Serverless bundle, and change the command so the next bundle comes out right. Track the work in a docs-eng-team issue on the release-notes board.
Why
An entry took the product that the repository's
changelog.ymlmaps its labels to. In the first real Kibana bundle (elastic/docs-internal-workflows#1033), 13 of 38 entries carried onlyobservabilityorsecurity, because ofTeam:labels. They lackedcloud-serverless, so the Serverless release notes page may not show them. The manual skills avoid this with--products "cloud-serverless, kibana"(--products "cloud-serverless, elasticsearch"for Elasticsearch). The command had no such override.What
Forced entry products
BundleChangelogsArgumentsandGitRangeEntryResolutionOptionsget anEntryProductslist. When it is set,ResolveProductsreturns it for every entry that the resolver builds from PR metadata, in place of the label-derived and profile products. Label-derived products still decide the label blockers. Entries from the changelog pool keep their own products. Nothing changes for callers that leave the list empty.Serverless command
ServerlessPromotion.EntryProductIdsreturnscloud-serverlessand the service ID.ServerlessReleaseCommandpasses them for each bundle, including theelasticsearchsubmodule bundle. The entries then read- product: cloud-serverlessand- product: kibana, as in the Oct 6 manual bundle. They no longer carry theversionsandlifecyclethat the profile'soutput_productsadded. The bundle header still carries them.Verify
dotnet test --project tests/Elastic.Changelog.TestsInferredEntry_EntryProducts_ReplaceLabelDerivedProductsfails when the override is disabled. It bundles the same PR with and withoutEntryProducts.Out of scope: Kibana's
changelog.ymlmapsrelease_note:fixbut notrelease_note:bug, so one entry in #1033 came out asother. That mapping is Kibana's to change.Risk: the command's output goes to the private S3 bucket and then the public CDN. A bundle published before this merges keeps the old products, and a code revert does not change it. The #1033 bundle is corrected by hand.
Related to elastic/docs-eng-team#1017
🤖 Generated with Claude Code
https://claude.ai/code/session_01RyiyHmDHcUFt8rjMNR8TBm