Skip to content

fix: pick the highest Chromium version in a milestone, not the most recent release - #216

Merged
jkleinsc merged 2 commits into
mainfrom
fix/chromium-tags-sort-by-version
Oct 15, 2026
Merged

jkleinsc merged 2 commits into
mainfrom
fix/chromium-tags-sort-by-version

Conversation

@claude

@claude claude Bot commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor

Requested by David Babenko-Sanders · Slack thread

The roller picks a release branch's roll target as the last entry from chromiumdash for that branch's milestone, but it sorted those entries by release time. Channels and platforms within a milestone ship on their own schedules, so the newest release is not always the newest version: for Chromium 156 (45-x-y), the Extended build 156.0.8078.13 went out a couple of hours after the Windows Beta builds 156.0.8078.16 and .17, so time ordering held the branch at .13. Releases are now sorted by version with compareChromiumVersions, so the roller always targets the highest version published for the milestone (and, for main, the highest Canary build). This also gives a deterministic pick when several channels publish at the same timestamp, as Extended .36, Stable .36 and early-Stable .35 did this week. I could not query chromiumdash directly from the sandbox, so the timeline above comes from the VersionHistory API, which tracks the same releases.

🤖 Generated with Claude Code

https://claude.ai/code/session_01PbwafMAXGvxSbV7VWbwGus


Generated by Claude Code

…ecent release

Releases within a milestone ship on independent per-channel and per-platform
schedules, so the most recently released entry from chromiumdash is not
necessarily the newest version (e.g. an Extended release published after a
newer Beta or Stable build). Sort releases by version, using release time
only as a tiebreak.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PbwafMAXGvxSbV7VWbwGus
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PbwafMAXGvxSbV7VWbwGus
@dsanders11
dsanders11 marked this pull request as ready for review October 15, 2026 01:19
@dsanders11
dsanders11 requested review from a team as code owners October 15, 2026 01:19

@claude claude Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

LGTM — straightforward fix that swaps release-time sorting for version-based sorting via the existing, unmodified compareChromiumVersions helper.

What was reviewed: the sort-key change in getChromiumReleases and its interaction with the downstream consumer in src/chromium-handler.ts (confirmed it still takes the array's last/highest entry as the roll target); the new test file's four cases (version-overrides-time ordering, numeric vs lexicographic comparison, query-param pass-through, error-on-non-200). Ruled out: malformed/non-numeric version strings causing silent miscomparison — this risk lives in the pre-existing, unmodified compareChromiumVersions helper, not in this diff.

Extended reasoning...

Two-file diff: a one-line sort-key swap in src/utils/get-chromium-tags.ts (time -> compareChromiumVersions, an existing unmodified helper) plus a new 92-line test file covering the behavior change. No security-sensitive surface (no auth, crypto, or permissions); touches only a Chromium-release-ordering utility used by the internal roller. Verified the downstream consumer (src/chromium-handler.ts) still takes the last array entry as the roll target, consistent with the new ascending-version sort, and that tests exercise the key scenarios described in the PR.

@jkleinsc
jkleinsc merged commit c5076b3 into main Oct 15, 2026
6 checks passed
@jkleinsc
jkleinsc deleted the fix/chromium-tags-sort-by-version branch October 15, 2026 12:40
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.

3 participants