Skip to content

Conversation

jacekradko
Copy link
Member

@jacekradko jacekradko commented Sep 27, 2025

Description

Fixing how we load packages from the Verdaccio local registry by adding override to our minimum package age for @clerk/* modules. Without this setting, pnpm will refuse to install just published packages

Also updated verdaccio to latest major as there are no breaking changes

Checklist

  • pnpm test runs as expected.
  • pnpm build runs as expected.
  • (If applicable) JSDoc comments have been added or updated for any package exports
  • (If applicable) Documentation has been updated

Type of change

  • 🐛 Bug fix
  • 🌟 New feature
  • 🔨 Breaking change
  • 📖 Refactoring / dependency upgrade / documentation
  • other:

Summary by CodeRabbit

  • Chores

    • Updated development dependency Verdaccio to 6.1.6 for improved local registry stability.
    • Added workspace setting to exclude @clerk/* from minimum-release-age calculations, refining release processing.
    • Adjusted CI setup to apply the same exclusion and use multi-step package setup for Clerk packages, ensuring consistent installs when affected.
  • New Features

    • No user-facing changes in this release.

Copy link

changeset-bot bot commented Sep 27, 2025

⚠️ No Changeset found

Latest commit: d59e702

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

Copy link

vercel bot commented Sep 27, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Preview Comments Updated (UTC)
clerk-js-sandbox Ready Ready Preview Comment Sep 27, 2025 4:17am

Copy link
Contributor

coderabbitai bot commented Sep 27, 2025

Walkthrough

Updated Verdaccio devDependency to 6.1.6 in package.json. Added minimumReleaseAgeExclude: ['@clerk/*'] to pnpm-workspace.yaml. Modified CI (.github/workflows/ci.yml) to set minimum-release-age-exclude via pnpm config before installing Clerk-related packages in conditional steps.

Changes

Cohort / File(s) Summary of Changes
Dev tooling version bump
package.json
Updated devDependency: Verdaccio from ^5.33.0 to 6.1.6.
Workspace release policy config
pnpm-workspace.yaml
Added top-level key minimumReleaseAgeExclude with value ['@clerk/*'].
CI workflow: pnpm install sequence
.github/workflows/ci.yml
Replaced single-line Clerk package installs with multi-step commands that run pnpm config set minimum-release-age-exclude @clerk/* before pnpm add/install in conditional job steps; keeps a commented alternative block.

Sequence Diagram(s)

sequenceDiagram
    autonumber
    actor GH as GitHub Actions Runner
    participant Repo as Repository
    participant PNPM as pnpm
    participant Registry as Package Registry

    GH->>Repo: checkout
    GH->>PNPM: pnpm config set minimum-release-age-exclude @clerk/*   %%{bg: #E6F4EA}%%
    GH->>PNPM: pnpm install / pnpm add @clerk/backend or @clerk/clerk-js
    PNPM->>Registry: fetch packages
    Registry-->>PNPM: packages
    PNPM-->>GH: install complete
    note right of GH: Steps run only if affected== '1'
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Poem

I twitch my whiskers at the CI line,
I set a flag, then hop in single file.
Verdaccio grows a version fine,
Clerk burrows marked to rest awhile.
Thump—deploys hum, the warren smiles.

Pre-merge checks and finishing touches

❌ Failed checks (1 inconclusive)
Check name Status Explanation Resolution
Title Check ❓ Inconclusive The title “fix(repo): Address e2e failures” is too generic and does not clearly summarize the primary changes, such as updating Verdaccio to v6.1.6, adding a minimumReleaseAgeExclude key, or adjusting the CI workflow, so it fails to communicate the main scope of the pull request. Please update the title to clearly reflect the key changes, for example “fix(ci): bump Verdaccio to v6.1.6 and exclude @clerk/* in pnpm-workspace and workflows to restore e2e tests.”
✅ Passed checks (2 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
✨ Finishing touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix/e2e-failures

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

pkg-pr-new bot commented Sep 27, 2025

Open in StackBlitz

@clerk/agent-toolkit

npm i https://pkg.pr.new/@clerk/agent-toolkit@6867

@clerk/astro

npm i https://pkg.pr.new/@clerk/astro@6867

@clerk/backend

npm i https://pkg.pr.new/@clerk/backend@6867

@clerk/chrome-extension

npm i https://pkg.pr.new/@clerk/chrome-extension@6867

@clerk/clerk-js

npm i https://pkg.pr.new/@clerk/clerk-js@6867

@clerk/dev-cli

npm i https://pkg.pr.new/@clerk/dev-cli@6867

@clerk/elements

npm i https://pkg.pr.new/@clerk/elements@6867

@clerk/clerk-expo

npm i https://pkg.pr.new/@clerk/clerk-expo@6867

@clerk/expo-passkeys

npm i https://pkg.pr.new/@clerk/expo-passkeys@6867

@clerk/express

npm i https://pkg.pr.new/@clerk/express@6867

@clerk/fastify

npm i https://pkg.pr.new/@clerk/fastify@6867

@clerk/localizations

npm i https://pkg.pr.new/@clerk/localizations@6867

@clerk/nextjs

npm i https://pkg.pr.new/@clerk/nextjs@6867

@clerk/nuxt

npm i https://pkg.pr.new/@clerk/nuxt@6867

@clerk/clerk-react

npm i https://pkg.pr.new/@clerk/clerk-react@6867

@clerk/react-router

npm i https://pkg.pr.new/@clerk/react-router@6867

@clerk/remix

npm i https://pkg.pr.new/@clerk/remix@6867

@clerk/shared

npm i https://pkg.pr.new/@clerk/shared@6867

@clerk/tanstack-react-start

npm i https://pkg.pr.new/@clerk/tanstack-react-start@6867

@clerk/testing

npm i https://pkg.pr.new/@clerk/testing@6867

@clerk/themes

npm i https://pkg.pr.new/@clerk/themes@6867

@clerk/types

npm i https://pkg.pr.new/@clerk/types@6867

@clerk/upgrade

npm i https://pkg.pr.new/@clerk/upgrade@6867

@clerk/vue

npm i https://pkg.pr.new/@clerk/vue@6867

commit: d59e702

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Nitpick comments (1)
.github/workflows/ci.yml (1)

352-359: Use Node to parse package.json instead of regex.

Grep/sed against JSON is fragile—minor formatting changes or additional name keys will leave pkg_name/pkg_version empty and silently skip the tag update. We already have Node available; parsing through it keeps this step robust.

-              pkg_name=$(grep -o '"name": "[^"]*"' "$pkg_dir/package.json" | sed 's/"name": "//' | sed 's/"//')
-              pkg_version=$(grep -o '"version": "[^"]*"' "$pkg_dir/package.json" | sed 's/"version": "//' | sed 's/"//')
+              pkg_path="${pkg_dir%/}/package.json"
+              pkg_name=$(PKG_PATH="./${pkg_path}" node -pe 'const pkg=require(process.env.PKG_PATH); console.log(pkg.name ?? "");')
+              pkg_version=$(PKG_PATH="./${pkg_path}" node -pe 'const pkg=require(process.env.PKG_PATH); console.log(pkg.version ?? "");')
📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 5720787 and 889c8a0.

📒 Files selected for processing (2)
  • .github/workflows/ci.yml (1 hunks)
  • verdaccio.publish.yaml (1 hunks)
🧰 Additional context used
📓 Path-based instructions (2)
**/*.{js,jsx,ts,tsx,json,css,scss,md,yaml,yml}

