Skip to content

ci(release): refuse an adcp release its companion packages can't install with - #1605

Merged
bokelley merged 1 commit into
mainfrom
bokelley/release-companion-check
Oct 25, 2026
Merged

bokelley merged 1 commit into
mainfrom
bokelley/release-companion-check

Conversation

@bokelley

Copy link
Copy Markdown
Contributor

ESA release-process feedback. 9.0.0 GA removed the PostgreSQL reporting stores from adcp before adcp-reporting-storage was on PyPI. The migration doc's pip install "adcp-reporting-storage[pg]" failed, and every Postgres reporting adopter was stuck on 9.0.0b4 until #1571 published.

Gate: scripts/check_companion_releases.py runs in release-publish.yml before an adcp build. For each companion distribution (COMPANIONS = ("adcp-reporting-storage",)) it requires a published, non-yanked release on PyPI whose adcp requirement accepts the version being released, prereleases included. Otherwise the publish stops with a message to release the companion first. Storage releases are unaffected.

Behaviour:

  • 9.0.0 with no storage on PyPI: blocked.
  • 9.1.0 with storage 0.1.0b4 (adcp>=9.0.0,<10): passes.
  • A future 10.0.0: blocked until a storage release accepts adcp 10.

Tests: tests/test_check_companion_releases.py covers missing, compatible beta, new major, prerelease floor, yanked, no adcp requirement, floor above, and newest-compatible selection; 83 pass with test_release_ci.py. Live against PyPI: 9.1.0 passes with 0.1.0b4, and 10.0.0 is refused.

🤖 Generated with Claude Code

…all with

9.0.0 moved the PostgreSQL reporting stores into adcp-reporting-storage
before that package was on PyPI, so the documented install failed and
Postgres adopters were stuck on the last beta. Before an adcp release
builds, require each companion distribution to have a published,
non-yanked release whose adcp requirement accepts the new version.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

@aao-secretariat aao-secretariat Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Ladon verdict: Approve

Approve — clean CI-gate addition with no blocking, high, or medium findings.

What I checked:

  • New CI gate (scripts/check_companion_releases.py, wired in release-publish.yml:9-14) blocks an adcp publish unless a non-yanked companion release on PyPI accepts the version being published. Logic is fail-closed on every path (404/network/5xx all block), with a 30s timeout on the single external call.
  • Reads the release-commit pyproject.toml version after the Wait step's detached checkout.
  • ci(release): is the correct semver signal for a CI-only change — no public adcp.* surface touched, so no breaking-change / migration-note requirement applies.
  • Tests cover missing/yanked/no-requirement/floor-above/prerelease-floor/newest-selection branches.

Decision path: No critical/high/medium findings (row 1 N/A). gated_paths: false (row 2 N/A). high_risk: false with no deletions (rows 3–5 N/A). No prior decision (row 6 N/A). No no-auto-approve team match (row 7 N/A). Zero medium findings (row 8 N/A). Falls through to row 9 → approve.

@bokelley
bokelley merged commit 6503398 into main Oct 25, 2026
47 checks passed
@bokelley
bokelley deleted the bokelley/release-companion-check branch October 25, 2026 17:47
bokelley added a commit that referenced this pull request Oct 26, 2026
Forward-ports main through v9.2.0 (5314faa) into next with a true merge.
Conflict: packages/adcp-reporting-storage/pyproject.toml takes main's
adcp floor (>=9.0.0) and keeps next's <11 ceiling, per RELEASING.md.
main's companion-release gate (#1605) now runs only for a publish from
main; next cuts opt-in pre-releases and the storage distribution's
adcp-10 release is cut from main at ratification.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
bokelley added a commit that referenced this pull request Oct 27, 2026
SDK 10 targets AdCP 3.3; with the signed 3.3.0-beta.0 bundle adopted, next
leaves the alpha channel. release-please-config.next.json now sets
prerelease-type: beta, the release-channel contract test and RELEASING.md
follow, and the 10.0.0-alpha.0 proposal (#1533) is superseded.

next also releases its SDK 10 companion: adcp-reporting-storage is a second
component (0.2.0-beta.N, CHANGELOG.next.md, its own release PR and publish
run), the normalizer accepts its release PR, release-publish.yml publishes
it from next, and the #1605 companion gate runs for every adcp publish on
both lines instead of being skipped on next.

Release-As: 10.0.0-beta.0

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
bokelley added a commit that referenced this pull request Oct 27, 2026
SDK 10 targets AdCP 3.3; with the signed 3.3.0-beta.0 bundle adopted, next
leaves the alpha channel. release-please-config.next.json now sets
prerelease-type: beta, the release-channel contract test and RELEASING.md
follow, and the 10.0.0-alpha.0 proposal (#1533) is superseded.

next also releases its SDK 10 companion: adcp-reporting-storage is a second
component (0.2.0-beta.N, CHANGELOG.next.md, its own release PR and publish
run), the normalizer accepts its release PR, release-publish.yml publishes
it from next, and the #1605 companion gate runs for every adcp publish on
both lines instead of being skipped on next.

Release-As: 10.0.0-beta.0

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
bokelley added a commit that referenced this pull request Oct 27, 2026
SDK 10 targets AdCP 3.3; with the signed 3.3.0-beta.0 bundle adopted, next
leaves the alpha channel. release-please-config.next.json now sets
prerelease-type: beta, the release-channel contract test and RELEASING.md
follow, and the 10.0.0-alpha.0 proposal (#1533) is superseded.

next also releases its SDK 10 companion: adcp-reporting-storage is a second
component (0.2.0-beta.N, CHANGELOG.next.md, its own release PR and publish
run), the normalizer accepts its release PR, release-publish.yml publishes
it from next, and the #1605 companion gate runs for every adcp publish on
both lines instead of being skipped on next.

Release-As: 10.0.0-beta.0

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
bokelley added a commit that referenced this pull request Oct 27, 2026
Start the SDK 10 line of adcp-reporting-storage on next: the companion the
#1605 gate requires before adcp 10.0.0-beta.0 can publish. Its adcp range
(adcp>=9.0.0,<11) admits 10.0.0b0; the changelog for this line is
CHANGELOG.next.md.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Release-As: 0.2.0-beta.0
bokelley added a commit that referenced this pull request Oct 27, 2026
SDK 10 targets AdCP 3.3; with the signed 3.3.0-beta.0 bundle adopted, next
leaves the alpha channel. release-please-config.next.json now sets
prerelease-type: beta, the release-channel contract test and RELEASING.md
follow, and the 10.0.0-alpha.0 proposal (#1533) is superseded.

next also releases its SDK 10 companion: adcp-reporting-storage is a second
component (0.2.0-beta.N, CHANGELOG.next.md, its own release PR and publish
run), the normalizer accepts its release PR, release-publish.yml publishes
it from next, and the #1605 companion gate runs for every adcp publish on
both lines instead of being skipped on next.

Release-As: 10.0.0-beta.0

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
bokelley added a commit that referenced this pull request Oct 27, 2026
SDK 10 targets AdCP 3.3; with the signed 3.3.0-beta.0 bundle adopted, next
leaves the alpha channel. release-please-config.next.json now sets
prerelease-type: beta, the release-channel contract test and RELEASING.md
follow, and the 10.0.0-alpha.0 proposal (#1533) is superseded.

next also releases its SDK 10 companion: adcp-reporting-storage is a second
component (0.2.0-beta.N, CHANGELOG.next.md, its own release PR and publish
run), the normalizer accepts its release PR, release-publish.yml publishes
it from next, and the #1605 companion gate runs for every adcp publish on
both lines instead of being skipped on next.

Release-As: 10.0.0-beta.0

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
bokelley added a commit that referenced this pull request Oct 27, 2026
SDK 10 targets AdCP 3.3; with the signed 3.3.0-beta.0 bundle adopted, next
leaves the alpha channel. release-please-config.next.json now sets
prerelease-type: beta, the release-channel contract test and RELEASING.md
follow, and the 10.0.0-alpha.0 proposal (#1533) is superseded.

next also releases its SDK 10 companion: adcp-reporting-storage is a second
component (0.2.0-beta.N, CHANGELOG.next.md, its own release PR and publish
run), the normalizer accepts its release PR, release-publish.yml publishes
it from next, and the #1605 companion gate runs for every adcp publish on
both lines instead of being skipped on next.

Release-As: 10.0.0-beta.0

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
bokelley added a commit that referenced this pull request Oct 27, 2026
SDK 10 targets AdCP 3.3; with the signed 3.3.0-beta.0 bundle adopted, next
leaves the alpha channel. release-please-config.next.json now sets
prerelease-type: beta, the release-channel contract test and RELEASING.md
follow, and the 10.0.0-alpha.0 proposal (#1533) is superseded.

next also releases its SDK 10 companion: adcp-reporting-storage is a second
component (0.2.0-beta.N, CHANGELOG.next.md, its own release PR and publish
run), the normalizer accepts its release PR, release-publish.yml publishes
it from next, and the #1605 companion gate runs for every adcp publish on
both lines instead of being skipped on next.

Release-As: 10.0.0-beta.0

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
bokelley added a commit that referenced this pull request Oct 27, 2026
SDK 10 targets AdCP 3.3; with the signed 3.3.0-beta.0 bundle adopted, next
leaves the alpha channel. release-please-config.next.json now sets
prerelease-type: beta, the release-channel contract test and RELEASING.md
follow, and the 10.0.0-alpha.0 proposal (#1533) is superseded.

next also releases its SDK 10 companion: adcp-reporting-storage is a second
component (0.2.0-beta.N, CHANGELOG.next.md, its own release PR and publish
run), the normalizer accepts its release PR, release-publish.yml publishes
it from next, and the #1605 companion gate runs for every adcp publish on
both lines instead of being skipped on next.

Release-As: 10.0.0-beta.0

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
bokelley added a commit that referenced this pull request Oct 27, 2026
SDK 10 targets AdCP 3.3; with the signed 3.3.0-beta.0 bundle adopted, next
leaves the alpha channel. release-please-config.next.json now sets
prerelease-type: beta, the release-channel contract test and RELEASING.md
follow, and the 10.0.0-alpha.0 proposal (#1533) is superseded.

next also releases its SDK 10 companion: adcp-reporting-storage is a second
component (0.2.0-beta.N, CHANGELOG.next.md, its own release PR and publish
run), the normalizer accepts its release PR, release-publish.yml publishes
it from next, and the #1605 companion gate runs for every adcp publish on
both lines instead of being skipped on next.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Release-As: 10.0.0-beta.0
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.

1 participant