Skip to content

Group Dependabot security updates and keep v3-3-test covered - #70556

Merged
potiuk merged 2 commits into
apache:mainfrom
potiuk:group-dependabot-security-updates
Jul 28, 2026
Merged

Group Dependabot security updates and keep v3-3-test covered#70556
potiuk merged 2 commits into
apache:mainfrom
potiuk:group-dependabot-security-updates

Conversation

@potiuk

@potiuk potiuk commented Jul 27, 2026

Copy link
Copy Markdown
Member

Dependabot groups only apply to security updates when they declare
applies-to: security-updates — without it, a group covers version updates
only. Every group in our config relied on that default, so alert-driven bumps
bypassed grouping entirely and opened one PR each:

Each one has a matching Dependabot alert — they are security updates, not
version updates.

This adds a security-updates group to every entry that targets the default
branch, so those bumps get batched the way version updates already are.

Three things worth calling out for reviewers:

  1. The v3-3-test entries are deliberately untouched. Dependabot raises
    security updates against the default branch only, and per the docs an entry
    using target-branch is version-updates only. A security group there would
    never match anything, so I added comments saying so rather than leaving it
    looking like an oversight.

  2. *-major-version-updates groups are widened and renamed. The core-ui,
    auth-ui and registry entries already had applies-to: security-updates
    groups, but restricted to update-types: [major] — so minor and patch
    security updates fell through ungrouped. They now cover all security updates
    and are renamed *-security-updates to match what they do. This changes the
    Dependabot branch names for those groups; no open PRs currently use them.

  3. New gomod entry for /go-sdk. That directory had no configuration at
    all. Dependabot still raises security PRs for it (hence the two Go bumps
    above) but cannot group them without an entry. This adds weekly grouped
    version updates plus a security group.

  4. No new backport automation. Auto-labelling security PRs backport-to-v3-3-test
    and letting automatic-backport.yml cherry-pick them was the other option, but
    lock file picks across diverged branches fail often enough that it would mostly
    generate failed-backport noise. Mirroring the config is the reliable route.

Major version updates in the UI directories (i18next 25→26,
eslint-plugin-unicorn, @visx/shape, @stylistic) stay ungrouped — the
minor+patch groups exclude them on purpose and I did not change that.

Keeping v3-3-test covered

Security updates only ever target the default branch, so a fixed version landing
on main does not reach the maintenance branch by itself. Cherry-picking one over
is unreliable — these commits carry lock file diffs, and main's lock files have
long diverged from v3-3-test's, so the pick conflicts more often than not.

Letting Dependabot maintain the branch directly sidesteps that: it resolves the
dependency and regenerates the lock file on v3-3-test itself. Six directories
were tracked on main but not on the maintenance branch, so a fixed version had
no route there at all:

  • npm: edge3 www, fab www, /registry, react plugin template
  • uv: /dev/breeze
  • gomod: /go-sdk

They now have target-branch: v3-3-test entries following the policy the branch
already applies to core-ui and auth-ui — minor and patch only, majors ignored.
Every ecosystem/directory tracked on main is now also tracked on v3-3-test
(10 entries each). A fix that needs a major bump still has to be backported by hand.

dev/update_github_branch_config.py generates the same six entries, so cutting
the next release branch does not silently reintroduce the gap. I verified this by
running it for a hypothetical v3-4-test: 10 main / 10 v3-4-test / 10 v3-3-test,
nothing unmirrored.

One thing worth knowing for reviewers: that script patches dependabot.yml by
exact string match, and one of its anchors requires interval: "weekly" to be
immediately followed by target-branch: v3-3-test. Explanatory comments therefore
live at the top of the file rather than inline, so the anchors stay intact.


Was generative AI tooling used to co-author this PR?
  • Yes (please specify the tool below)

Generated-by: Claude Code (Claude Opus 5) following the guidelines

🤖 Generated with Claude Code

@potiuk
potiuk force-pushed the group-dependabot-security-updates branch from 9f9490f to fe9b1d7 Compare July 27, 2026 18:42
@potiuk potiuk changed the title Group Dependabot security updates Group Dependabot security updates and keep v3-3-test covered Jul 27, 2026
@potiuk
potiuk force-pushed the group-dependabot-security-updates branch from 2e0b9ab to b1ade46 Compare July 27, 2026 21:22
potiuk added 2 commits July 28, 2026 09:34
Dependabot groups only apply to security updates when they declare
`applies-to: security-updates`; without it a group covers version updates
only. Every group in our config relied on that default, so alert-driven
bumps bypassed grouping entirely and opened one PR each - axios in edge3
(apache#70145), mermaid (apache#69132, apache#69137), gitpython (apache#70428), zeep (apache#68780),
@hey-api/openapi-ts (apache#69265) and the two /go-sdk Go bumps (apache#70226, apache#69214).

Add a `security-updates` group to every entry that targets the default
branch. Entries carrying `target-branch: v3-3-test` are deliberately left
alone: Dependabot raises security updates against the default branch only,
so a security group there would never match. Comments note this so it does
not look like an oversight.

The three existing `*-major-version-updates` groups were already
`applies-to: security-updates` but restricted to `update-types: [major]`,
so minor and patch security fixes fell through ungrouped. They are widened
to cover all security updates and renamed to `*-security-updates` to match
what they actually do.

Also adds a `gomod` entry for /go-sdk, which had no configuration at all -
its Go security bumps were arriving individually because Dependabot raises
security updates for ecosystems with no entry, but can only group them when
one exists.

Generated-by: Claude Opus 5 (1M context)
Dependabot raises security updates against the default branch only, so a fix
that lands on main does not reach a maintenance branch by itself. Cherry-picking
one over is unreliable: these commits carry lock file diffs, and main's lock
files have long diverged from v3-3-test's, so the pick conflicts more often than
not.

Letting Dependabot maintain the branch directly avoids that entirely - it
resolves the dependency and regenerates the lock file on v3-3-test itself. Six
directories were tracked on main but not on the maintenance branch, so a fixed
version had no way of reaching it:

- npm: edge3 www, fab www, /registry, react plugin template
- uv: /dev/breeze
- gomod: /go-sdk

They now have `target-branch: v3-3-test` entries following the policy the branch
already uses for core-ui and auth-ui: minor and patch only, majors ignored. A
fix that needs a major bump still has to be backported by hand.

`dev/update_github_branch_config.py` generates the same six entries, so cutting
the next release branch does not silently reintroduce the gap.

Generated-by: Claude Opus 5 (1M context)
@potiuk
potiuk force-pushed the group-dependabot-security-updates branch from b1ade46 to 5ad43a7 Compare July 28, 2026 07:34
@potiuk
potiuk merged commit 00679b8 into apache:main Jul 28, 2026
156 checks passed
@potiuk
potiuk deleted the group-dependabot-security-updates branch July 28, 2026 12:02
@github-actions

Copy link
Copy Markdown
Contributor

Backport successfully created: v3-3-test

Note: As of Merging PRs targeted for Airflow 3.X
the committer who merges the PR is responsible for backporting the PRs that are bug fixes (generally speaking) to the maintenance branches.

In matter of doubt please ask in #release-management Slack channel.

Status Branch Result
v3-3-test PR Link

potiuk added a commit that referenced this pull request Jul 30, 2026
…red (#70556)

* Group Dependabot security updates

Dependabot groups only apply to security updates when they declare
`applies-to: security-updates`; without it a group covers version updates
only. Every group in our config relied on that default, so alert-driven
bumps bypassed grouping entirely and opened one PR each - axios in edge3
(#70145), mermaid (#69132, #69137), gitpython (#70428), zeep (#68780),
@hey-api/openapi-ts (#69265) and the two /go-sdk Go bumps (#70226, #69214).

Add a `security-updates` group to every entry that targets the default
branch. Entries carrying `target-branch: v3-3-test` are deliberately left
alone: Dependabot raises security updates against the default branch only,
so a security group there would never match. Comments note this so it does
not look like an oversight.

The three existing `*-major-version-updates` groups were already
`applies-to: security-updates` but restricted to `update-types: [major]`,
so minor and patch security fixes fell through ungrouped. They are widened
to cover all security updates and renamed to `*-security-updates` to match
what they actually do.

Also adds a `gomod` entry for /go-sdk, which had no configuration at all -
its Go security bumps were arriving individually because Dependabot raises
security updates for ecosystems with no entry, but can only group them when
one exists.

Generated-by: Claude Opus 5 (1M context)

* Mirror remaining dependency directories onto v3-3-test

Dependabot raises security updates against the default branch only, so a fix
that lands on main does not reach a maintenance branch by itself. Cherry-picking
one over is unreliable: these commits carry lock file diffs, and main's lock
files have long diverged from v3-3-test's, so the pick conflicts more often than
not.

Letting Dependabot maintain the branch directly avoids that entirely - it
resolves the dependency and regenerates the lock file on v3-3-test itself. Six
directories were tracked on main but not on the maintenance branch, so a fixed
version had no way of reaching it:

- npm: edge3 www, fab www, /registry, react plugin template
- uv: /dev/breeze
- gomod: /go-sdk

They now have `target-branch: v3-3-test` entries following the policy the branch
already uses for core-ui and auth-ui: minor and patch only, majors ignored. A
fix that needs a major bump still has to be backported by hand.

`dev/update_github_branch_config.py` generates the same six entries, so cutting
the next release branch does not silently reintroduce the gap.
(cherry picked from commit 00679b8)

Co-authored-by: Jarek Potiuk <jarek@potiuk.com>
Generated-by: Claude Opus 5 (1M context)
vatsrahul1001 pushed a commit that referenced this pull request Aug 5, 2026
…red (#70556)

* Group Dependabot security updates

Dependabot groups only apply to security updates when they declare
`applies-to: security-updates`; without it a group covers version updates
only. Every group in our config relied on that default, so alert-driven
bumps bypassed grouping entirely and opened one PR each - axios in edge3
(#70145), mermaid (#69132, #69137), gitpython (#70428), zeep (#68780),
@hey-api/openapi-ts (#69265) and the two /go-sdk Go bumps (#70226, #69214).

Add a `security-updates` group to every entry that targets the default
branch. Entries carrying `target-branch: v3-3-test` are deliberately left
alone: Dependabot raises security updates against the default branch only,
so a security group there would never match. Comments note this so it does
not look like an oversight.

The three existing `*-major-version-updates` groups were already
`applies-to: security-updates` but restricted to `update-types: [major]`,
so minor and patch security fixes fell through ungrouped. They are widened
to cover all security updates and renamed to `*-security-updates` to match
what they actually do.

Also adds a `gomod` entry for /go-sdk, which had no configuration at all -
its Go security bumps were arriving individually because Dependabot raises
security updates for ecosystems with no entry, but can only group them when
one exists.

Generated-by: Claude Opus 5 (1M context)

* Mirror remaining dependency directories onto v3-3-test

Dependabot raises security updates against the default branch only, so a fix
that lands on main does not reach a maintenance branch by itself. Cherry-picking
one over is unreliable: these commits carry lock file diffs, and main's lock
files have long diverged from v3-3-test's, so the pick conflicts more often than
not.

Letting Dependabot maintain the branch directly avoids that entirely - it
resolves the dependency and regenerates the lock file on v3-3-test itself. Six
directories were tracked on main but not on the maintenance branch, so a fixed
version had no way of reaching it:

- npm: edge3 www, fab www, /registry, react plugin template
- uv: /dev/breeze
- gomod: /go-sdk

They now have `target-branch: v3-3-test` entries following the policy the branch
already uses for core-ui and auth-ui: minor and patch only, majors ignored. A
fix that needs a major bump still has to be backported by hand.

`dev/update_github_branch_config.py` generates the same six entries, so cutting
the next release branch does not silently reintroduce the gap.
(cherry picked from commit 00679b8)

Co-authored-by: Jarek Potiuk <jarek@potiuk.com>
Generated-by: Claude Opus 5 (1M context)
potiuk added a commit that referenced this pull request Aug 7, 2026
…red (#70556) (#70597)

* Group Dependabot security updates

Dependabot groups only apply to security updates when they declare
`applies-to: security-updates`; without it a group covers version updates
only. Every group in our config relied on that default, so alert-driven
bumps bypassed grouping entirely and opened one PR each - axios in edge3
(#70145), mermaid (#69132, #69137), gitpython (#70428), zeep (#68780),
@hey-api/openapi-ts (#69265) and the two /go-sdk Go bumps (#70226, #69214).

Add a `security-updates` group to every entry that targets the default
branch. Entries carrying `target-branch: v3-3-test` are deliberately left
alone: Dependabot raises security updates against the default branch only,
so a security group there would never match. Comments note this so it does
not look like an oversight.

The three existing `*-major-version-updates` groups were already
`applies-to: security-updates` but restricted to `update-types: [major]`,
so minor and patch security fixes fell through ungrouped. They are widened
to cover all security updates and renamed to `*-security-updates` to match
what they actually do.

Also adds a `gomod` entry for /go-sdk, which had no configuration at all -
its Go security bumps were arriving individually because Dependabot raises
security updates for ecosystems with no entry, but can only group them when
one exists.

Generated-by: Claude Opus 5 (1M context)

* Mirror remaining dependency directories onto v3-3-test

Dependabot raises security updates against the default branch only, so a fix
that lands on main does not reach a maintenance branch by itself. Cherry-picking
one over is unreliable: these commits carry lock file diffs, and main's lock
files have long diverged from v3-3-test's, so the pick conflicts more often than
not.

Letting Dependabot maintain the branch directly avoids that entirely - it
resolves the dependency and regenerates the lock file on v3-3-test itself. Six
directories were tracked on main but not on the maintenance branch, so a fixed
version had no way of reaching it:

- npm: edge3 www, fab www, /registry, react plugin template
- uv: /dev/breeze
- gomod: /go-sdk

They now have `target-branch: v3-3-test` entries following the policy the branch
already uses for core-ui and auth-ui: minor and patch only, majors ignored. A
fix that needs a major bump still has to be backported by hand.

`dev/update_github_branch_config.py` generates the same six entries, so cutting
the next release branch does not silently reintroduce the gap.
(cherry picked from commit 00679b8)


Generated-by: Claude Opus 5 (1M context)

Co-authored-by: Jarek Potiuk <jarek@potiuk.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants