Skip to content

ci(repo): Deprecate superseded packages after Core 2 releases - #9863

Open
manovotny wants to merge 2 commits into
release/core-2from
manovotny/deprecate-superseded-core-2-packages
Open

manovotny wants to merge 2 commits into
release/core-2from
manovotny/deprecate-superseded-core-2-packages

Conversation

@manovotny

@manovotny manovotny commented Sep 22, 2026

Copy link
Copy Markdown
Contributor

Description

Every Core 2 backport publishes new @clerk/clerk-react, @clerk/types, and @clerk/clerk-expo versions that nobody deprecates. npm skips deprecated versions when an undeprecated one exists, so a bare npm install @clerk/clerk-react resolves to the newest backport and prints no warning. The 2026-09-18 release (#9832) reopened this for all three packages after the one-off npm deprecate runs from DOCS-12163 had closed it.

This adds a last step to the Core 2 release job that deprecates the newly published versions of those three packages, reusing each package's existing registry message. It runs after the Slack notification so a failure can't hide the release, still runs if that notification fails, and fails the job if the message doesn't stick. Auth goes through secrets.NPM_TOKEN in a temp .npmrc, so the trusted-publishing changeset publish step is unchanged.

To exercise the script without touching the registry: DRY_RUN=1 node scripts/deprecate-superseded.mjs '[{"name":"@clerk/clerk-react","version":"5.61.10"}]'.

Two things this doesn't cover: snapshot and canary prereleases from release-snapshot.yml (bare installs never resolve to them), and confirming NPM_TOKEN has write access on these three packages. Whoever owns that secret would know.

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: CI

🤖 Generated with Claude Code

Every Core 2 backport publishes new @clerk/clerk-react, @clerk/types and
@clerk/clerk-expo versions that npm resolves to on a bare install with no
deprecation warning, because npm skips deprecated versions when an
undeprecated one exists. Deprecate the just-published versions of those
packages as the last step of the release job so the warning stays in place.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@vercel

vercel Bot commented Sep 22, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated
clerk-js-sandbox Ready Ready Preview Sep 22, 2026 5:32pm UTC
swingset Error Error Sep 22, 2026 5:32pm UTC

Request Review

@coderabbitai

coderabbitai Bot commented Sep 22, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository: clerk/javascript/.coderabbit.yaml

Review profile: CHILL

Plan: Team

Run ID: b7d95bc9-4fde-4ee6-9498-725427d3c27a

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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

@changeset-bot

changeset-bot Bot commented Sep 22, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 6edc6c9

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 0 packages

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

Not sure what this means? Click here to learn what changesets are.

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

An `if` without a status function gets an implicit `success()`, so a
failed Slack notification would have skipped deprecating the versions
that were already published.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

This branch had an error being deployed

1 failed and 1 active deployments
Preview – clerk-js-sandbox 6edc6c95 Deployed Sep 22, 2026 by vercel[bot]
Preview – swingset 6edc6c95 Deployed Sep 22, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant