Skip to content

Let the protocol tests run on a branch that declares a version - #166

Merged
frangarcj merged 1 commit into
masterfrom
next-protocol-tests-on-a-release
Aug 25, 2026
Merged

Let the protocol tests run on a branch that declares a version#166
frangarcj merged 1 commit into
masterfrom
next-protocol-tests-on-a-release

Conversation

@frangarcj

Copy link
Copy Markdown
Contributor

Tagging vitasdk-2026.08.1 turned its CI red, and every release branch and tag after it would have gone the same way.

The thirteen build jobs pass on that tree — the patch builds nine hosts. What fails is two protocol tests, both for the same reason: they assume the repository derives its version, and a release branch is precisely the thing that does not.

The version test walks real first-parent history asserting each version precedes the next under vercmp. On a release branch every commit answers with the same declared string, so the first comparison it makes is 2026.08.1 against 2026.08.1:

2026.08.1 (b8d12c7e5) does not precede 2026.08.1 (d85575026) under vercmp

It already knows how to say a walk has nothing to walk — a PR merge ref collapses the range to one commit — so a declared version becomes the second reason for the same skip. The skip no longer exit 0s: the checks below it are about declared versions, and they were being skipped on exactly the branches that have one.

The monotonicity test starts by committing a clock-skewed revision and expecting describe to refuse it. That guard only runs on the derived path:

if declared is not None:
    version = declared
else:
    check_first_parent_date(resolved)
    version = nightly_version(resolved)

so on a release branch describe takes the declared path, never checks the date, and the test sees a success where it wanted a refusal. It builds its own history in a clone and exercises the derived path throughout, so the clone now drops VERSION if the branch it came from carries one.

Neither change touches describe. The date check has nothing to say about a version a person typed, and the declared path is guarded by the previous-version gate instead.

Verified both ways: six of six on master, and six of six on next-patch-2026.08.1, where the skip says which revision declared a version rather than passing silently.


AI tools were used in preparing this PR (Claude Opus 5, Anthropic).

Tagging 2026.08.1 turned its CI red, and every release branch and tag
after it would have gone the same way. The thirteen build jobs pass on
that tree; what fails is two tests that assume the repository derives
its version, which a release branch is precisely the thing that does
not.

The version test walks real first-parent history asserting each version
precedes the next, and on a release branch every commit answers with the
same declared string. It already knows how to say a walk has nothing to
walk -- a PR merge ref collapses the range -- so a declared version
becomes the second reason. Skipping now leaves the rest of the file
running, which matters because the checks below it are about declared
versions and were being skipped on the only branches that have one.

The monotonicity test builds its own history in a clone and exercises
the derived path throughout, so the clone drops VERSION if the branch it
came from carries one, rather than assuming none does.
@frangarcj
frangarcj merged commit a75f246 into master Aug 25, 2026
13 of 19 checks passed
@frangarcj
frangarcj deleted the next-protocol-tests-on-a-release branch August 26, 2026 19:55
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