Skip to content

fix(ci): keep lockfile maintenance from bumping manifest ranges - #73

Merged
altaywtf merged 1 commit into
mainfrom
ci/lockfile-maintenance-no-save
Aug 20, 2026
Merged

fix(ci): keep lockfile maintenance from bumping manifest ranges#73
altaywtf merged 1 commit into
mainfrom
ci/lockfile-maintenance-no-save

Conversation

@altaywtf

Copy link
Copy Markdown
Member

Summary

The first end-to-end lockfile-maintenance run produced a PR that fails frozen installs (taizn#64, run 32329772704): specifiers in the lockfile don't match specifiers in package.json.

Mechanism (reproduced on pristine taizn manifests): untargeted pnpm update --lockfile-only -r on pnpm 11 rewrites package.json ranges and the lockfile's specifier records for direct deps with newer in-range versions; the workflow committed only pnpm-lock.yaml, guaranteeing the mismatch.

Fix: add --no-save — it keeps the manifest and specifier records at their committed values while still refreshing direct and transitive resolutions in range. Proven on the same scratch: ws 8.21.3, @types/node 26.2.0, postcss 8.5.26 resolved with specifiers unchanged (^8.21.0 / ^26.1.0), and pnpm install --frozen-lockfile passes. The untargeted --no-save form is not affected by the pnpm/pnpm#12744 no-op (that bug is specific to targeted pkg@version specs).

Also adds a tripwire step failing the run if anything beyond pnpm-lock.yaml is dirty after the refresh.

Verification

  • Scratch proof above; actionlint clean; verify runs on this PR.
  • Identical delta applied across all 8 repos.

Notes

Refs putdotio/putio-frontend#29

pnpm 11 update --lockfile-only also rewrites package.json ranges and
the lockfile's specifier records; committing only the lockfile shipped
a specifier mismatch that fails frozen installs (taizn#64, run
32329772704). --no-save keeps the manifest and specifier records
intact while still refreshing direct and transitive resolutions in
range, proven on taizn manifests (ws 8.21.3, @types/node 26.2.0,
postcss 8.5.26 with specifiers unchanged; frozen install passes).
Also assert the refresh touches nothing but pnpm-lock.yaml.

Refs putdotio/putio-frontend#29

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Copilot AI lite review requested due to automatic review settings August 20, 2026 03:59

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adjusts the lockfile-maintenance GitHub Action to refresh pnpm-lock.yaml on pnpm 11 without accidentally rewriting manifest ranges/specifiers, preventing --frozen-lockfile install failures after a lockfile-only commit.

Changes:

  • Add --no-save to pnpm update --lockfile-only -r to keep package.json and lockfile specifier records stable.
  • Add a “tripwire” step intended to fail the workflow if files other than pnpm-lock.yaml are modified during the refresh.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread .github/workflows/lockfile-maintenance.yml
@altaywtf
altaywtf merged commit 9067ffd into main Aug 20, 2026
7 checks passed
@altaywtf
altaywtf deleted the ci/lockfile-maintenance-no-save branch August 20, 2026 04:04
putio-releaser Bot added a commit that referenced this pull request Aug 20, 2026
## [1.6.4](v1.6.3...v1.6.4) (2026-08-20)

### Bug Fixes

* **ci:** keep lockfile maintenance from bumping manifest ranges ([#73](#73)) ([9067ffd](9067ffd)), closes [taizn#64](putdotio/taizn#64) [putdotio/putio-frontend#29](putdotio/putio-frontend#29)
@putio-releaser

Copy link
Copy Markdown
Contributor

🎉 This PR is included in version 1.6.4 🎉

The release is available on:

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants