Skip to content

Let installer fixtures express executable modes (#716) - #733

Merged
MongLong0214 merged 5 commits into
mainfrom
fix-716-fixture-mode-relay
Aug 17, 2026
Merged

Let installer fixtures express executable modes (#716)#733
MongLong0214 merged 5 commits into
mainfrom
fix-716-fixture-mode-relay

Conversation

@MongLong0214

Copy link
Copy Markdown
Owner

Relays #725 so it can merge. The change and its authorship are @plutoparty1's; the only thing added here is a merge from main.

#725 sits on a fork, and after #730 landed, main carries a change to .github/workflows/demo-preserve.yml. Branch protection requires up-to-date before merge, and every route this token has to update a fork branch is refused:

refusing to allow an OAuth App to create or update workflow
`.github/workflows/demo-preserve.yml` without `workflow` scope

That is GitHub protecting workflow files from a token that was not granted the scope — correct behaviour, and not something to route around. Pushing the same branch to this repository is allowed, so it goes through here instead.

The change

wrapper() in test/installer-hosts.test.ts hard-coded chmodSync(path, 0o755), so no fixture in that suite could be non-executable — meaning no defect involving executability could be caught there at all. The missing X_OK in #720 was the instance that happened to land, not the last one that could.

It now takes a mode, and the mode-0644 shadow assertion moves beside the helper instead of being hand-built in another file. The duplicate is removed.

Verification

artifact:verify14ff6168…, unchanged by the merge: the canonical source inputs are package-lock.json, package.json, tsconfig.json and src, and this touches only test/. No rebuild was required.

#725 will be closed pointing here once this merges.

plutoparty1 and others added 3 commits August 17, 2026 14:49
The POSIX resolver regression was locked with a hand-built pair while the shared installer wrapper always chmodded every fixture 0755. That left the main fixture API unable to construct the state the regression depends on, so a future test using the helper could still produce a misleading green.

Move the shadow assertion beside the shared wrapper and let the wrapper take an explicit mode. Its default remains 0755, while the regression now asks the ordinary fixture path for 0644 and 0755 files.

Limit: test fixtures only; production resolution and spawning are unchanged
Ruled-out: keep the hand-built shadow pair | it preserves the helper blind spot the owner identified
Blast: local
Undo: easy
Certainty: firm
Record-Id: r-fixture716
Provenance: authored
Verified: tsc --noEmit clean; Windows installer suites 29 passed with the one POSIX-only executable-mode case skipped
CommitLore-Version: 2.0.0
@github-actions

github-actions Bot commented Aug 17, 2026

Copy link
Copy Markdown

CommitLore — record lint

Trailers: clean — 5 commits in origin/main..c74a63b0c162008b835c990abc8eac26528e6740
Active constraints: not read — commitlore: git log --follow accepts exactly one pathspec, so renames are not followed for 2 paths; query one path at a time to follow its rename chain (2 changed paths)

Trailer violations fail this check. Active constraints are informational — they are what the repository already decided, not a verdict on this PR.

@MongLong0214
MongLong0214 merged commit b1158ad into main Aug 17, 2026
12 checks passed
@MongLong0214
MongLong0214 deleted the fix-716-fixture-mode-relay branch August 17, 2026 09:45
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.

2 participants