fix(release): build the debug artifacts before the packaging script tests - #19
Merged
Merged
Conversation
…ests The first tagged release of 0.2.0 failed here, in phase A, on a fault this repository had already found twice and fixed once in the wrong place. `cargo test` compiles chrono-hook as a test harness and never lands the cdylib, so target/debug/chrono_hook.dll does not exist and the probe that drives a real session fails. It fails on a clean machine only - a developer box still carries one from an earlier build - so nothing local ever showed it. CI was taught to run `cargo build --workspace` first. packaging/build-dist.ps1 was not, and phase A of a release calls that script. The guard that exists for exactly this read one file. It asserted the ordering in .github/workflows/ci.yml, passed, and was sitting green in the same test binary as the failure. A guard that watches one of two doors reports on the door, not on the house - so it now walks a list of every committed file that runs the workspace tests, and names the file it is unhappy with. tools/gates.ps1 is deliberately not on that list: it lives outside the repository, so a clean clone could not read it and the test would fail for the wrong reason. Renamed with the scope it now has. Nothing is added or removed, so the Rust suite stays at 453. Measured rather than assumed, by deleting target/debug/chrono_hook.dll and running each command on its own: `cargo test` does not bring it back, and `cargo build --workspace` does. The revert probe was seen red before the fix went in, and it named packaging/build-dist.ps1 in the failure message rather than only counting. Gates: 14/14 in 198.4s, Rust 453, C# 449, harness 146 PASS / 0 FAIL on x64 and x86. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
donislawdev
deleted the
fix/release-packaging-builds-before-it-tests
branch
September 10, 2026 15:38
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The first tagged release of 0.2.0 failed in phase A, on a fault this repository
had already found twice and fixed once - in the wrong place.
What broke
cargo testcompileschrono-hookas a test harness and never lands thecdylib, so
target/debug/chrono_hook.dlldoes not exist and the probe thatdrives a real session fails:
It fails on a clean machine only - a developer box still carries one from an
earlier build - so nothing local ever showed it. CI was taught to run
cargo build --workspacefirst.packaging/build-dist.ps1was not, and phase Aof a release calls that script.
The guard was green beside the failure
The guard that exists for exactly this read one file. It asserted the ordering
in
.github/workflows/ci.yml, passed, and was sitting green in the same testbinary as the failure. A guard that watches one of two doors reports on the
door, not on the house.
It now walks a list of every committed file that runs the workspace tests and
names the file it is unhappy with.
tools/gates.ps1is deliberately not on thatlist: it lives outside the repository, so a clean clone could not read it and
the test would fail for the wrong reason. Renamed to carry the scope it now has.
Nothing is added or removed, so the Rust suite stays at 453.
Evidence
packaging/build-dist.ps1in the failure message rather than only counting.target/debug/chrono_hook.dlldeleted,cargo testdoes not bring it back andcargo build --workspacedoes.x64 and x86.
Honest limit
This removes the known cause. The release ritual has still never run to
completion, so the phase A steps after this one - attestation, opening the
draft, handing over the artifact - remain untested in anger.
🤖 Generated with Claude Code