From 8c9f117c8935243efb879dd4e7ce4bc8a2f40daf Mon Sep 17 00:00:00 2001 From: Martijn Laarman Date: Wed, 16 Sep 2026 14:26:06 +0200 Subject: [PATCH 01/11] Migrate changelog workflows to release-notes and update directive syntax Replace the three legacy shared workflows (changelog-init, changelog-submit, changelog-upload) with the unified release-notes workflow. Bundle now fires on GitHub release publish instead of push to main. Changes: - Delete changelog-init.yml, changelog-submit.yml, changelog-upload.yml - Add release-notes.yml: unified validate/submit/bundle via docs-actions - Add release-notes-comments.yml: PR comment upserts after release-notes run - Add changelog-upstream-update.yml: preserve bespoke auto-entry generation for PRs labeled changelog:upstream-update (extracted from changelog-init) - docs/docset.yml: add release_notes.product: edot-java so CDN prefetch works - docs/release-notes/*.md: change :::{changelog} /releases/ to :::{changelog} edot-java (explicit product name, CDN-sourced) Co-Authored-By: Claude Sonnet 4.6 --- .github/workflows/changelog-init.yml | 58 ------------------- .github/workflows/changelog-submit.yml | 18 ------ .github/workflows/changelog-upload.yml | 15 ----- .../workflows/changelog-upstream-update.yml | 44 ++++++++++++++ .github/workflows/release-notes-comments.yml | 18 ++++++ .github/workflows/release-notes.yml | 19 ++++++ docs/docset.yml | 2 + docs/release-notes/breaking-changes.md | 2 +- docs/release-notes/deprecations.md | 2 +- docs/release-notes/index.md | 2 +- docs/release-notes/known-issues.md | 2 +- 11 files changed, 87 insertions(+), 95 deletions(-) delete mode 100644 .github/workflows/changelog-init.yml delete mode 100644 .github/workflows/changelog-submit.yml delete mode 100644 .github/workflows/changelog-upload.yml create mode 100644 .github/workflows/changelog-upstream-update.yml create mode 100644 .github/workflows/release-notes-comments.yml create mode 100644 .github/workflows/release-notes.yml diff --git a/.github/workflows/changelog-init.yml b/.github/workflows/changelog-init.yml deleted file mode 100644 index 399a961ad..000000000 --- a/.github/workflows/changelog-init.yml +++ /dev/null @@ -1,58 +0,0 @@ -name: changelog-init - -on: - pull_request: - types: - - opened - - synchronize - - reopened - - edited - - labeled - - unlabeled - -permissions: {} - -concurrency: - group: changelog-init-${{ github.event.pull_request.number }} - cancel-in-progress: true - -jobs: - - # with upstream update PRs: - # - we want to automatically generate changelog - # - we do this only for update PRs which are not on a fork and have the expected label - # - we need to do this before the "validate" job, which should pass and make changelog-submit to be skipped (as the changelog already exists) - # this is because changelog-submit is triggered by workflow_run and otherwise we can't control ordering. - upstream-update: - permissions: - contents: write - pull-requests: write - if: > - contains(github.event.pull_request.labels.*.name, 'changelog:upstream-update') - && github.event.pull_request.head.repo.fork == false - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v7 - with: - ref: ${{ github.head_ref }} - - name: Git setup - uses: elastic/oblt-actions/git/setup@v1 - - name: Docs builder setup - uses: elastic/docs-actions/docs-builder/setup@v1 - - - name: Generate changelog entry - env: - PR_NUMBER: ${{ github.event.pull_request.number }} - PR_TITLE: ${{ github.event.pull_request.title }} - PR_URL: ${{ github.event.pull_request.html_url }} - run: .ci/changelog-upstream-update.sh - - validate: - # needs to execute even if init-upstream-update is skipped - if: ${{ always() }} - # needs to execute after init-upstream-update - needs: [ upstream-update ] - permissions: - contents: read # reusable workflow checks out the repo to read docs/changelog.yml - uses: elastic/docs-actions/.github/workflows/changelog-validate.yml@v1 diff --git a/.github/workflows/changelog-submit.yml b/.github/workflows/changelog-submit.yml deleted file mode 100644 index ad824dd3f..000000000 --- a/.github/workflows/changelog-submit.yml +++ /dev/null @@ -1,18 +0,0 @@ -name: changelog-submit - -on: - workflow_run: - workflows: [changelog-init] - types: - - completed - -permissions: {} - -jobs: - submit: - permissions: - contents: write # commit the generated changelog file to the PR branch - pull-requests: write # post the changelog comment on the PR - id-token: write # OIDC token for the org-membership check on fork PRs - packages: read # pull the docs-builder edge image from GHCR - uses: elastic/docs-actions/.github/workflows/changelog-submit.yml@v1 diff --git a/.github/workflows/changelog-upload.yml b/.github/workflows/changelog-upload.yml deleted file mode 100644 index 07d837a0f..000000000 --- a/.github/workflows/changelog-upload.yml +++ /dev/null @@ -1,15 +0,0 @@ -name: changelog-upload - -on: - push: - branches: [main] - -permissions: {} - -jobs: - upload: - permissions: - contents: read # checkout the pushed commit - id-token: write # OIDC token for AWS authentication - pull-requests: read # look up merged PRs for the pushed commit so fork-PR entries can be regenerated - uses: elastic/docs-actions/.github/workflows/changelog-upload.yml@v1 diff --git a/.github/workflows/changelog-upstream-update.yml b/.github/workflows/changelog-upstream-update.yml new file mode 100644 index 000000000..24578a491 --- /dev/null +++ b/.github/workflows/changelog-upstream-update.yml @@ -0,0 +1,44 @@ +name: changelog-upstream-update + +# Automatically generates and commits a changelog entry for PRs that bring in +# upstream OpenTelemetry dependency updates. Triggered when the +# `changelog:upstream-update` label is added to a non-fork PR; the generated +# entry lands on the PR branch before release-notes validate runs. + +on: + pull_request: + types: [labeled] + +permissions: {} + +concurrency: + group: changelog-upstream-update-${{ github.event.pull_request.number }} + cancel-in-progress: true + +jobs: + upstream-update: + permissions: + contents: write + pull-requests: write + if: > + contains(github.event.pull_request.labels.*.name, 'changelog:upstream-update') + && github.event.pull_request.head.repo.fork == false + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + ref: ${{ github.head_ref }} + + - name: Git setup + uses: elastic/oblt-actions/git/setup@v1 + + - name: Docs builder setup + uses: elastic/docs-actions/docs-builder/setup@v1 + + - name: Generate changelog entry + env: + PR_NUMBER: ${{ github.event.pull_request.number }} + PR_TITLE: ${{ github.event.pull_request.title }} + PR_URL: ${{ github.event.pull_request.html_url }} + run: .ci/changelog-upstream-update.sh diff --git a/.github/workflows/release-notes-comments.yml b/.github/workflows/release-notes-comments.yml new file mode 100644 index 000000000..882858f78 --- /dev/null +++ b/.github/workflows/release-notes-comments.yml @@ -0,0 +1,18 @@ +name: Changelog PR comments +on: + workflow_run: + # Must match the `name:` field of the release-notes workflow in this repo. + workflows: ["release-notes"] + types: [completed] +permissions: + pull-requests: write + actions: read +# The PR number is stable; do not cancel — two upstreams can complete close +# together and cancelling mid-upsert risks leaving the wrong comment body. +concurrency: + group: changelog-comments-${{ github.event.workflow_run.head_repository.full_name }}-${{ github.event.workflow_run.head_branch }} + cancel-in-progress: false +jobs: + comment: + if: github.event.workflow_run.event == 'pull_request' && github.event.workflow_run.conclusion != 'cancelled' + uses: elastic/docs-actions/.github/workflows/release-notes-comments.yml@v1 diff --git a/.github/workflows/release-notes.yml b/.github/workflows/release-notes.yml new file mode 100644 index 000000000..23a4bb2b1 --- /dev/null +++ b/.github/workflows/release-notes.yml @@ -0,0 +1,19 @@ +name: release-notes +on: + pull_request: + types: [opened, synchronize, reopened, edited, labeled, unlabeled] + push: + branches: [main] + release: + types: [published] +permissions: {} +jobs: + release-notes: + permissions: + contents: read + id-token: write + pull-requests: read + packages: read + uses: elastic/docs-actions/.github/workflows/release-notes.yml@v1 + with: + bundle-on-release: true diff --git a/docs/docset.yml b/docs/docset.yml index 6197bb764..3cbb992e5 100644 --- a/docs/docset.yml +++ b/docs/docset.yml @@ -1,4 +1,6 @@ project: 'EDOT Java release notes' +release_notes: + - product: edot-java cross_links: - docs-content - opentelemetry diff --git a/docs/release-notes/breaking-changes.md b/docs/release-notes/breaking-changes.md index b696fe2dd..36c3941bc 100644 --- a/docs/release-notes/breaking-changes.md +++ b/docs/release-notes/breaking-changes.md @@ -15,6 +15,6 @@ products: Breaking changes can impact your applications, potentially disrupting normal operations and their monitoring. Before you upgrade, carefully review the Elastic Distribution of OpenTelemetry Java breaking changes and take the necessary steps to mitigate any issues. -:::{changelog} /releases/ +:::{changelog} edot-java :type: breaking-change ::: diff --git a/docs/release-notes/deprecations.md b/docs/release-notes/deprecations.md index 00724da75..ee9ef7c81 100644 --- a/docs/release-notes/deprecations.md +++ b/docs/release-notes/deprecations.md @@ -17,6 +17,6 @@ Over time, certain Elastic functionality becomes outdated and is replaced or rem Review the deprecated functionality for Elastic Distribution of OpenTelemetry Java. While deprecations have no immediate impact, we strongly encourage you update your implementation after you upgrade. To learn how to upgrade, check out [Upgrade](docs-content://deploy-manage/upgrade.md). -:::{changelog} /releases/ +:::{changelog} edot-java :type: deprecation ::: diff --git a/docs/release-notes/index.md b/docs/release-notes/index.md index 711e27751..2da6c52d5 100644 --- a/docs/release-notes/index.md +++ b/docs/release-notes/index.md @@ -17,7 +17,7 @@ Review the changes, fixes, and more in each version of Elastic Distribution of O To check for security updates, go to [Security announcements for the Elastic stack](https://discuss.elastic.co/c/announcements/security-announcements/31). -:::{changelog} /releases/ +:::{changelog} edot-java :type: all :release-dates: ::: diff --git a/docs/release-notes/known-issues.md b/docs/release-notes/known-issues.md index a4ad7e338..d17908191 100644 --- a/docs/release-notes/known-issues.md +++ b/docs/release-notes/known-issues.md @@ -13,6 +13,6 @@ products: # Elastic Distribution of OpenTelemetry Java known issues -:::{changelog} /releases/ +:::{changelog} edot-java :type: known-issue ::: From 25869ea78d8042c04580eb9d57f7a7acee977ea0 Mon Sep 17 00:00:00 2001 From: Martijn Laarman Date: Wed, 16 Sep 2026 14:32:38 +0200 Subject: [PATCH 02/11] Replace bespoke upstream-update with standard changelog-file workflow The custom changelog-upstream-update.yml + .ci/changelog-upstream-update.sh are replaced by the standard release-notes-changelog-file.yml from docs-actions, which auto-generates and commits changelog entries for PRs missing one. Co-Authored-By: Claude Sonnet 4.6 --- .ci/changelog-upstream-update.sh | 25 ----------- .../workflows/changelog-upstream-update.yml | 44 ------------------- .../release-notes-changelog-file.yml | 12 +++++ 3 files changed, 12 insertions(+), 69 deletions(-) delete mode 100755 .ci/changelog-upstream-update.sh delete mode 100644 .github/workflows/changelog-upstream-update.yml create mode 100644 .github/workflows/release-notes-changelog-file.yml diff --git a/.ci/changelog-upstream-update.sh b/.ci/changelog-upstream-update.sh deleted file mode 100755 index 8f4a6f23e..000000000 --- a/.ci/changelog-upstream-update.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail -# this script creates and pushes a changelog entry for the upstream otel dependencies. -# it relies on the following environment variables: -# PR_TITLE: pull-request title (used in the changelog title) -# PR_URL: pull-request URL (used in the changelog entry to link to the PR) -# PR_NUMBER: pull-request number (used to name the changelog entry file) - -docs-builder changelog add \ - --concise \ - --title "${PR_TITLE}" \ - --type enhancement \ - --prs "${PR_URL}" \ - --products "edot-java" \ - -# will overwrite any prior update, if there is any -mv -v "./docs/changelog/${PR_NUMBER}.yaml" "./docs/changelog/upstream-update.yaml" - -if [[ -z "$(git status --porcelain)" ]]; then - echo "No changes to commit" -else - git add --all . - git commit -m "generate changelog entry" - git push -fi diff --git a/.github/workflows/changelog-upstream-update.yml b/.github/workflows/changelog-upstream-update.yml deleted file mode 100644 index 24578a491..000000000 --- a/.github/workflows/changelog-upstream-update.yml +++ /dev/null @@ -1,44 +0,0 @@ -name: changelog-upstream-update - -# Automatically generates and commits a changelog entry for PRs that bring in -# upstream OpenTelemetry dependency updates. Triggered when the -# `changelog:upstream-update` label is added to a non-fork PR; the generated -# entry lands on the PR branch before release-notes validate runs. - -on: - pull_request: - types: [labeled] - -permissions: {} - -concurrency: - group: changelog-upstream-update-${{ github.event.pull_request.number }} - cancel-in-progress: true - -jobs: - upstream-update: - permissions: - contents: write - pull-requests: write - if: > - contains(github.event.pull_request.labels.*.name, 'changelog:upstream-update') - && github.event.pull_request.head.repo.fork == false - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v4 - with: - ref: ${{ github.head_ref }} - - - name: Git setup - uses: elastic/oblt-actions/git/setup@v1 - - - name: Docs builder setup - uses: elastic/docs-actions/docs-builder/setup@v1 - - - name: Generate changelog entry - env: - PR_NUMBER: ${{ github.event.pull_request.number }} - PR_TITLE: ${{ github.event.pull_request.title }} - PR_URL: ${{ github.event.pull_request.html_url }} - run: .ci/changelog-upstream-update.sh diff --git a/.github/workflows/release-notes-changelog-file.yml b/.github/workflows/release-notes-changelog-file.yml new file mode 100644 index 000000000..ee895a6ae --- /dev/null +++ b/.github/workflows/release-notes-changelog-file.yml @@ -0,0 +1,12 @@ +name: Changelog file +on: + workflow_run: + # Must match the `name:` field of the release-notes workflow in this repo. + workflows: ["release-notes"] + types: [completed] +permissions: + pull-requests: write + actions: read +jobs: + changelog-file: + uses: elastic/docs-actions/.github/workflows/release-notes-changelog-file.yml@v1 From 029efdbd4910c4d76d3401046f3a397d77e131c6 Mon Sep 17 00:00:00 2001 From: Martijn Laarman Date: Wed, 16 Sep 2026 14:34:09 +0200 Subject: [PATCH 03/11] Drop bundle-on-release: bundling is handled by pre-post-release workflow pre-post-release.yml manually runs 'docs-builder changelog bundle' in the pre-release phase (with a generated description from gradlew) and removes the entries immediately after. bundle-on-release: true would fire a second empty bundle when the GitHub release is published, which is wrong. Co-Authored-By: Claude Sonnet 4.6 --- .github/workflows/release-notes.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.github/workflows/release-notes.yml b/.github/workflows/release-notes.yml index 23a4bb2b1..71a331ea5 100644 --- a/.github/workflows/release-notes.yml +++ b/.github/workflows/release-notes.yml @@ -4,8 +4,6 @@ on: types: [opened, synchronize, reopened, edited, labeled, unlabeled] push: branches: [main] - release: - types: [published] permissions: {} jobs: release-notes: @@ -15,5 +13,3 @@ jobs: pull-requests: read packages: read uses: elastic/docs-actions/.github/workflows/release-notes.yml@v1 - with: - bundle-on-release: true From 9cb7602ba04baffd5ef0ff12009d9a41c625052d Mon Sep 17 00:00:00 2001 From: Martijn Laarman Date: Wed, 16 Sep 2026 14:35:30 +0200 Subject: [PATCH 04/11] Restore bundle-on-release: true Co-Authored-By: Claude Sonnet 4.6 --- .github/workflows/release-notes.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/release-notes.yml b/.github/workflows/release-notes.yml index 71a331ea5..23a4bb2b1 100644 --- a/.github/workflows/release-notes.yml +++ b/.github/workflows/release-notes.yml @@ -4,6 +4,8 @@ on: types: [opened, synchronize, reopened, edited, labeled, unlabeled] push: branches: [main] + release: + types: [published] permissions: {} jobs: release-notes: @@ -13,3 +15,5 @@ jobs: pull-requests: read packages: read uses: elastic/docs-actions/.github/workflows/release-notes.yml@v1 + with: + bundle-on-release: true From 48f70a0ab5ea1b27aaf9c3dff7edc6381efd0e65 Mon Sep 17 00:00:00 2001 From: Martijn Laarman Date: Wed, 16 Sep 2026 14:44:36 +0200 Subject: [PATCH 05/11] Drop release_notes: declaration; docs-builder now auto-infers from repo MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit docs-builder infers the CDN product from the repository name (elastic-otel-java → edot-java via products.yml) and fetches best-effort. A 404 is a hint not an error, so no declaration is needed until bundles are published to the CDN. Co-Authored-By: Claude Sonnet 4.6 --- docs/docset.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/docset.yml b/docs/docset.yml index 3cbb992e5..6197bb764 100644 --- a/docs/docset.yml +++ b/docs/docset.yml @@ -1,6 +1,4 @@ project: 'EDOT Java release notes' -release_notes: - - product: edot-java cross_links: - docs-content - opentelemetry From 82b43d2a5725a7cc8d35f54211010a3c6f31b368 Mon Sep 17 00:00:00 2001 From: Martijn Laarman Date: Fri, 18 Sep 2026 09:31:00 +0200 Subject: [PATCH 06/11] Declare edot-java product in docset.yml release_notes section --- docs/docset.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/docset.yml b/docs/docset.yml index 6197bb764..722939f1d 100644 --- a/docs/docset.yml +++ b/docs/docset.yml @@ -9,6 +9,8 @@ cross_links: toc: - toc: release-notes - toc: reference/edot-java +release_notes: + - product: edot-java subs: motlp: Elastic Cloud Managed OTLP Endpoint edot: Elastic Distribution of OpenTelemetry @@ -23,4 +25,4 @@ subs: stack: "Elastic Stack" es: "Elasticsearch" kib: "Kibana" - ls: "Logstash" \ No newline at end of file + ls: "Logstash" From 854940fe2e4e77f72bc0e248cf719bcd8cb6b28d Mon Sep 17 00:00:00 2001 From: Martijn Laarman Date: Mon, 21 Sep 2026 13:13:05 +0200 Subject: [PATCH 07/11] Move workflow permissions to job level Top-level permissions: {} with job-scoped grants is the repo's standard permission strategy; align these two workflows with it. Co-Authored-By: Claude --- .github/workflows/release-notes-changelog-file.yml | 7 ++++--- .github/workflows/release-notes-comments.yml | 7 ++++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/.github/workflows/release-notes-changelog-file.yml b/.github/workflows/release-notes-changelog-file.yml index ee895a6ae..ef2bc5d3f 100644 --- a/.github/workflows/release-notes-changelog-file.yml +++ b/.github/workflows/release-notes-changelog-file.yml @@ -4,9 +4,10 @@ on: # Must match the `name:` field of the release-notes workflow in this repo. workflows: ["release-notes"] types: [completed] -permissions: - pull-requests: write - actions: read +permissions: {} jobs: changelog-file: uses: elastic/docs-actions/.github/workflows/release-notes-changelog-file.yml@v1 + permissions: + pull-requests: write + actions: read diff --git a/.github/workflows/release-notes-comments.yml b/.github/workflows/release-notes-comments.yml index 882858f78..25e9f33df 100644 --- a/.github/workflows/release-notes-comments.yml +++ b/.github/workflows/release-notes-comments.yml @@ -4,9 +4,7 @@ on: # Must match the `name:` field of the release-notes workflow in this repo. workflows: ["release-notes"] types: [completed] -permissions: - pull-requests: write - actions: read +permissions: {} # The PR number is stable; do not cancel — two upstreams can complete close # together and cancelling mid-upsert risks leaving the wrong comment body. concurrency: @@ -16,3 +14,6 @@ jobs: comment: if: github.event.workflow_run.event == 'pull_request' && github.event.workflow_run.conclusion != 'cancelled' uses: elastic/docs-actions/.github/workflows/release-notes-comments.yml@v1 + permissions: + pull-requests: write + actions: read From a47fa67cfb367a91cfabeca28c5efab231bb1300 Mon Sep 17 00:00:00 2001 From: Martijn Laarman Date: Tue, 22 Sep 2026 15:07:50 +0200 Subject: [PATCH 08/11] Move bundle generation inline into release-step-3 GITHUB_TOKEN-created releases do not fire the `on: release` event, so bundle-on-release in release-notes.yml never ran. Add bundle and bundle-publish jobs directly to release-step-3.yml chained after create-github-release, following the same pattern as docs-playground-release-notes-tagged-workflow. Remove the on:release trigger and bundle-on-release from release-notes.yml; id-token:write on that workflow is no longer needed. Co-Authored-By: Claude --- .github/workflows/release-notes.yml | 5 ---- .github/workflows/release-step-3.yml | 40 ++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+), 5 deletions(-) diff --git a/.github/workflows/release-notes.yml b/.github/workflows/release-notes.yml index 23a4bb2b1..8c361a541 100644 --- a/.github/workflows/release-notes.yml +++ b/.github/workflows/release-notes.yml @@ -4,16 +4,11 @@ on: types: [opened, synchronize, reopened, edited, labeled, unlabeled] push: branches: [main] - release: - types: [published] permissions: {} jobs: release-notes: permissions: contents: read - id-token: write pull-requests: read packages: read uses: elastic/docs-actions/.github/workflows/release-notes.yml@v1 - with: - bundle-on-release: true diff --git a/.github/workflows/release-step-3.yml b/.github/workflows/release-step-3.yml index 40c00e1a0..dd7bae407 100644 --- a/.github/workflows/release-step-3.yml +++ b/.github/workflows/release-step-3.yml @@ -262,3 +262,43 @@ jobs: --verify-tag \ --title="Release ${{ env.RELEASE_VERSION }}" \ --notes='${{needs.generate-release-notes.outputs.notes}}' + + bundle: + name: "Generate changelog bundle" + needs: create-github-release + runs-on: ubuntu-latest + permissions: + contents: read + packages: read + pull-requests: read + outputs: + bundle-path: ${{ steps.create.outputs.bundle-path }} + steps: + - uses: actions/checkout@v7 + with: + ref: ${{ inputs.ref }} + persist-credentials: false + - name: Create bundle + id: create + uses: elastic/docs-actions/changelog/bundle-create-version@v1 + with: + version: ${{ env.RELEASE_VERSION_TAG }} + github-token: ${{ github.token }} + + bundle-publish: + name: "Publish changelog bundle to S3" + needs: bundle + runs-on: ubuntu-latest + permissions: + contents: read + id-token: write + packages: read + steps: + - uses: actions/checkout@v7 + with: + ref: ${{ inputs.ref }} + persist-credentials: false + - name: Publish bundle to S3 + uses: elastic/docs-actions/changelog/bundle-publish@v1 + with: + bundle-path: ${{ needs.bundle.outputs.bundle-path }} From 51c736168d685267c5191a69f3f8a2fd7e6393a4 Mon Sep 17 00:00:00 2001 From: Martijn Laarman Date: Wed, 23 Sep 2026 17:01:23 +0200 Subject: [PATCH 09/11] Remove pre-release bundle step; consolidate downstream workflows The old docs-builder changelog bundle step in pre-post-release.yml committed a docs/releases/.yaml file into the pre-release branch. That file was referenced by the old release notes markdown. Now that release notes use CDN sourcing (:::{changelog} edot-java), the committed file is dead and the step that generates it should go. The bundle is now created post-release by bundle-create-version@v1 in release-step-3.yml. Also merge release-notes-comments.yml and release-notes-changelog-file.yml into a single release-notes-downstream.yml with two jobs, as suggested in review. Co-Authored-By: Claude --- .github/workflows/pre-post-release.yml | 17 ----------------- .../workflows/release-notes-changelog-file.yml | 13 ------------- ...omments.yml => release-notes-downstream.yml} | 9 +++++++-- 3 files changed, 7 insertions(+), 32 deletions(-) delete mode 100644 .github/workflows/release-notes-changelog-file.yml rename .github/workflows/{release-notes-comments.yml => release-notes-downstream.yml} (66%) diff --git a/.github/workflows/pre-post-release.yml b/.github/workflows/pre-post-release.yml index d1e8be2de..d4408c2bf 100644 --- a/.github/workflows/pre-post-release.yml +++ b/.github/workflows/pre-post-release.yml @@ -74,9 +74,6 @@ jobs: with: github-token: ${{ steps.get_token.outputs.token }} - - name: Docs builder setup - uses: elastic/docs-actions/docs-builder/setup@v1 - - name: Create the release tag (post phase) if: inputs.phase == 'post' run: | @@ -102,20 +99,6 @@ jobs: if: inputs.phase == 'post' run: bash ./.ci/release/post-release.sh - - name: Generate documentation changelog bundle (pre release) - if: inputs.phase == 'pre' - # we should use the 'edot-java-release' profile to generate the bundle: - # docs-builder changelog bundle edot-java-release ${{ env.RELEASE_VERSION }} - # this does not yet allow to provide the generated content for description, so we have to use the explicit arguments. - run: | - description="$(.ci/changelog-bundle-description.sh)" - docs-builder changelog bundle \ - --input-products 'edot-java * *' \ - --output-products 'edot-java ${{ env.RELEASE_VERSION }} ga' \ - --output docs/releases/${{ env.RELEASE_VERSION }}.yaml \ - --description "${description}" - docs-builder changelog remove edot-java-release ${{ env.RELEASE_VERSION }} - - name: Push the ${{ inputs.phase }} release branch run: | git add --all diff --git a/.github/workflows/release-notes-changelog-file.yml b/.github/workflows/release-notes-changelog-file.yml deleted file mode 100644 index ef2bc5d3f..000000000 --- a/.github/workflows/release-notes-changelog-file.yml +++ /dev/null @@ -1,13 +0,0 @@ -name: Changelog file -on: - workflow_run: - # Must match the `name:` field of the release-notes workflow in this repo. - workflows: ["release-notes"] - types: [completed] -permissions: {} -jobs: - changelog-file: - uses: elastic/docs-actions/.github/workflows/release-notes-changelog-file.yml@v1 - permissions: - pull-requests: write - actions: read diff --git a/.github/workflows/release-notes-comments.yml b/.github/workflows/release-notes-downstream.yml similarity index 66% rename from .github/workflows/release-notes-comments.yml rename to .github/workflows/release-notes-downstream.yml index 25e9f33df..26e5c90b9 100644 --- a/.github/workflows/release-notes-comments.yml +++ b/.github/workflows/release-notes-downstream.yml @@ -1,4 +1,4 @@ -name: Changelog PR comments +name: Changelog downstream on: workflow_run: # Must match the `name:` field of the release-notes workflow in this repo. @@ -8,7 +8,7 @@ permissions: {} # The PR number is stable; do not cancel — two upstreams can complete close # together and cancelling mid-upsert risks leaving the wrong comment body. concurrency: - group: changelog-comments-${{ github.event.workflow_run.head_repository.full_name }}-${{ github.event.workflow_run.head_branch }} + group: changelog-downstream-${{ github.event.workflow_run.head_repository.full_name }}-${{ github.event.workflow_run.head_branch }} cancel-in-progress: false jobs: comment: @@ -17,3 +17,8 @@ jobs: permissions: pull-requests: write actions: read + changelog-file: + uses: elastic/docs-actions/.github/workflows/release-notes-changelog-file.yml@v1 + permissions: + pull-requests: write + actions: read From fd0707f7a41246d836f8aa91a063024d9046cf5d Mon Sep 17 00:00:00 2001 From: Martijn Laarman Date: Wed, 23 Sep 2026 17:13:06 +0200 Subject: [PATCH 10/11] Revert: restore two separate downstream changelog workflows MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reverts the merge of release-notes-comments.yml and release-notes-changelog-file.yml into a single file. While the consolidation makes sense locally, the onboarding guide documents these as two distinct files to copy — one for PR comments, one for auto-committing changelog entries — and teams should be able to opt into either independently. Sorry for the noise; Claude was too eager to consolidate. Co-Authored-By: Claude --- .github/workflows/release-notes-changelog-file.yml | 13 +++++++++++++ ...es-downstream.yml => release-notes-comments.yml} | 9 ++------- 2 files changed, 15 insertions(+), 7 deletions(-) create mode 100644 .github/workflows/release-notes-changelog-file.yml rename .github/workflows/{release-notes-downstream.yml => release-notes-comments.yml} (66%) diff --git a/.github/workflows/release-notes-changelog-file.yml b/.github/workflows/release-notes-changelog-file.yml new file mode 100644 index 000000000..ef2bc5d3f --- /dev/null +++ b/.github/workflows/release-notes-changelog-file.yml @@ -0,0 +1,13 @@ +name: Changelog file +on: + workflow_run: + # Must match the `name:` field of the release-notes workflow in this repo. + workflows: ["release-notes"] + types: [completed] +permissions: {} +jobs: + changelog-file: + uses: elastic/docs-actions/.github/workflows/release-notes-changelog-file.yml@v1 + permissions: + pull-requests: write + actions: read diff --git a/.github/workflows/release-notes-downstream.yml b/.github/workflows/release-notes-comments.yml similarity index 66% rename from .github/workflows/release-notes-downstream.yml rename to .github/workflows/release-notes-comments.yml index 26e5c90b9..25e9f33df 100644 --- a/.github/workflows/release-notes-downstream.yml +++ b/.github/workflows/release-notes-comments.yml @@ -1,4 +1,4 @@ -name: Changelog downstream +name: Changelog PR comments on: workflow_run: # Must match the `name:` field of the release-notes workflow in this repo. @@ -8,7 +8,7 @@ permissions: {} # The PR number is stable; do not cancel — two upstreams can complete close # together and cancelling mid-upsert risks leaving the wrong comment body. concurrency: - group: changelog-downstream-${{ github.event.workflow_run.head_repository.full_name }}-${{ github.event.workflow_run.head_branch }} + group: changelog-comments-${{ github.event.workflow_run.head_repository.full_name }}-${{ github.event.workflow_run.head_branch }} cancel-in-progress: false jobs: comment: @@ -17,8 +17,3 @@ jobs: permissions: pull-requests: write actions: read - changelog-file: - uses: elastic/docs-actions/.github/workflows/release-notes-changelog-file.yml@v1 - permissions: - pull-requests: write - actions: read From 174e5482f584eddf3119ada9edea963ec2fa82df Mon Sep 17 00:00:00 2001 From: Martijn Laarman Date: Wed, 23 Sep 2026 17:57:49 +0200 Subject: [PATCH 11/11] Wire changelog-bundle-description into bundle-create-version Runs .ci/changelog-bundle-description.sh before the create step and passes its output as the description input, restoring the upstream dependency version context that was lost when the pre-release bundle step was removed. Requires elastic/docs-actions#367. Co-Authored-By: Claude --- .github/workflows/release-step-3.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/release-step-3.yml b/.github/workflows/release-step-3.yml index dd7bae407..37a21cda0 100644 --- a/.github/workflows/release-step-3.yml +++ b/.github/workflows/release-step-3.yml @@ -278,11 +278,15 @@ jobs: with: ref: ${{ inputs.ref }} persist-credentials: false + - name: Generate bundle description + id: description + run: echo "text=$(.ci/changelog-bundle-description.sh)" >> "$GITHUB_OUTPUT" - name: Create bundle id: create uses: elastic/docs-actions/changelog/bundle-create-version@v1 with: version: ${{ env.RELEASE_VERSION_TAG }} + description: ${{ steps.description.outputs.text }} github-token: ${{ github.token }} bundle-publish: