Repository navigation
test: CI stays the exact-pin authority for Bun while local gates run one Bun per machine - #451
Merged
Merged
Conversation
…one Bun per machine The maintainer's rule is one Bun per machine, so a local gate host runs its own Bun with the mismatch switch and its result is local evidence only. A repository gate keeps CI installing the Bun the pinned checkout names and never setting the switch.
This was referenced Oct 17, 2026
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.
What
The maintainer's rule is now one Bun per machine. Every machine runs Bun 1.4.3 in
~/.bun, while the pinned upstream (external/opencode/package.json) namesbun@1.4.2.Local gates therefore run on the machine's Bun through the existing
OPENCODE_SDK_TESTS_BUN_MISMATCH=allowswitch, and their results are local evidence only. CI stays the exact-pin authority. This PR adds a guard that keeps it so, and updates every piece of canon and every message that still told a host to put the pinned Bun first onPATH.The change
RepositoryGates/CiPinnedBunTests.Ci_Should_Never_Set_The_Bun_Mismatch_Switch: no file under.github/mentions the switch. The scanned set is asserted non-empty.Ci_Should_Install_The_Bun_The_Pinned_Checkout_Names:setup-pinned-bunkeepsbun-version-file: external/opencode/package.json.quality-gates.md: "a host the maintainer has named" becomes the one-Bun-per-machine rule. The switch is set per command and never as a default, and its result is local evidence only. CI never sets it and is the exact-pin authority. The clone-gate paragraph says jscpd installs with the machine's Bun.developing-on-windows.md: "the pinned Bun goes first onPATH" becomes "a workstation keeps one Bun and uses the switch".PinnedServerPrerequisites: the version refusal no longer says "Put bun X first on PATH", which would mean installing a second Bun. It now names the switch. The missing-install refusal drops "with the pinned bun".CloneDetector: its not-installed error and its summary say the machine's Bun, as doestools/jscpd/package.json's description.tools/anddocs/finds no "first on PATH" or "pinned Bun first" advice left.Evidence that Bun 1.4.3 behaves like the pin
These runs were made on dev-01, which has only Bun 1.4.3, with the switch on, at RT-E2 C's head
656db84ffor #442's investigation (#447):OpenCode.Sdk.Testson net11.0, run alone: 2798 of 2800. The 2 failures were environmental: the netstandard2.0 and net472 assets were not built.OpenCode.Sdk.Tests2800 of 2800 on net10.0 and on net11.0. These are the pinned-server simulation and live rows.No row behaved differently from the 1.4.2 runs.
Proof
ci.ymlturns the first row red, and it names.github\workflows\ci.yml. Replacingbun-version-filewithbun-version: 1.4.3turns the second row red. Both files were restored.FindAsync_Should_Name_Both_Versions_When_The_Bun_On_Path_Is_Not_The_Pinned_Onegains "names the switch". Against the old message,PinnedServerPrerequisitesTestsis 1 failed of 15; with the new message it is 15 of 15 on net10.0 and on net472.OpenCode.Sdk.Tools.Testsproject: 2045 of 2045.verify-clones: 0 new. Slopwatch: 0. Format: clean.eb004b16(master3f90dc7e): all 8 steps, and 10,514 tests with 0 failed.Follow-ups
C:\wt\.tools\bun-1.4.2. That happens after this PR merges, outside this repository.Need help on this PR? Tag
@codesmith-botwith what you need.