Assert what this release changed, and say when the index pointer is behind - #19
Merged
Merged
Conversation
…ehind The closure asks whether a program depending on every published package builds and runs. openkal-musl 0.6.0 answered three defects a consumer reported as openkal-linux#13, and none of them was among the things this program asked. Three observations added, each of which was red on the previous release: a redirection the caller performed reaches the started program --- it used not to, because openkal spells inheritance as a handle of zero and dup2 rebinds the C library's table rather than the running program's stream; an uncaught exception ends on SIGABRT --- it used to reach musl's a_crash(), which on x86_64 is hlt, and be reported as a segmentation fault. That is this ecosystem's own exit path: libc++abi's terminate handler ends in abort; asking after a started program without waiting for it returns. The program it starts is itself, with an argument, rather than /bin/sh. A criterion that shelled out would be asserting something about the sandbox and would report the absence of a shell as a defect of the release. AND A PREFLIGHT, BECAUSE THE FIRST TWO RUNS OF THIS FAILED FOR A REASON THAT HAD NOTHING TO DO WITH THE RELEASE. mcpp-index publishes a content-hash artifact and a rolling pointer. A client fetches the pointer from raw.githubusercontent.com, which serves a cached copy for some minutes after a push --- so a run started right after a merge resolves the PREVIOUS artifact and reports the package that was just added as not found, while claiming the index is current and was synced zero seconds ago. Both sentences are false and the report reads as a release that failed. Removing the local index directory does not touch it, and neither does removing mcpp's own registry; both were tried. What distinguishes "not pushed" from "cached" is a route that does not go through the same cache: the pointer repository's own commit already named the new artifact while the raw URL still served the old one. That comparison is now made before an hour of building is spent on an answer about the wrong index. The mirror is an argument as well, defaulting to what a runner outside China wants; a machine inside it passes mirror=CN.
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.
tools/sandbox-closure.shis the only thing in this ecosystem that resolvespublished packages — every workflow substitutes its siblings' working trees.
openkal-musl 0.6.0 answered three defects reported as
openkal-linux#13, and
none of them was among the things the closure's program asked.
Three observations, each red on the previous release
to: openkal spells inheritance as a handle of zero, and
dup2rebinds the Clibrary's own table rather than the running program's stream.
a_crash()—hlton x86_64 — and be reported as a segmentation fault. Thatis this ecosystem's own exit path: libc++abi's terminate handler ends in
abort.⭐ The program it starts is itself, with an argument, rather than
/bin/sh.A criterion that shelled out would be asserting something about the sandbox, and
would report the absence of a shell as a defect of the release.
mcpp-index publishes a content-hash artifact and a rolling pointer. A client
fetches the pointer from
raw.githubusercontent.com, which serves a cachedcopy for some minutes after a push — so a run started right after a merge
resolves the previous artifact:
Both of those sentences are false, and the report reads as a release that failed.
I checked the whole publishing path before finding it.
Removing the local index directory does not touch it, and neither does removing
mcpp's own registry — both were tried. What distinguishes "not pushed" from
"cached" is a route that does not go through the same cache:
That comparison is now made before an hour of building is spent answering
about the wrong index. Measured: the raw host caught up five to nine minutes
after the push.
Also
The mirror is an argument, defaulting to what a runner outside China wants; a
machine inside it passes
mirror=CN.Verified
Run to completion against the published set, from a frozen copy of exactly this
script: