npm / npm/cli

[BUG] Un-deprecating a package returns EUSAGE error

Open
#4,824 9 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Bug Needs Triage Release 8.x
Dominant language
JavaScript
Stars
10.1k
Forks
4.7k
Avg merge
2d 2h
Merged PRs (30d)
19

Description

Is there an existing issue for this?
  • I have searched the existing issues
This issue exists in the latest npm version
  • I am using the latest npm
Current Behavior

When trying to un-deprecate certain versions of my @kipper/base module, there is an error saying there is a usage error, despite following the guidelines on the docs page:

To un-deprecate a package, specify an empty string ("") for the message argument. Note that you must use double quotes with no space between them to format an empty string.
From here

My command:

npm deprecate @kipper/base@0.2.0 ""

The output:

npm ERR! code EUSAGE
npm ERR!
npm ERR! Deprecate a version of a package
npm ERR!
npm ERR! Usage:
npm ERR! npm deprecate <pkg>[@<version>] <message>
npm ERR!
npm ERR! Options:
npm ERR! [--registry <registry>] [--otp <otp>]
npm ERR!
npm ERR! Run "npm help deprecate" for more info

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\Luna\AppData\Local\npm-cache\_logs\2022-04-28T15_31_41_080Z-debug-0.log

Full verbose log:

33 verbose stack Error: 
33 verbose stack Deprecate a version of a package
33 verbose stack
33 verbose stack Usage:
33 verbose stack npm deprecate <pkg>[@<version>] <message>
33 verbose stack
33 verbose stack Options:
33 verbose stack [--registry <registry>] [--otp <otp>]
33 verbose stack
33 verbose stack Run "npm help deprecate" for more info
33 verbose stack     at Deprecate.usageError (C:\Users\Luna\AppData\Roaming\npm\node_modules\npm\lib\base-command.js:88:26)
33 verbose stack     at Deprecate.exec (C:\Users\Luna\AppData\Roaming\npm\node_modules\npm\lib\commands\deprecate.js:37:18)
33 verbose stack     at Npm.exec (C:\Users\Luna\AppData\Roaming\npm\node_modules\npm\lib\npm.js:169:29)
33 verbose stack     at async module.exports (C:\Users\Luna\AppData\Roaming\npm\node_modules\npm\lib\cli.js:78:5)
34 verbose cwd C:\Users\Luna
35 verbose Windows_NT 10.0.19043
36 verbose node v16.13.0
37 verbose npm  v8.8.0
38 error code EUSAGE
39 error
39 error Deprecate a version of a package
39 error
39 error Usage:
39 error npm deprecate <pkg>[@<version>] <message>
39 error
39 error Options:
39 error [--registry <registry>] [--otp <otp>]
39 error
39 error Run "npm help deprecate" for more info
40 verbose exit 1
41 timing npm Completed in 49ms
42 verbose code 1
43 error A complete log of this run can be found in:
43 error     C:\Users\Luna\AppData\Local\npm-cache\_logs\2022-04-28T15_31_41_080Z-debug-0.log
Expected Behavior

The command should execute properly and un-deprecate the package.

Steps To Reproduce
  1. Login into npm using npm login
  2. Run npm deprecate PACKAGE@VERSION ""
Environment
  • npm: 8.8.0
  • Node.js: 16.13.0
  • OS Name: Windows
  • System Model Name: Custom
  • npm config:
; "builtin" config from C:\Users\Luna\AppData\Roaming\npm\node_modules\npm\npmrc

prefix = "C:\\Users\\Luna\\AppData\\Roaming\\npm"

; "global" config from C:\Users\Luna\AppData\Roaming\npm\etc\npmrc

; python = "C:\\Users\\Luna\\.windows-build-tools\\python27\\python.exe" ; overridden by user

; "user" config from C:\Users\Luna\.npmrc

@kipper:registry = "https://registry.npmjs.org/"
//registry.npmjs.org/:_authToken = (protected)
python = "C:\\Users\\Luna\\.windows-build-tools\\python27\\python.exe"
scope = "@kipper"

; node bin location = C:\Program Files\nodejs\node.exe
; node version = v16.13.0
; npm local prefix = C:\Users\Luna
; npm version = 8.8.0
; cwd = C:\Users\Luna
; HOME = C:\Users\Luna
; Run `npm config ls -l` to show all defaults.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start at lib/commands/deprecate.js, where the verbose stack identifies the failing exec path, and reproduce the command with an empty message argument. Trace how the command validates its arguments, then verify that npm deprecate PACKAGE@VERSION "" completes successfully and removes the deprecation.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, nodejs
Domain
cli
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.