npm unpublish doesn't work for some packages #330

Open
opened 2023-04-14 20:22:54 +00:00 by dboreham · 4 comments
Contributor

This appears to be a Gitea bug, probably to do with escaping. It means that our --force-rebuild option fails on some of our packages. Known affected packages : crypto, react-ux.

$ npm unpublish --force --verbose @lirewine/crypto@1.0.0-beta.2
npm verb cli /home/david/.nvm/versions/node/v18.14.2/bin/node /home/david/.nvm/versions/node/v18.14.2/bin/npm
npm info using npm@9.6.4
npm info using node@v18.14.2
npm verb title npm unpublish @lirewine/crypto@1.0.0-beta.2
npm verb argv "unpublish" "--force" "--loglevel" "verbose" "@lirewine/crypto@1.0.0-beta.2"
npm verb logfile logs-max:10 dir:/home/david/.npm/_logs/2023-04-14T20_21_25_040Z-
npm verb logfile /home/david/.npm/_logs/2023-04-14T20_21_25_040Z-debug-0.log
npm WARN using --force Recommended protections disabled.
npm http fetch GET 200 http://gitea.local:3000/api/packages/cerc-io/npm/@lirewine%2fcrypto?write=true 47ms (cache updated)
npm http fetch GET 200 http://gitea.local:3000/api/packages/cerc-io/npm/@lirewine%2fcrypto?write=true 27ms (cache updated)
npm http fetch PUT 200 http://gitea.local:3000/api/packages/cerc-io/npm/@lirewine%2fcrypto/-rev/undefined 14ms
npm http fetch GET 200 http://gitea.local:3000/api/packages/cerc-io/npm/@lirewine%2fcrypto?write=true 26ms (cache updated)
npm http fetch DELETE 404 http://gitea.local:3000/api/packages/cerc-io/npm/api/packages/cerc-io/npm/%40lirewine%2Fcrypto/-/1.0.0-beta.2/crypto-1.0.0-beta.2.tgz/-rev/undefined 13ms
- @lirewine/crypto@1.0.0-beta.2
npm verb exit 0
npm info ok
2023/04/14 14:21:16 [6439b5bc] router: completed GET /api/packages/cerc-io/npm/@lirewine%2fcrypto?write=true for 192.168.32.1:46778, 200 OK in 18.5ms @ npm/npm.go:50(npm.PackageMetadata)
2023/04/14 14:21:16 [6439b5bc-2] router: completed GET /api/packages/cerc-io/npm/@lirewine%2fcrypto?write=true for 192.168.32.1:46778, 200 OK in 17.7ms @ npm/npm.go:50(npm.PackageMetadata)
2023/04/14 14:21:16 [6439b5bc-3] router: completed PUT /api/packages/cerc-io/npm/@lirewine%2fcrypto/-rev/undefined for 192.168.32.1:46778, 200 OK in 12.0ms @ npm/npm.go:225(npm.DeletePreview)
2023/04/14 14:21:16 [6439b5bc-4] router: completed GET /api/packages/cerc-io/npm/@lirewine%2fcrypto?write=true for 192.168.32.1:46778, 200 OK in 18.4ms @ npm/npm.go:50(npm.PackageMetadata)
2023/04/14 14:21:16 [6439b5bc-5] router: completed DELETE /api/packages/cerc-io/npm/api/packages/cerc-io/npm/%40lirewine%2Fcrypto/-/1.0.0-beta.2/crypto-1.0.0-beta.2.tgz/-rev/undefined for 192.168.32.1:46778, 404 Not Found in 10.4ms @ packages/api.go:52(packages.verifyAuth)
This appears to be a Gitea bug, probably to do with escaping. It means that our `--force-rebuild` option fails on some of our packages. Known affected packages : crypto, react-ux. ``` $ npm unpublish --force --verbose @lirewine/crypto@1.0.0-beta.2 npm verb cli /home/david/.nvm/versions/node/v18.14.2/bin/node /home/david/.nvm/versions/node/v18.14.2/bin/npm npm info using npm@9.6.4 npm info using node@v18.14.2 npm verb title npm unpublish @lirewine/crypto@1.0.0-beta.2 npm verb argv "unpublish" "--force" "--loglevel" "verbose" "@lirewine/crypto@1.0.0-beta.2" npm verb logfile logs-max:10 dir:/home/david/.npm/_logs/2023-04-14T20_21_25_040Z- npm verb logfile /home/david/.npm/_logs/2023-04-14T20_21_25_040Z-debug-0.log npm WARN using --force Recommended protections disabled. npm http fetch GET 200 http://gitea.local:3000/api/packages/cerc-io/npm/@lirewine%2fcrypto?write=true 47ms (cache updated) npm http fetch GET 200 http://gitea.local:3000/api/packages/cerc-io/npm/@lirewine%2fcrypto?write=true 27ms (cache updated) npm http fetch PUT 200 http://gitea.local:3000/api/packages/cerc-io/npm/@lirewine%2fcrypto/-rev/undefined 14ms npm http fetch GET 200 http://gitea.local:3000/api/packages/cerc-io/npm/@lirewine%2fcrypto?write=true 26ms (cache updated) npm http fetch DELETE 404 http://gitea.local:3000/api/packages/cerc-io/npm/api/packages/cerc-io/npm/%40lirewine%2Fcrypto/-/1.0.0-beta.2/crypto-1.0.0-beta.2.tgz/-rev/undefined 13ms - @lirewine/crypto@1.0.0-beta.2 npm verb exit 0 npm info ok ``` ``` 2023/04/14 14:21:16 [6439b5bc] router: completed GET /api/packages/cerc-io/npm/@lirewine%2fcrypto?write=true for 192.168.32.1:46778, 200 OK in 18.5ms @ npm/npm.go:50(npm.PackageMetadata) 2023/04/14 14:21:16 [6439b5bc-2] router: completed GET /api/packages/cerc-io/npm/@lirewine%2fcrypto?write=true for 192.168.32.1:46778, 200 OK in 17.7ms @ npm/npm.go:50(npm.PackageMetadata) 2023/04/14 14:21:16 [6439b5bc-3] router: completed PUT /api/packages/cerc-io/npm/@lirewine%2fcrypto/-rev/undefined for 192.168.32.1:46778, 200 OK in 12.0ms @ npm/npm.go:225(npm.DeletePreview) 2023/04/14 14:21:16 [6439b5bc-4] router: completed GET /api/packages/cerc-io/npm/@lirewine%2fcrypto?write=true for 192.168.32.1:46778, 200 OK in 18.4ms @ npm/npm.go:50(npm.PackageMetadata) 2023/04/14 14:21:16 [6439b5bc-5] router: completed DELETE /api/packages/cerc-io/npm/api/packages/cerc-io/npm/%40lirewine%2Fcrypto/-/1.0.0-beta.2/crypto-1.0.0-beta.2.tgz/-rev/undefined for 192.168.32.1:46778, 404 Not Found in 10.4ms @ packages/api.go:52(packages.verifyAuth) ```
Author
Contributor

