Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Deprecate unused+archived @npmcli packages #849

Closed
lukekarrys opened this issue May 10, 2024 · 5 comments
Closed

Deprecate unused+archived @npmcli packages #849

lukekarrys opened this issue May 10, 2024 · 5 comments

Comments

@lukekarrys
Copy link
Contributor

lukekarrys commented May 10, 2024

Now that we have all our packages on the @npmcli team, it was easier to do something I've wanted to do before: map our packages to their GitHub repos and use in the CLI. Using this data as a signal I was able to identify a number of packages I think we should deprecate. All of the deprecations are to match repos that are already archived, although some of the repos were archived as part of my findings here.

There is one outlier npm-merge-driver that I'm not sure what to do with. It's usage has been brought up before by other teams at GitHub. The repo is archived, but I'm not sure if it should be officially deprecated on the registry.

Here are the packages I think we should deprecate and the message we should use to deprecate them:

name downloads message
gauge 85,496,147 This package is no longer supported.
npmlog 84,944,008 This package is no longer supported.
are-we-there-yet 84,637,471 This package is no longer supported.
read-package-json 32,676,257 This package is no longer supported. Please use @npmcli/package-json instead.
fs-write-stream-atomic 21,872,169 This package is no longer supported.
move-concurrently 21,800,758 This package is no longer supported.
copy-concurrently 21,361,080 This package is no longer supported.
osenv 18,001,523 This package is no longer supported.
fstream 17,417,284 This package is no longer supported.
uid-number 3,146,340 This package is no longer supported.
read-installed 2,997,918 This package is no longer supported.
@npmcli/disparity-colors 2,018,842 This package is no longer supported.
fstream-ignore 1,227,570 This package is no longer supported.
libnpx 826,798 This package is no longer supported.
npm-registry-client 800,938 This package is no longer supported.
npm-cache-filename 760,099 This package is no longer supported.
lock-verify 523,768 This package is no longer supported.
find-npm-prefix 510,375 This package is no longer supported.
npx 480,460 This package is now part of the npm CLI.
libnpm 416,481 This package is no longer supported.
fstream-npm 251,332 This package is no longer supported.
normalize-git-url 144,093 This package is no longer supported.
realize-package-specifier 91,141 This package is no longer supported.
npm-merge-driver 38,252 ????
npmc 11,573 This package is no longer supported. Please use npm instead.
npm-registry-couchapp 1,424 This package is no longer supported.
cipm 205 This package is no longer supported.
npm-profile-cli 16 This package is no longer supported.
fallback-fs 16 This package is no longer supported.
do-you-even-lift 15 This package is no longer supported.
@npmcli/infer-owner 6 This package is no longer supported.
@npmcli/publish-test 5 This package is no longer supported.

Below is the full data I used to find the above packages to deprecate.

I went through it all manually since there are no perfect signals here. Eg: some deprecated packages map to active repos and some unused packages are tools that aren't used by the CLI but we don't want to deprecate/archive.

Full Data

