Skip to content

D1180 — Dependabot waits out the freeze; the open PRs are armed after the train

Decision. Dependabot's auto-merge is not armed while the freeze is open, as scripts/freeze-open.sh answers: Saturday 00:00 until Monday's train has run (Monday before 08:30, then until both scheduled release-train runs of the day are completed, the rule of the implement-plan skill). dependabot-arm.yml disarms the open Dependabot PRs on Saturday at 00:05 Europe/Rome, and arms them directly when a scheduled train run completes with the freeze closed, by the rule of scripts/dependabot-eligible.sh that dependabot-automerge.yml also uses (D329). A failed disarm or arm fails the job and is listed in its summary.

Why. A grouped bump merged itself on Saturday after the candidate was built: main no longer matched the candidate, the Monday train skipped, and a new candidate had to be built by hand. D989 says nothing lands in the freeze unless a maintainer merges it, and a bot's auto-merge is not that. It costs one more workflow and a bump that waits up to two days.

Alternatives rejected. - Moving Dependabot's schedule after the Monday train: a bump opened earlier (or rebased) still arms in a freeze, and the schedule is not the invariant. - Arming from a step inside release-train.yml: that workflow deliberately runs no third-party action and checks nothing out, and would carry the PR rules twice. - Re-running dependabot-automerge.yml on each PR to arm it: a re-run of a Dependabot-actor run may keep Dependabot's restricted token and fail quietly. - Clock-only end of the freeze (Monday 08:30): the train often starts late, and a merge before it skips it.

Consequences. The freeze window is defined in freeze-open.sh for the bots; the train still computes its own commit filter and the two must change together. Both workflows check out main, never the PR, since they run a script with a write token.