Pin the machine at main, not at a branch that has been merged away - #82
Merged
Conversation
go.mod named 4a006f3, a commit that only ever existed on the branch of spin-stack/spin-machine#2. It was cherry-picked onto main and merged as 58d404e, so the pin resolved to a commit that is not in the history of anything. There is no tag to move to and there will not be one: spin-machine is versioned CalVer, and `v20260908.01` is not valid semver, so the module system resolves it to a pseudo-version of the commit it points at anyway. A pseudo-version off main is what a pin here looks like, and go.sum is what makes it exact. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019GHRRFvbnZi5q3KSTvyW5a
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
aledbf
added a commit
that referenced
this pull request
Sep 8, 2026
The proof the unit tests cannot give. They drive qemu-img and assert on what it reports; this boots the pinned kernel on the disk this package prepares, over the release's real rootfs.qcow2, and reads back two lines the kernel printed: that it mounted an ext4 root from vda, and that PID 1 was executed from that filesystem. Then it hashes the base image again. The second half is the one worth having. A guest that boots proves the overlay resolves to its backing file; the base being byte-for-byte identical afterwards proves the sharing is safe, and that is the property every other VM on the host depends on. Its failure has no symptom at the time — the overlays go on working until one of them reads a cluster that moved. It asks the kernel and not the userland. `mount` was the first assertion and it failed, because a guest with no initramfs has no /proc and mount cannot read a table it has no access to. That reads exactly like a broken chain. Proven able to fail: with the base pointed one character away, QEMU refuses with "Could not open backing file" and the test goes red. The release's base image is fetched now — it was skipped while nothing here booted from it — and installed 0444, which is the one place in that script where the mode is doing work rather than describing. And the tarball pin moves to v20260908.02, which is where it was meant to be: the commit that did it was on the branch of #82 and did not survive the merge. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019GHRRFvbnZi5q3KSTvyW5a
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.
go.mod named
4a006f3, a commit that only ever existed on the branch of spin-stack/spin-machine#2. It was cherry-picked onto main and merged as58d404e, so the pin resolved to a commit that is not in the history of anything.There is no tag to move to, and there will not be one. spin-machine is versioned CalVer, and
v20260908.01is not valid semver — the module system resolves it to a pseudo-version of the commit it points at anyway:So a pseudo-version off main is what a pin here looks like, and
go.sumis what makes it exact. I said in #81 that this would move to a tagged release; that was wrong about this repository's versioning.Verified:
task lint,go test ./...,go vet -tags=integration,e2e ./....🤖 Generated with Claude Code
https://claude.ai/code/session_019GHRRFvbnZi5q3KSTvyW5a