pkg deprecated unused in CLI repo archived downloads/mo
semver npm/node-semver 1,333,621,524
which npm/node-which 372,810,282
hosted-git-info npm/hosted-git-info 209,001,983
write-file-atomic npm/write-file-atomic 207,866,405
ini npm/ini 188,217,804
normalize-package-data npm/normalize-package-data 174,741,486
json-parse-even-better-errors npm/json-parse-even-better-errors 172,327,972
nopt npm/nopt 137,957,775
ssri npm/ssri 123,397,106
cacache npm/cacache 120,926,092
mute-stream npm/mute-stream 114,389,430
abbrev npm/abbrev-js 104,995,866
gauge 🔄 npm/gauge 88,510,705
npmlog 🔄 npm/npmlog 87,942,806
unique-slug npm/unique-slug 87,644,950
are-we-there-yet 🔄 npm/are-we-there-yet 87,624,644
unique-filename npm/unique-filename 87,376,817
make-fetch-happen npm/make-fetch-happen 79,043,150
@npmcli/fs npm/fs 75,174,492
minipass-fetch npm/minipass-fetch 71,253,089
npm-package-arg npm/npm-package-arg 58,610,162
validate-npm-package-name npm/validate-npm-package-name 57,975,357
npm-normalize-package-bin npm/npm-normalize-package-bin 56,232,129
proc-log npm/proc-log 50,617,515
@npmcli/move-file npm/move-file 45,669,180
ignore-walk npm/ignore-walk 41,525,337
npm-bundled npm/npm-bundled 39,434,268
npm-packlist npm/npm-packlist 39,316,526
npm-registry-fetch npm/npm-registry-fetch 34,025,512
read-package-json 🔄 npm/read-package-json 33,861,661
npm-pick-manifest npm/npm-pick-manifest 33,359,278
pacote npm/pacote 31,563,760
@npmcli/promise-spawn npm/promise-spawn 30,635,700
@npmcli/run-script npm/run-script 30,569,737
@npmcli/git npm/git 30,179,509
npm-install-checks npm/npm-install-checks 30,001,004
read-package-json-fast npm/read-package-json-fast 29,838,478
@npmcli/node-gyp npm/node-gyp 27,251,184
@npmcli/installed-package-contents npm/installed-package-contents 26,714,308
npm npm/cli 24,456,981
fs-write-stream-atomic 🔄 npm/fs-write-stream-atomic 22,699,230
move-concurrently 🔄 npm/move-concurrently 22,624,368
figgy-pudding npm/figgy-pudding 22,576,728
copy-concurrently 🔄 npm/copy-concurrently 22,170,602
@npmcli/agent npm/agent 19,556,833
read npm/read 18,947,045
osenv 🔄 npm/osenv 18,647,743
fstream 🔄 npm/fstream 17,996,868
@npmcli/package-json npm/package-json 16,664,558
read-cmd-shim npm/read-cmd-shim 13,745,280
cmd-shim npm/cmd-shim 13,561,046
@npmcli/map-workspaces npm/map-workspaces 10,998,327
@npmcli/name-from-folder npm/name-from-folder 10,833,266
readdir-scoped-modules npm/readdir-scoped-modules 10,754,863
bin-links npm/bin-links 9,709,146
@npmcli/arborist npm/cli 8,893,083
@npmcli/metavuln-calculator npm/metavuln-calculator 8,776,740
parse-conflict-json npm/parse-conflict-json 8,638,672
init-package-json npm/init-package-json 7,864,611
promzard npm/promzard 7,739,406
libnpmpublish npm/cli 6,977,692
libnpmaccess npm/cli 6,906,998
@npmcli/redact npm/redact 5,678,254
@npmcli/query npm/query 5,202,231
read-package-tree npm/read-package-tree 4,418,231
stringify-package npm/stringify-package 3,539,385
@npmcli/config npm/cli 3,488,895
uid-number 🔄 npm/uid-number 3,242,552
read-installed 🔄 npm/read-installed 3,106,998
npm-user-validate npm/npm-user-validate 2,883,902
npm-profile npm/npm-profile 2,737,728
libnpmsearch npm/cli 2,676,221
npm-audit-report npm/npm-audit-report 2,656,999
libnpmhook npm/cli 2,650,027
libnpmorg npm/cli 2,641,810
libnpmteam npm/cli 2,639,256
@npmcli/ci-detect npm/ci-detect 2,360,377
node-fetch-npm npm/node-fetch-npm 2,281,028
libnpmpack npm/cli 2,268,053
libnpmexec npm/cli 2,253,482
libnpmversion npm/cli 2,248,538
libnpmfund npm/cli 2,217,988
libnpmdiff npm/cli 2,217,181
@npmcli/disparity-colors 🔄 npm/disparity-colors 2,091,264
npm-lifecycle npm/npm-lifecycle 1,731,168
fstream-ignore 🔄 npm/fstream-ignore 1,253,769
libnpx 🔄 npm/npx 854,950
npm-registry-client 🔄 npm/npm-registry-client 826,607
npm-cache-filename 🔄 npm/npm-cache-filename 784,264
fs-vacuum npm/fs-vacuum 764,859
proggy npm/proggy 565,597
lock-verify 🔄 npm/lock-verify 542,075
find-npm-prefix 🔄 npm/find-npm-prefix 528,037
gentle-fs npm/gentle-fs 523,407
npx 🔄 npm/npx 491,908
libcipm npm/libcipm 480,044
libnpm 🔄 npm/libnpm 432,430
fstream-npm 🔄 npm/fstream-npm 257,784
normalize-git-url 🔄 npm/normalize-git-url 148,943
realize-package-specifier 🔄 npm/realize-package-specifier 94,322
npm-registry-mock npm/npm-registry-mock 69,858
npm-merge-driver npm/npm-merge-driver 39,392
@npmcli/eslint-config npm/eslint-config 37,459
@npmcli/template-oss npm/template-oss 37,151
npmc 🔄 npm/cli 11,909
minify-registry-metadata npm/minify-registry-metadata 6,944
@npmcli/release-please googleapis/release-please 2,769
dot-prop-legacy ruyadorno/dot-prop 1,529
npm-registry-couchapp 🔄 npm/npm-registry-couchapp 1,452
node-tar 1,385
node-semver 1,288
@npmcli/lint npm/lint 784
node-which 758
cipm 🔄 npm/libcipm 215
@npmcli/tap-nock npm/tap-nock 145
Npm npm/deprecate-holder 45
do-you-even-lift 🔄 npm/do-you-even-lift 16
npm-profile-cli 🔄 npm/npm-profile 16
@npmcli/stafftools npm/stafftools 15
@npmcli/pull npm/pull 13
fallback-fs 🔄 npm/fallback-fs 9
@npmcli/create-oss npm/create-oss 8
@npmcli/npm-birthday npm/npm-birthday 8
@npmcli/infer-owner 🔄 isaacs/infer-owner 6
@npmcli/generate-provenance npm/provenance 2
@npmcli/provenance-cli npm/provenance 2
@npmcli/publish-test 🔄 npm/publish-test 2