Here's one that works:

$ npm unpublish --force --verbose @lirewine/debug@1.0.0-beta.78
npm verb cli /home/david/.nvm/versions/node/v18.14.2/bin/node /home/david/.nvm/versions/node/v18.14.2/bin/npm
npm info using npm@9.6.4
npm info using node@v18.14.2
npm verb title npm unpublish @lirewine/debug@1.0.0-beta.78
npm verb argv "unpublish" "--force" "--loglevel" "verbose" "@lirewine/debug@1.0.0-beta.78"
npm verb logfile logs-max:10 dir:/home/david/.npm/_logs/2023-04-14T20_29_04_740Z-
npm verb logfile /home/david/.npm/_logs/2023-04-14T20_29_04_740Z-debug-0.log
npm WARN using --force Recommended protections disabled.
npm http fetch GET 200 http://gitea.local:3000/api/packages/cerc-io/npm/@lirewine%2fdebug?write=true 42ms (cache updated)
npm http fetch GET 200 http://gitea.local:3000/api/packages/cerc-io/npm/@lirewine%2fdebug?write=true 22ms (cache updated)
npm http fetch DELETE 200 http://gitea.local:3000/api/packages/cerc-io/npm/@lirewine%2fdebug/-rev/undefined 23ms
- @lirewine/debug@1.0.0-beta.78
npm verb exit 0
npm info ok
2023/04/14 14:23:28 [6439b640] router: completed GET /api/packages/cerc-io/npm/@lirewine%2fdebug?write=true for 192.168.32.1:36038, 200 OK in 16.4ms @ npm/npm.go:50(npm.PackageMetadata)
2023/04/14 14:23:28 [6439b640-2] router: completed GET /api/packages/cerc-io/npm/@lirewine%2fdebug?write=true for 192.168.32.1:36038, 200 OK in 15.8ms @ npm/npm.go:50(npm.PackageMetadata)
2023/04/14 14:23:28 [6439b640-3] router: completed DELETE /api/packages/cerc-io/npm/@lirewine%2fdebug/-rev/undefined for 192.168.32.1:36038, 200 OK in 21.0ms @ npm/npm.go:256(npm.DeletePackage)
Here's one that works: ``` $ npm unpublish --force --verbose @lirewine/debug@1.0.0-beta.78 npm verb cli /home/david/.nvm/versions/node/v18.14.2/bin/node /home/david/.nvm/versions/node/v18.14.2/bin/npm npm info using npm@9.6.4 npm info using node@v18.14.2 npm verb title npm unpublish @lirewine/debug@1.0.0-beta.78 npm verb argv "unpublish" "--force" "--loglevel" "verbose" "@lirewine/debug@1.0.0-beta.78" npm verb logfile logs-max:10 dir:/home/david/.npm/_logs/2023-04-14T20_29_04_740Z- npm verb logfile /home/david/.npm/_logs/2023-04-14T20_29_04_740Z-debug-0.log npm WARN using --force Recommended protections disabled. npm http fetch GET 200 http://gitea.local:3000/api/packages/cerc-io/npm/@lirewine%2fdebug?write=true 42ms (cache updated) npm http fetch GET 200 http://gitea.local:3000/api/packages/cerc-io/npm/@lirewine%2fdebug?write=true 22ms (cache updated) npm http fetch DELETE 200 http://gitea.local:3000/api/packages/cerc-io/npm/@lirewine%2fdebug/-rev/undefined 23ms - @lirewine/debug@1.0.0-beta.78 npm verb exit 0 npm info ok ``` ``` 2023/04/14 14:23:28 [6439b640] router: completed GET /api/packages/cerc-io/npm/@lirewine%2fdebug?write=true for 192.168.32.1:36038, 200 OK in 16.4ms @ npm/npm.go:50(npm.PackageMetadata) 2023/04/14 14:23:28 [6439b640-2] router: completed GET /api/packages/cerc-io/npm/@lirewine%2fdebug?write=true for 192.168.32.1:36038, 200 OK in 15.8ms @ npm/npm.go:50(npm.PackageMetadata) 2023/04/14 14:23:28 [6439b640-3] router: completed DELETE /api/packages/cerc-io/npm/@lirewine%2fdebug/-rev/undefined for 192.168.32.1:36038, 200 OK in 21.0ms @ npm/npm.go:256(npm.DeletePackage) ```
Author
Contributor

This appears to be a bug in npm unpublish.

Also it seems to have something to do with the case when there's more than one existing published version in the registry.

This appears to be a bug in `npm unpublish`. Also it seems to have something to do with the case when there's more than one existing published version in the registry.
Author
Contributor

Workaround is to manually delete all versions but the target version, then npm unpublish works.

Workaround is to manually delete all versions but the target version, then `npm unpublish` works.
Author
Contributor
Possibly the same as this: https://community.sonatype.com/t/cant-npm-unpublish-when-a-package-has-more-than-one-versions/8501
This repo is archived. You cannot comment on issues.
1 Participants
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: cerc-io/stack-orchestrator#330