📄 CodeRabbit inference engine (.cursor/rules/development.mdc)

Use Prettier for consistent code formatting

Files:

  • verdaccio.publish.yaml
.github/workflows/*.yml

📄 CodeRabbit inference engine (.cursor/rules/monorepo.mdc)

CI/CD must be configured with GitHub Actions.

Files:

  • .github/workflows/ci.yml
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (31)
  • GitHub Check: Integration Tests (react-router, chrome)
  • GitHub Check: Integration Tests (nextjs, chrome, 15)
  • GitHub Check: Integration Tests (machine, chrome)
  • GitHub Check: Integration Tests (custom, chrome)
  • GitHub Check: Integration Tests (billing, chrome)
  • GitHub Check: Integration Tests (expo-web, chrome)
  • GitHub Check: Integration Tests (nextjs, chrome, 14)
  • GitHub Check: Integration Tests (astro, chrome)
  • GitHub Check: Integration Tests (localhost, chrome)
  • GitHub Check: Integration Tests (handshake, chrome)
  • GitHub Check: Integration Tests (handshake:staging, chrome)
  • GitHub Check: Integration Tests (quickstart, chrome)
  • GitHub Check: Integration Tests (nuxt, chrome)
  • GitHub Check: Integration Tests (ap-flows, chrome)
  • GitHub Check: Integration Tests (vue, chrome)
  • GitHub Check: Integration Tests (sessions:staging, chrome)
  • GitHub Check: Integration Tests (sessions, chrome)
  • GitHub Check: Integration Tests (tanstack-react-start, chrome)
  • GitHub Check: Integration Tests (tanstack-react-router, chrome)
  • GitHub Check: Integration Tests (elements, chrome)
  • GitHub Check: Integration Tests (express, chrome)
  • GitHub Check: Integration Tests (generic, chrome)
  • GitHub Check: Publish with pkg-pr-new
  • GitHub Check: Unit Tests (22, **)
  • GitHub Check: Static analysis
  • GitHub Check: Unit Tests (18, --filter=@clerk/astro --filter=@clerk/backend --filter=@clerk/express --filter=@c...
  • GitHub Check: Formatting | Dedupe | Changeset
  • GitHub Check: semgrep/ci
  • GitHub Check: semgrep-cloud-platform/scan
  • GitHub Check: semgrep-cloud-platform/scan
  • GitHub Check: Analyze (javascript-typescript)
🔇 Additional comments (1)
verdaccio.publish.yaml (1)

12-12: LGTM for Verdaccio unpublish permissions.

This aligns with the new dist-tag workflow step and ensures Verdaccio will accept the tag updates.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 7dd1bcb and 52aa4fe.

📒 Files selected for processing (1)
  • .github/workflows/ci.yml (1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
.github/workflows/*.yml

📄 CodeRabbit inference engine (.cursor/rules/monorepo.mdc)

CI/CD must be configured with GitHub Actions.

Files:

  • .github/workflows/ci.yml
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (5)
  • GitHub Check: Formatting | Dedupe | Changeset
  • GitHub Check: semgrep/ci
  • GitHub Check: Analyze (javascript-typescript)
  • GitHub Check: semgrep-cloud-platform/scan
  • GitHub Check: semgrep-cloud-platform/scan

@jacekradko jacekradko changed the title fix: e2e failures fix(repo): Address e2e failures Sep 27, 2025
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Nitpick comments (1)
.github/workflows/ci.yml (1)

351-356: Remove dead commented block or replace with a rationale

The commented‑out .npmrc edits add noise. Either remove them or include a brief comment explaining why the CLI pnpm config set approach is preferred here (temp projects outside the workspace).

📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 7211430 and d59e702.

📒 Files selected for processing (1)
  • .github/workflows/ci.yml (1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
.github/workflows/*.yml

📄 CodeRabbit inference engine (.cursor/rules/monorepo.mdc)

CI/CD must be configured with GitHub Actions.

Files:

  • .github/workflows/ci.yml
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (31)
  • GitHub Check: Integration Tests (nextjs, chrome, 15)
  • GitHub Check: Integration Tests (nextjs, chrome, 14)
  • GitHub Check: Integration Tests (custom, chrome)
  • GitHub Check: Integration Tests (machine, chrome)
  • GitHub Check: Integration Tests (tanstack-react-router, chrome)
  • GitHub Check: Integration Tests (react-router, chrome)
  • GitHub Check: Integration Tests (billing, chrome)
  • GitHub Check: Integration Tests (astro, chrome)
  • GitHub Check: Integration Tests (handshake:staging, chrome)
  • GitHub Check: Integration Tests (nuxt, chrome)
  • GitHub Check: Integration Tests (tanstack-react-start, chrome)
  • GitHub Check: Integration Tests (vue, chrome)
  • GitHub Check: Integration Tests (expo-web, chrome)
  • GitHub Check: Integration Tests (ap-flows, chrome)
  • GitHub Check: Integration Tests (handshake, chrome)
  • GitHub Check: Integration Tests (express, chrome)
  • GitHub Check: Integration Tests (sessions, chrome)
  • GitHub Check: Integration Tests (sessions:staging, chrome)
  • GitHub Check: Integration Tests (elements, chrome)
  • GitHub Check: Integration Tests (quickstart, chrome)
  • GitHub Check: Integration Tests (generic, chrome)
  • GitHub Check: Integration Tests (localhost, chrome)
  • GitHub Check: Publish with pkg-pr-new
  • GitHub Check: Unit Tests (18, --filter=@clerk/astro --filter=@clerk/backend --filter=@clerk/express --filter=@c...
  • GitHub Check: Unit Tests (22, **)
  • GitHub Check: Static analysis
  • GitHub Check: Formatting | Dedupe | Changeset
  • GitHub Check: semgrep/ci
  • GitHub Check: Analyze (javascript-typescript)
  • GitHub Check: semgrep-cloud-platform/scan
  • GitHub Check: semgrep-cloud-platform/scan
🔇 Additional comments (2)
.github/workflows/ci.yml (2)

360-363: Prevent CI hangs and quote the glob pattern

pnpm init can prompt interactively and hang CI. Also, the unquoted @clerk/* may be expanded by the shell. Initialize non‑interactively and quote the value.

-          pnpm init
-          pnpm config set minimum-release-age-exclude @clerk/*
+          # Create a minimal package.json non‑interactively
+          npm init -y >/dev/null 2>&1 || echo '{"name":"integration-tmp","version":"0.0.0","private":true}' > package.json
+          # Ensure the pattern isn't expanded by the shell
+          pnpm config set minimum-release-age-exclude "@clerk/*"

369-372: Repeat: avoid interactive init and quote the glob

Same issues as above in the temp clerk‑js workspace. Make it non‑interactive and quote the config value.

-          mkdir clerk-js && cd clerk-js
-          pnpm init
-          pnpm config set minimum-release-age-exclude @clerk/*
+          mkdir clerk-js && cd clerk-js
+          npm init -y >/dev/null 2>&1 || echo '{"name":"clerk-js-tmp","version":"0.0.0","private":true}' > package.json
+          pnpm config set minimum-release-age-exclude "@clerk/*"

@jacekradko jacekradko enabled auto-merge (squash) September 27, 2025 04:22
@jacekradko jacekradko merged commit adcf538 into main Sep 27, 2025
47 checks passed
@jacekradko jacekradko deleted the fix/e2e-failures branch September 27, 2025 04:30
Comment on lines +351 to +355
# - name: Configure pnpm to ignore minimum release age for @clerk packages
# if: ${{ steps.task-status.outputs.affected == '1' }}
# run: |
# echo "minimum-release-age-exclude=@clerk/*" >> .npmrc
# pnpm config set minimum-release-age-exclude @clerk/*
Copy link
Member

Choose a reason for hiding this comment

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

Should be removed?

Copy link
Member Author

Choose a reason for hiding this comment

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

@jacekradko jacekradko mentioned this pull request Sep 27, 2025
9 tasks
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.

4 participants