fix: restore bun as the only package manager - #153
Merged
Conversation
e10e7c8 ("landing page bump") ran yarn in the repo root alongside its intended change, which committed a 5959-line yarn.lock and stamped `packageManager: yarn@1.22.22` into package.json. Nothing in the repo uses yarn: CI installs with `bun install --frozen-lockfile`, the tracked lockfile is bun.lock, and that field was the only reference to yarn anywhere outside the stray lockfile itself. Beyond the two lockfiles drifting apart on their own, this broke Dependabot. Declaring yarn meant it could not resolve bun.lock, so every bun PR edited package.json without regenerating the lockfile and died at install in eight seconds with "lockfile had changes, but lockfile is frozen". The same missing resolution disabled the semver-major ignore: dependabot-core's `update_type_for_dependency` returns nil unless both `previous_version` and `version` are present, and without a resolved lockfile version there is nothing to classify, so `version-update:semver-major` matched nothing. That is why six majors came through the bun entry while all 38 Cargo PRs, which resolve against Cargo.lock normally, classified correctly and leaked none. Removes the field rather than setting `bun@1.3.14`, restoring the state that worked before e10e7c8 instead of introducing an unverified value. `@testing-library/dom`, the legitimate part of e10e7c8, is untouched.
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 happened
e10e7c8("landing page bump", 2026-08-08) was a 10-line edit tolanding/index.html. It also ranyarnin the repo root:That committed a 5,959-line
yarn.lockand stamped"packageManager": "yarn@1.22.22+sha512..."intopackage.json.Nothing in this repo uses yarn. CI installs with
bun install --frozen-lockfile, the tracked lockfile isbun.lock, and that field was the only reference to yarn anywhere outside the stray lockfile.Why it matters beyond hygiene
Two JS lockfiles at root drifting independently is its own bug source. But it also broke Dependabot, which is what led me here.
Declaring yarn meant Dependabot couldn't resolve
bun.lock. Every bun PR editedpackage.jsonwithout regenerating the lockfile and died at install in 8 seconds:All six were dead on arrival — #104, #106, #109, #113, #122, #146.
The same missing resolution silently disabled the semver-major ignore. From
dependabot-core'supdate_type_for_dependency:With no resolved lockfile version there is nothing to classify, so
version-update:semver-majormatched nothing and the ignore no-opped. That's why six majors came through the bun entry while all 38 Cargo PRs — which resolve againstCargo.locknormally — classified correctly and leaked zero.One cause, both symptoms, with a clean control group.
The change
yarn.lockpackageManagerfieldRemoving rather than setting
bun@1.3.14: this restores the state that demonstrably worked beforee10e7c8instead of introducing a value I can't verify.@testing-library/dom, the legitimate part of that commit, is untouched.Verification
Run locally, not inferred from CI:
bun install --frozen-lockfileChecked 971 installs across 1059 packages (no changes)bun run lintbun run format:checkbun run typecheckbun run testbun run buildno changeson the frozen install is the important one:bun.lockwas already fully consistent withpackage.json, so nothing depended on yarn.Follow-up
#151 disabled bun version updates (
open-pull-requests-limit: 0) as a workaround, on the assumption the ignore failure was a Dependabot-side defect. It wasn't. Once a run confirms the ignore classifies correctly again, that can go back to3and JS updates resume properly.I'd leave #151 in place until a live run proves it rather than reverting on theory — the mechanism is well-corroborated but untested end to end.