Repository navigation
fix: Let the weekly bump write its own lockfile - #78
Conversation
The scheduled Backstage bump has failed all ten runs since 6 July. Yarn turns on enableImmutableInstalls whenever CI is set, and versions:bump runs its own yarn install to resolve the new versions. That install exists to rewrite the lockfile, so Yarn refuses it and the job dies before it can open a pull request. The peer-dependency warnings in the log are not the cause. The same six warnings appear in the immutable install one step earlier, which exits zero, and the bump succeeds with them still present once immutable mode is off. Key changes: - Scope immutable installs off to the bump step alone, which is the one step whose job is to rewrite the lockfile - Add a verification install after the bump so an inconsistent lockfile fails the job rather than reaching a pull request - Reuse the shared setup action so the checked-in lockfile is verified by the same command in every workflow Neither install is relaxed. The lockfile is checked immutably before the bump and again after it. Claude-Session: https://claude.ai/code/session_01QV419URMnKWckY8s6j4Dwi
|
Run against a clean clone of Reproducing the current job, the failure lands in the second step and matches the scheduled run of 7 September line for line. The peer-dependency warnings are not what fails it. All six of them, the The discriminating test holds everything else fixed and changes only that setting. Same tree, same warnings, same command. The full sequence this change installs, run end to end from a clean tree. The third step is the one that matters for the concern about trading a visible failure for a silent one. It runs immutably against the lockfile the bump just wrote and accepts it unchanged, so the resulting pull request cannot carry a lockfile that a clean install would reject. Nothing is relaxed for the committed lockfile, which is still verified immutably before the bump. What the bump produced on this run, for scale: Backstage 1.52.0 to 1.54.7, touching
One unrelated observation, recorded rather than fixed here. A plain install reformats a config-schema block in the app workspace manifest, so any install leaves that file dirty. It fails nothing and it rides along in the bump diff. |
Summary
The weekly job that moves the portal onto each new Backstage release has failed every run since July, so no update has reached review in two months.
Yarn refuses to rewrite a lockfile whenever it detects a build environment, and the update step has to rewrite one to install the new versions.
This turns that restriction off for that single step and adds a fresh check afterwards, so the job finishes while an inconsistent lockfile still fails it rather than reaching a pull request.
Test plan
Fixes #77
https://claude.ai/code/session_01QV419URMnKWckY8s6j4Dwi