[DOCS] Add use_local_changelogs to changelog.yml - #1231
Draft
lcawl wants to merge 3 commits into
Draft
Conversation
📋 ChangelogGenerated changelog entry for prs:
- https://github.com/elastic/elastic-otel-java/pull/1231
type: docs
products:
- product: edot-java
lifecycle: ga
title: Add use_local_changelogs to changelog.ymlThis comment is informational — editing it does not change what gets uploaded. On merge, the entry is regenerated from the live PR record (title, labels) and uploaded to S3. To change the preview, edit the PR title or labels and let the changelog workflow re-run. |
🔍 Preview links for changed docs⏳ Building and deploying preview... View progress This comment will be updated with preview links when the build is complete. |
✅ Elastic Docs Style Checker (Vale)No issues found on modified lines! The Vale linter checks documentation changes against the Elastic Docs style guide. To use Vale locally or report issues, refer to Elastic style guide for Vale. |
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.
Background
https://github.com/elastic/elastic-otel-java/actions/runs/34202678209/job/101984907127#step:11:36 is returning the following error:
Errors --input-products is not supported when sourcing changelog entries from the CDN, because entries are fetched by key (one per PR) and there is no pool enumeration. Pass --force-local or --directory to bundle from a local checkout instead.The affected pipeline is defined here: https://github.com/elastic/elastic-otel-java/blob/main/.github/workflows/pre-post-release.yml#L105
I think this error relates to elastic/docs-builder#3922
If you don't specify
--force-local, thechangelog bundlecommand assumes you're pulling changelogs from S3.The
--input-productsoption doesn't work with S3-based changelogs.Solution
If it's true that all of the relevant changelogs exist in the
docs/changelogfolder (i.e. not in S3), you can add the--force-localoption or the equivalentbundle.use_local_changelogssetting, per https://docs-v3-preview.elastic.dev/elastic/docs-builder/tree/main/data/release-notes/configure-ref#bundle-entry-sourcing.I've also removed the
outputsetting from thechangelog.ymlfile in this PR, since that's no longer supported per elastic/docs-builder#3856AI analysis
What the workflow actually does
pre-post-release.yml(pre phase):Their profile is the same filter:
products: "edot-java * *".This is a folder-as-source-of-truth pipeline:
docs/changelog(changelog add/ changelog-submit). Those files already omittarget(seedocs/changelog/upstream-update.yamland entries insidedocs/releases/1.12.0.yaml).edot-java, regardless of version.--output-products/--output, not a field on each file.changelog removewipes the folder so the next release does not double-count.What is actually likely broken
Two docs-builder changes collide with this repo:
bundle.reporesolves. They setbundle.repo/bundle.ownerand do not pass--directory,--force-local, orbundle.use_local_changelogs.bundle.directoryis used for local discovery after the source gate; it does not force local. Then--input-productsis a hard error on the CDN path (no pool enumeration).output: "{version}.yaml"is a hard error in profile-basedchangelog bundle. Their current job is option-mode with an explicit YAML--output, so this does not fire today. The commented-outchangelog bundle edot-java-release ${VERSION}would fail untiloutputis removed.{changelog} /releases/currently consumes1.12.0.yaml-style names; conventional{repo}-{product}-{version}.yamlwould be a second, separate migration.Git vs S3: where otel-java changelog YAML actually lives
Not “all files live only in git” and not “some unreleased files exist only in S3.” It is both, at different lifecycle stages.
In the repo (authoring / current release window):
changelog-submitcommits YAML intodocs/changelogon the PR branch.changelog-uploadon push tomaincopies whatever is in that folder to S3 (changelog/elastic/elastic-otel-java/main/...).mainhas onlydocs/changelog/upstream-update.yaml(PR 1212, 2026-08-26) plus.gitkeep.Removed from the repo at pre-release:
0f0030d(pre release: elastic-otel-java v1.12.0, 2026-07-31) deleted1089.yaml,1093.yaml,1117.yaml, and the previousupstream-update.yamlafter writingdocs/releases/1.12.0.yaml.changelog removedoes not delete S3 objects.On the public CDN (S3 public bucket via CloudFront):
https://d10xozp44eyz7q.cloudfront.net/changelog/elastic/elastic-otel-java/main/registry.jsonstill lists those four already-bundled files,generated_at2026-07-24 (before the 1.12.0 wipe). The current gitupstream-update.yamlis not in that registry.What this does and does not prove:
docs/changelog), not “S3-only.”Options
1. Keep the folder model; force local sourcing (recommended for this team)
No change to
--input-productssemantics. Any of:--force-localon the bundle step--directory docs/changelog(also forces local)bundle.use_local_changelogs: trueindocs/changelog.ymlLeave
--input-products 'edot-java * *'as-is. Version stays on--output-products/--output. Remove stays profile-based with the wildcard products pattern.This is the smallest unbreak. It does not require commit hashes or PR lists.
2. PR list, GitHub release, promotion report, or
--start-git-ref/--end-git-refValid, but a different source of truth. Only required if they stop treating “whatever is in
docs/changelogsince last wipe” as correct. Theirchangelog:skiprelease PRs and upstream-update rename (N.yaml→upstream-update.yaml) are built around the folder model. Git range also does not auto-include notes.Not the only option, and not the one that matches this workflow.