Repository navigation
fix: track stable yarn, with the lockfile on the same version - #5
Merged
Merged
Conversation
#4 unblocked releases by pinning CI to the version packageManager names. This takes the other route deliberately: keep tracking the newest stable Yarn, and move packageManager and the lockfile onto it so the two agree. The failure was never that stable moved — it was that only CI followed. package.json said 4.13.0 and the lockfile was the v8 format 4.13 writes, while `yarn set version stable` had reached 4.18.0, which rewrites it to v10. Immutable installs refused, and nothing released for four months. Both are now 4.18.0. The lockfile diff is five lines — the metadata version and two resolve patch hashes. No dependency resolution changed. Yarn 4.18 also wrote three settings into .yarnrc.yml to preserve existing behaviour across its new defaults. enableScripts is required here, as esbuild, @parcel/watcher and fontawesome all rebuild on install. npmMinimalAgeGate and approvedGitRepositories are the loosened ones and are worth revisiting separately. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Contributor
Author
|
🎉 This PR is included in version 1.2.1 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
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.
Follow-up to #4, taking the route you asked for: keep tracking stable Yarn, and move
packageManagerand the lockfile onto it so the two agree.#4 unblocked releases (thanks —
v1.2.0shipped, which carried #3 out with it) by pinning CI to the versionpackageManagernames. That works, but it means the project sits on 4.13.0 indefinitely. This does the opposite: restoresyarn set version stableand brings everything else up to meet it.The failure was never that stable moved — it was that only CI followed
package.jsonsaid4.13.0and the lockfile was the v8 format 4.13 writes, whileyarn set version stablehad reached 4.18.0, which rewrites it to v10 with differentresolvepatch hashes. Immutable installs refused, and nothing released for four months.Both are
4.18.0now.Diff
The lockfile change is 5 lines — the metadata version and two
resolvepatch hashes/checksums. Nothing was upgraded, added, or removed; no dependency resolution changed.One thing worth a second look
Yarn 4.18 changed some defaults and wrote three settings into
.yarnrc.ymlto preserve this project's existing behaviour:enableScriptsis genuinely required — esbuild,@parcel/watcherand fontawesome all rebuild on install. The other two loosen new supply-chain protections (npmMinimalAgeGateblocks very recently published packages;approvedGitRepositoriesgates git dependencies). Committed as generated so this PR changes only what it claims to, but they are worth tightening deliberately rather than inheriting silently.The tradeoff, stated plainly
A floating toolchain drifts again whenever Yarn changes the lockfile format — this PR fixes today's mismatch, it does not prevent the next one. If you want stable-tracking and immunity, the one-line version is
yarn install --no-immutable, which lets Yarn rewrite the lockfile in-process instead of failing. That trades away lockfile enforcement in CI. Happy to add it if you want it; not assuming.Verified locally
CI=true yarn install --immutableunder 4.18.0: exit 0, lockfile untouchedyarn build: cleanyarn set version stableresolves to 4.18.0 today, matching what is committed🤖 Generated with Claude Code