Skip to content

[Docs][Backports] Update developer documentation to reflect new automated backport workflow - #20413

Merged
mrodm merged 56 commits into
elastic:mainfrom
mrodm:update_backport_docs
Oct 5, 2026
Merged

mrodm merged 56 commits into
elastic:mainfrom
mrodm:update_backport_docs

Conversation

@mrodm

@mrodm mrodm commented Jul 30, 2026 •

Copy link
Copy Markdown
Collaborator

Proposed commit message

docs(backports): update developer docs to reflect automated backport workflow (#19284)

Bring developer-workflow-support-old-package.md and ci_pipelines.md in
line with the fully automated backport workflow: document the checklist
comment, auto-backport, changelog sync, owner synchronization, and the
integrations-backport-dispatch pipeline.

What

Updated docs/extend/developer-workflow-support-old-package.md and docs/ci_pipelines.md to reflect the fully automated backport workflow across issues #19211–#19215, #19686, and related follow-up PRs.

developer-workflow-support-old-package.md:

docs/ci_pipelines.md:

  • Made pipeline list intro agnostic of pipeline count.
  • Added integrations-backport-dispatch as a Buildkite link (consistent with other entries); removed "(private)" label.
  • Removed trailing slashes from all Buildkite URLs.
  • Added check-changelog-pr-links, check-backports-inventory (main-only scope), check-changelog-versions-in-main, and the backport-dispatch pipeline architecture.
  • Added "Note: currently disabled" to the weekly job section.

Why

The backport workflow was significantly automated across multiple merged PRs (#19997, #20062, #20119, #20236, #19930, #20251, #20197, #20284, #20384, #20556, #20578, #20605, #21017, #21243, #21379). The developer documentation still described the old fully-manual procedure. This update brings both docs in line with the current automated workflow so contributors have accurate guidance on releasing hotfixes for older package versions.

Author's Checklist

How to test this PR locally

Review the rendered output of the two changed files:

  • docs/extend/developer-workflow-support-old-package.md
  • docs/ci_pipelines.md

Related issues


🤖 Generated with Claude Code

mrodm and others added 9 commits July 23, 2026 18:15
Add a new "Backport checklist comment" section to
developer-workflow-support-old-package.md explaining when the
post-backport-checklist workflow posts a comment, what it shows,
that it is currently informational only (no checkboxes yet), and
how to suppress a branch via `archived` or `maintained_until` in
.backports.yml.

Remove the orphaned backport_input_step.png screenshot, which was
no longer referenced by any documentation page.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add a new "Package owner synchronization" section to
developer-workflow-support-old-package.md covering:

- Automatic sync during apply: what is synced (manifest.yml
  owner.github, CODEOWNERS package line and sub-path entries),
  the separate "Sync <pkg> package owners from main" commit,
  no-op behavior when already in sync, and warn-and-continue
  when main is unreachable or the package has been removed.
- check-backport-owners CI step: when it runs (PRs targeting
  backport-* branches on packages/** or CODEOWNERS changes),
  the three PR comment outcomes (in-sync / mismatch with team
  list / check-failed), required author action on mismatch,
  and that soft_fail: true means a mismatch does not block merge.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
)

Expand the maintained_until and archived field descriptions in the
.backports.yml schema table to document their full semantics:
maintained_until excludes the branch automatically once the date
passes (strictly before today UTC), and is preferred when the
end-of-life date is known; archived: true excludes the branch
immediately and does not delete it.

Also add the previously undocumented remove_other_packages field,
explaining its default true behavior and why it exists.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
… step

Add a note in ci_pipelines.md documenting the check-changelog-pr-links
Buildkite step: what it validates (changelog entry links match the PR
being merged), that it is soft_fail, and how to skip it via the
changelog-link-check:skip label. Explain that the sync-backport-changelog
workflow adds this label automatically on sync PRs since their entries
intentionally reference the original backport PR.

Also clarify that check-backports-inventory runs on PRs targeting main
and direct pushes to main only — it is skipped on backport-branch PRs,
which carry only a subset of packages.

Relates to elastic#19284.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…check (elastic#19214)

Rewrite step 3 in developer-workflow-support-old-package.md to document
backport_apply.sh as the recommended tool: syntax, required/optional
arguments, and a numbered description of what it does end-to-end
(cherry-pick, version bump, changelog entry with placeholder link,
owner sync commit, PR creation, and link fix). Keep the manual
cherry-pick as an alternative and preserve the note about subsequent
fixes not needing a new branch. Add a forward-looking note about the
auto-backport workflow (PR elastic#20197).

Add a note to ci_pipelines.md about the coming
check-changelog-versions-in-main step, which catches sync collisions
on backport-branch PRs before merge.

Relates to elastic#19284.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…le date

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ckages

Update docs to reflect the now-merged auto-backport automation (PR elastic#20197)
and upcoming skip_checklist_packages field (PR elastic#20384):

- Replace "Coming soon" note with description of auto-backport.yml: on merge,
  the workflow reads checked branches from the checklist and creates backport
  PRs automatically; post-merge checklist edits also trigger it.
- Update checklist comment section: describe checkboxes and auto-backport
  trigger, update example to show [ ] checkbox format and new intro text, and
  note that the comment is now recreated (delete+POST) on each push.
- Add "Suppressing a package from the checklist" block documenting the new
  top-level skip_checklist_packages field (elastic#20384).
- ci_pipelines.md: remove stale "coming soon" qualifier from the
  check-changelog-versions-in-main step — it shipped with elastic#20197.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@mrodm mrodm self-assigned this Jul 30, 2026
@github-actions

github-actions Bot commented Jul 30, 2026 •

Copy link
Copy Markdown
Contributor

🔍 Preview links for changed docs

mrodm and others added 18 commits August 5, 2026 17:32
Document known issue #3: the --coverage-format flag was introduced in
elastic-package v0.96.0 (2024-01-18) and is not available on backport
branches based on older commits. Solution: remove the flag from the
relevant script on the backport branch.

Generated with Claude Sonnet 4.6

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…n issue

The missing shellinit known issue only applies to elastic-package < v0.86.0.
From v0.86.0 onward, stack connection settings are read automatically from
the current profile so shellinit is no longer needed.

Generated with Claude Sonnet 4.6

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add a "Retrying a failed sync" note to step 4: when sync-backport-changelog.yml
fails after pushing the working branch but before opening the PR, any maintainer
with write access can re-trigger it by commenting /sync-changelog on the merged
backport PR — no dummy commit needed.

Based on PR elastic#20578 (open at time of writing — verify on merge).

Generated with Claude Sonnet 4.6

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…0578 merged

The failure comment includes the /sync-changelog retry hint on any sync
failure, not only when the working branch was already pushed. Verified
against the final merged state of PR elastic#20578.

Generated with Claude Sonnet 4.6

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Documents the !!seq unmarshal error that affects backport branches using
elastic-package < v0.96.0 after the CI sync PR elastic#20542 replaced the
standalone docker-compose binary installation with the Docker CLI plugin.

Includes root cause explanation and fix steps: revert DOCKER_COMPOSE_VERSION
to the pre-sync value in the three pipeline files, restore with_docker_compose
in common.sh, and wire it into the test scripts. Links to example commit
fbf68eb.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…lastic#20605)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…nds (elastic#20556)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ssion (elastic#21017)

- Replace second `mage applyBackport` with `backport apply` in the
  package owner synchronization section (missed in previous commit).
- Update /sync-changelog permission from "write access" to
  "write or maintain access" to match PR elastic#21017 (merged 2026-09-03).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…tion

Add a paragraph to step 4 explaining that the sync-backport-changelog
workflow now automatically assigns the sync PR to the backport PR's
author (if not a bot and has write/maintain/admin access) or to the
merger (if not a bot). Reflects elastic#21243, merged 2026-09-15.

Add a sentence to the checklist comment section documenting that
auto-backport PRs are automatically assigned to the original PR's
author or merger using the same logic. Preemptive for elastic#21379 (open).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add Buildkite link for integrations-backport-dispatch (replacing bare
name) and remove "(private)" label for consistency with other entries.
Remove trailing slashes from all Buildkite URLs throughout the file.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ferences

Remove "(private)" from the pipeline list entry and drop "private"
from inline references in the body text for consistency. Retain the
explanation of why a dedicated dispatch pipeline is needed, narrowed
to the relevant scenario (public pipeline triggering a private one).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Update the intro paragraph to lead with automation instead of "manual
changes". Add a checklist callout to the overview so readers can jump
directly to the checklist section. Restructure step 3 into Automatic
and Manual sub-paths, with an anchor link to the checklist section and
clearer framing of when backport_apply.sh is needed. Add a context
sentence at the top of the checklist section for developers landing
there directly from a PR comment.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…own issues

Remove the stale "wait for EPR" instruction in the manual cherry-pick
path — the changelog sync fires automatically on merge and needs no
waiting. Split the backport_apply.sh snippet into a basic and an
assignee-resolution example so --origin-pr-number reads as optional.
Add a scope sentence to the Known issues section so readers know it
applies to old backport branches with stale CI infrastructure.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@mrodm mrodm changed the title [Docs][Backports] Update developer documentation to reflect new automated backport workflow (#19284) [Docs][Backports] Update developer documentation to reflect new automated backport workflow Sep 22, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🔵 Needs a closer look

Two moderate issues and four nits remain in the backport workflow documentation.

Review effort: Lite
Findings: None

Resolved since last review (1)

@teresaromero teresaromero left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚀

@mergify

mergify Bot commented Sep 28, 2026 •

Copy link
Copy Markdown
Contributor

This pull request does not currently match the merge queue conditions, so it cannot be queued from here. The box comes back if it matches again.

mrodm and others added 2 commits October 1, 2026 17:14
The checklist comment is now posted after a PR is merged to main by
backport-packages-detect.yml (push trigger) instead of while the PR is
open. Update the developer workflow doc accordingly:

- describe the post-merge timing and the cc line for author and merger
- drop the removed post-backport-checklist.yml and "updated on each push"
  wording
- align the example comment with the current checklist template
- document who can trigger auto-backport, queued runs and de-duplication
- tell readers to tick branches after merge in the intro and step 3

Reflects elastic#21736.

Created by Claude.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Copilot AI lite review requested due to automatic review settings October 1, 2026 15:44

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟢 Approval recommended

Remaining findings are non-blocking documentation nits.

Review effort: Lite
Findings: 1 Low severity

Open (1)

…sections

Address Copilot review feedback on PR elastic#20413: a PR touching a package with
active backport branches can still get no checklist when that package is
listed in skip_checklist_packages, so say so in the eligibility text.

Also turn the "Suppressing a branch/package from the checklist" bold lines
into ### headings so they have real anchors, add them to the table of
contents, and link to the branch section from the maintained_until and
archived field descriptions.

Created by Claude.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Copilot AI lite review requested due to automatic review settings October 1, 2026 16:04

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🔵 Needs a closer look

Documentation statements should be corrected to accurately describe workflow conditions and build behavior.

Review effort: Lite
Findings: None

Resolved since last review (1)
Previously missed (2)

In code that hasn't changed since last review

Low severity Qualify notification guarantee when the backport PR cannot be resolved

docs/​ci_pipelines.md:233

The notification is conditional: trigger_backport.sh leaves PR_NUMBER empty when resolve_pr_number cannot resolve the merge, and notify_backport_pr.sh then explicitly skips posting. This sentence guarantees a comment for every merge, so qualify it to reflect that failure mode.

Low severity Qualify sync PR creation when changelog changes trigger the workflow

docs/​extend/​developer-workflow-support-old-package.md:229

The sync workflow is not triggered by every merged backport PR: its push trigger is filtered to **/changelog.yml changes. A manually created backport PR (or a merge without a changelog change) therefore will not open a sync PR, so this should be qualified to avoid promising an action that will not run.

Copilot AI lite review requested due to automatic review settings October 2, 2026 08:12

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🔵 Needs a closer look

Three moderate documentation issues and three minor inaccuracies remain unresolved.

Review effort: Lite
Findings: None

@mrodm
mrodm requested a review from teresaromero October 2, 2026 08:34
Rewrite the intro of the checklist section: state that the comment is
posted only after a PR is merged to main, only when it changes a package
with active, non-suppressed backport branches, and never for PRs merged
into other branches. Drop the conversational "if you landed here" line.

Created by Claude.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Copilot AI lite review requested due to automatic review settings October 2, 2026 11:15

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🔵 Needs a closer look

Several documentation inaccuracies and a setup command issue remain unresolved.

Review effort: Lite
Findings: None

Previously missed (1)

In code that hasn't changed since last review

Low severity Create build directory before compiling the backport tool

docs/​extend/​developer-workflow-support-old-package.md:104

On a clean checkout there is no build/ directory, so this command fails because go build does not create the output directory before writing build/backport. Create the directory first so the documented setup works as written.

The integrations-schedule-daily cron lines in catalog-info.yaml use
day-of-week 1-5, so the job runs on weekdays, not every night. Update the
pipeline list entry and the Daily job section accordingly.

Also point the schedules link at catalog-info.yaml on main instead of an
old pinned commit that showed the previous cron.

Created by Claude.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Copilot AI lite review requested due to automatic review settings October 2, 2026 11:25

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🔵 Needs a closer look

The changelog-sync documentation must be corrected to accurately describe workflow failures and generated PR behavior.

Review effort: Lite
Findings: None

Previously missed (1)

In code that hasn't changed since last review

Low severity Sync PR creation is conditional and may be skipped

docs/​extend/​developer-workflow-support-old-package.md:229

The sync workflow is not guaranteed to open a PR for every merged backport: its push trigger is limited to changes matching **/changelog.yml, and Collect reports skipped/already_exists when there is no actionable entry or an open sync PR already exists. Please qualify this as an attempt and mention the skip outcome so the procedure does not promise a PR that will not be created.

@teresaromero teresaromero left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚀

@mrodm
mrodm merged commit 2d05332 into elastic:main Oct 5, 2026
13 checks passed
@mrodm
mrodm deleted the update_backport_docs branch October 5, 2026 13:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

backport: update developer documentation to reflect the new automated backport workflow

3 participants