Skip to content

Release v4 as the Sentry CLI, replacing sentry-cli #1965

Open

Description

@sentry-junior

Tracking issue for cutting sentry v4 as the Sentry CLI. Every v3 sentry-cli distribution channel moves to v4 rather than staying frozen, so nobody gets stranded on v3.

Decided scope

Each legacy channel serves v4 after the cutover:

  • npm @sentry/cli publishes the same package as sentry. The @sentry/cli-<platform> optional-dependency packages need a decision too: retire or keep them. Current consumers use the v3 SentryCli JS class, and v4 drops it (migration guide). These consumers are @sentry/bundler-plugins, @sentry/nextjs, action-release, and the wizard. Their caret ranges protect them until they opt in.
  • curl -sL https://sentry.io/get-cli/ | bash serves the v4 installer. It lives in getsentry/sentry src/sentry/web/frontend/cli.py. SENTRY_CLI_VERSION, INSTALL_DIR / INSTALL_PATH, and | sh keep working.
  • sentry.io/get-cli/<platform>/<arch>/ and downloads.sentry-cdn.com/sentry-cli/latest/ serve v4 binaries. v4 asset names (sentry-linux-x64) differ from v3 (sentry-cli-Linux-x86_64), so this needs a name mapping.
  • PyPI sentry-cli (plus sentry-pypi) ships wheels wrapping the v4 binary.
  • Homebrew sentry-cli and Docker Hub getsentry/sentry-cli move to v4. The legacy getsentry/sentry-cli .craft.yml publishes both.
  • Release registry: the CLI already publishes to apps/sentry. v3 sentry-cli update and its update nagger read apps/sentry-cli/latest, so decide how that app reaches v4.
  • sentry-cli command name: installs keep working for scripts that call sentry-cli.
  • Sentry-hosted binaries: v4 assets currently only live on GitHub Releases. The legacy CLI uploads to the sentry-sdk-assets GCS bucket (downloads.sentry-cdn.com) through a craft gcs target.
  • Codemod: publish @getsentry/cli-v3-to-v4 (Publish sentry-v3-to-v4 codemod to the Codemod registry #1481). feat(cli): Port the v3-to-v4 codemod from the archived getsentry/cli as cli3to4 #1968 ports it from the archived getsentry/cli into packages/cli-codemod-v3-to-v4 and publishes it with Codemod's OIDC action. Before the first publish, the @getsentry scope must be verified against this repo (.codemod/verification).

Platform gaps vs v3

v4 builds darwin-arm64, darwin-x64, linux-arm64, linux-x64, and windows-x64 (packages/cli/script/build.ts). v3 also shipped linux-armv7, linux-i686, win32-i686, and win32-arm64, and it ran on musl.

  • musl / Alpine: the installer currently refuses musl (packages/cli/install, detect_musl).
    • x64: nodejs.org/dist ships an official linux-x64-musl build as of v26.13.0. A fossilize 0.10.1 SEA built with platform linux-x64-musl runs on alpine:3 once libstdc++ and libatomic are installed. Without them it fails with relocation errors.
    • arm64: musl is only on unofficial-builds.nodejs.org, and fossilize hardcodes https://nodejs.org/dist.
  • win32-arm64: an official Node build exists (win-arm64).
  • linux-armv7 and i686 have no official Node v26 LTS builds.

Tracked work

Issues and PRs that block or belong to the v4 cutover:

Related: #1357 tracks the broader CLI + MCP unification after the toolkit merge.

via @BYK.

--

View Session [Sentry]

Activity

  1. linear-code commented on Nov 4, 2026

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

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions