Can't uninstall or upgrade Sentry CLI if install folder contains package.json, even if not managed by npm/yarn
Closed this issue · 2 comments
CLI Version
2.36.2
Operating System and Architecture
- macOS (arm64)
- macOS (x86_64)
- Linux (i686)
- Linux (x86_64)
- Linux (armv7)
- Linux (aarch64)
- Windows (i686)
- Windows (x86_64)
Operating System Version
macOS Sonoma 14.6.1 (23G93)
Link to reproduction repository
No response
CLI Command
./sentry-cli uninstall
Exact Reproduction Steps
Checkout your app's source code, as you would on a CI server such as Jenkins
Install sentry to the current directory using the install script hosted at https://sentry.io/get-cli/
Attempt to uninstall or upgrade sentry-cli using ./sentry-cli update
or ./sentry-cli uninstall
touch package.json
curl -sL https://sentry.io/get-cli/ | INSTALL_DIR="." SENTRY_CLI_VERSION="2.36.2" bash
./sentry-cli update
./sentry-cli uninstall
Expected Results
The upgrade or uninstall command succeeds, since sentry-cli is not mentioned anywhere in package.json.
Actual Results
Upgrade and uninstall fail with the following message:
Please use npm/yarn to update sentry-cli, using one of the following commands:
yarn upgrade @sentry/cli
yarn global upgrade @sentry/cli
npm update @sentry/cli
npm update -g @sentry/cli
This line checks for the existence of package.json, without checking if sentry-cli is actually included in the file:
sentry-cli/src/utils/system.rs
Line 43 in 1299e69
Logs
me@XXX xxx % touch package.json
me@XXX xxx % curl -sL https://sentry.io/get-cli/ | INSTALL_DIR="." SENTRY_CLI_VERSION="2.36.2" bash
This script will automatically install sentry-cli (2.36.2) for you.
Installation path: ./sentry-cli
######################################################################## 100.0%
Sucessfully installed sentry-cli 2.36.2
Done!
me@XXX xxx % ./sentry-cli update --log-level=debug
DEBUG 2024-10-01 09:50:04.045278 -05:00 sentry-cli version: 2.36.2, platform: "darwin", architecture: "arm64"
INFO 2024-10-01 09:50:04.047210 -05:00 sentry-cli was invoked with the following command line: "./sentry-cli" "update" "--log-level=debug"
This installation of sentry-cli is managed through npm/yarn
Please use npm/yarn to update sentry-cli, using one of the following commands:
yarn upgrade @sentry/cli
yarn global upgrade @sentry/cli
npm update @sentry/cli
npm update -g @sentry/cli
me@XXX xxx % ./sentry-cli uninstall --log-level=debug
DEBUG 2024-10-01 09:50:16.544956 -05:00 sentry-cli version: 2.36.2, platform: "darwin", architecture: "arm64"
INFO 2024-10-01 09:50:16.545831 -05:00 sentry-cli was invoked with the following command line: "./sentry-cli" "uninstall" "--log-level=debug"
This installation of sentry-cli is managed through npm/yarn
Please use npm/yarn to uninstall sentry-cli, using one of the following commands:
yarn remove @sentry/cli
yarn global remove @sentry/cli
npm uninstall @sentry/cli
npm uninstall --global @sentry/cli
@jasondentler thanks for reporting this bug! Probably the most reliable way to fix this would be to distribute a different binary (e.g. using the managed
feature) to npm
so that we don't have to guess at runtime how the Sentry CLI was installed
Closing in favor of #1996