npm / statusboard

Public monitor/status/health board for @npm/cli-team's maintained projects

Home Page:https://npm.github.io/statusboard

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Deprecate unused+archived `@npmcli` packages

lukekarrys opened this issue Β· comments

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

commented

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.

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.""
commented

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

commented

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