@wraithgar
Copy link
Member

npm-merge-driver is a standalone bin that is not really related to the automated merge resolution that npm does internally. It would take a bit of work to get it up to working condition again, namely we would want to spawk what it does now and enforce it, and then we could clean it up. I don't know if this is a priority however. It may just have to be kept on the backlog for now.

@lukekarrys
Copy link
Contributor Author

lukekarrys commented May 17, 2024

In handy script form to run with npm-merge-drived removed:

#!/usr/bin/env bash

set -xe

npm deprecate gauge "This package is no longer supported.""
npm deprecate npmlog "This package is no longer supported.""
npm deprecate are-we-there-yet "This package is no longer supported.""
npm deprecate read-package-json "This package is no longer supported. Please use @npmcli/package-json instead.""
npm deprecate fs-write-stream-atomic "This package is no longer supported.""
npm deprecate move-concurrently "This package is no longer supported.""
npm deprecate copy-concurrently "This package is no longer supported.""
npm deprecate osenv "This package is no longer supported.""
npm deprecate fstream "This package is no longer supported.""
npm deprecate uid-number "This package is no longer supported.""
npm deprecate read-installed "This package is no longer supported.""
npm deprecate @npmcli/disparity-colors "This package is no longer supported.""
npm deprecate fstream-ignore "This package is no longer supported.""
npm deprecate libnpx "This package is no longer supported.""
npm deprecate npm-registry-client "This package is no longer supported.""
npm deprecate npm-cache-filename "This package is no longer supported.""
npm deprecate lock-verify "This package is no longer supported.""
npm deprecate find-npm-prefix "This package is no longer supported.""
npm deprecate npx "This package is now part of the npm CLI.""
npm deprecate libnpm "This package is no longer supported.""
npm deprecate fstream-npm "This package is no longer supported.""
npm deprecate normalize-git-url "This package is no longer supported.""
npm deprecate realize-package-specifier "This package is no longer supported.""
npm deprecate npmc "This package is no longer supported. Please use npm instead.""
npm deprecate npm-registry-couchapp "This package is no longer supported.""
npm deprecate cipm "This package is no longer supported.""
npm deprecate npm-profile-cli "This package is no longer supported.""
npm deprecate fallback-fs "This package is no longer supported.""
npm deprecate do-you-even-lift "This package is no longer supported.""
npm deprecate @npmcli/infer-owner "This package is no longer supported.""
npm deprecate @npmcli/publish-test "This package is no longer supported.""

@wraithgar
Copy link
Member

Thanks @lukekarrys I'll run that ... not on a weekend.

@wraithgar
Copy link
Member

Gonna make a back-burner issue for npm-merge-driver separately

@wraithgar
Copy link
Member

#854

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

No branches or pull requests

2 participants