Skip to content

fix(ci): keep release dependencies and lockfile in sync - #141

Merged
Donny/강동윤 (kdy1) merged 1 commit into
mainfrom
kdy1/fix-release-lockfile
Oct 28, 2026
Merged

Donny/강동윤 (kdy1) merged 1 commit into
mainfrom
kdy1/fix-release-lockfile

Conversation

@kdy1

Copy link
Copy Markdown
Member

The publish job stops at pnpm i with ERR_PNPM_OUTDATED_LOCKFILE after the release PR updates packages/cli/package.json. Its self dev dependency is @swc/cli@0.8.2, while the lockfile still resolves 0.8.0. Version 0.8.2 is not yet on npm, so resolving that dependency would also block its own release.

Use workspace:* for the CLI self dev dependency and regenerate the lockfile. This links the local CLI and removes the old registry CLI dependency tree. Update the Changesets version command to refresh the lockfile after version changes so future release PRs include it. The initial CI install still uses the frozen lockfile.

Failed job: https://github.com/swc-project/pkgs/actions/runs/40671449316/job/122758955853

Validation of the changes before commit c409624:

  • CI=1 pnpm install --frozen-lockfile --ignore-scripts passed with pnpm 10.11.0.
  • Built @swc/jest, then ran pnpm --filter @swc/cli test --runInBand: all 7 suites and 63 tests passed. The first test attempt could not start because the local Jest transformer was not built.
  • In a temporary copy with a patch changeset, ran the new version command, then CI=1 pnpm install --lockfile-only --frozen-lockfile --ignore-scripts. The CLI advanced to 0.8.4, retained workspace:*, and the lockfile check passed.
  • actionlint .github/workflows/publish.yml and git diff --check passed.

No packages were published during local validation. The authenticated publish workflow still requires a GitHub Actions run after merge.

@changeset-bot

changeset-bot Bot commented Oct 28, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: c409624

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 28, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-28T10:25:54.837328Z c409624 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@kdy1
Donny/강동윤 (kdy1) merged commit b81b750 into main Oct 28, 2026
13 checks passed
@kdy1
Donny/강동윤 (kdy1) deleted the kdy1/fix-release-lockfile branch October 28, 2026 10:25

@chatgpt-codex-connector chatgpt-codex-connector Bot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: c409624d7d

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "Codex (@codex) review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "Codex (@codex) address that feedback".

uses: changesets/action@v1
with:
github-token: ${{ github.token }}
version: pnpm exec changeset version && pnpm install --lockfile-only --no-frozen-lockfile

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Run the compound version command through a shell

When this workflow processes a nonempty changeset, version is not executed as a shell expression: the Changesets action implementation invokes await exec(script, undefined, { cwd, env }), and the exec implementation parses the string into an executable and arguments. Consequently, && pnpm install --lockfile-only --no-frozen-lockfile becomes arguments to changeset version rather than a second command, so the lockfile refresh never runs and release PRs can still leave the frozen install at the start of this workflow broken. Put both commands in a package script and reference that script here, or explicitly invoke a shell.

Useful? React with 👍 / 👎.

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

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant