You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
test_release_trace.py: ca/ca-pi 'strict advance over LAST_TAG' assertion breaks when a real release closes the gap #645
`.github/scripts/test_release_trace.py`'s `ThisRepoStillReleasesTest` class has two tests that read this repo's live state (current manifest + current published tags) and assert, unconditionally, that the target's manifest is a strict SemVer advance over its last published tag:
Both call `self.assertTrue(self.core_lane.semver_greater(next_version, self.core_lane._bare_version(last_tag)), ...)` with no escape hatch.
Why this breaks
This assertion silently encoded an assumption: this repo always has untagged work pending for `ca` and `ca-pi`. That was true only because both targets' tags had drifted far behind their manifests for weeks (the exact staleness this session's backfill campaign fixed - see #632-#644). A completed release legitimately makes `manifest == LAST_TAG`, which is not a bug - it's what "caught up" means.
`ca`'s arm currently still passes (manifest 2.12.1 > tag v2.12.0) only because a coincidental follow-up commit happened to bump it again. `ca-pi`'s arm will go red on the next PR that touches `core/` or `.github/scripts/` (the `hooks` CI job's path filter) now that `ca-pi-v0.3.1` (PR #644) matches the manifest exactly - there is no more room for a "next version" until a real payload change lands.
Related dead code found in the same test
`test_this_repo_still_releases_ca_pi_payload_exclude_actually_narrows_the_window` (line ~927) has a skip guard:
```python
if unexcluded_window == 0:
self.skipTest(...)
```
`unexcluded_window` is a `set`, not an `int` - `set() == 0` is always `False`, so this skip can never fire. It should be `if not unexcluded_window:`.
Suggested fix
Either:
Skip (not fail) when the window between `LAST_TAG` and live HEAD is empty - a completed release is not a defect - mirroring the (currently broken) skip guard already attempted in the sibling test, or
Relax the assertion to `>=` when the payload window is empty, tightening to `>` only when commits exist since the last tag.
Do not fix by editing this file from inside an unrelated release PR (#644) - it's governed prose mid-release; the fix belongs in its own PR with its own review.
Discriminator
Confirmed `ca`'s arm is currently green (2.12.1 > v2.12.0). Only `ca-pi`'s arm is at immediate risk, and it's likely to fire soon given how often `core/`/`.github/scripts/` change in this repo.
Activity
fix(release): tolerate ca-pi tag caught up to manifest in trace test
fix(ci): release-trace live assertions tolerate caught-up steady state (
fix(ci): release-trace exclude probe requires an exclusively-excluded…
feat(ca-pi): footer burn sparkline, git facts, multi-row activity (#652)
feat(ca-pi): publish @arbiterforge/ca-pi to npm on release tags (#653)