Skip to content

Commit 353b5bb

Browse files
nlflukekarrys
authored andcommitted
fix: remove chownr and mkdirp-infer-owner
closes npm/statusboard#540 BREAKING CHANGE: npm will no longer attempt to modify ownership of files it creates
1 parent aa01072 commit 353b5bb

File tree

10 files changed

+12
-120
lines changed

10 files changed

+12
-120
lines changed

DEPENDENCIES.md

-5
Original file line numberDiff line numberDiff line change
@@ -668,9 +668,6 @@ graph LR;
668668
minipass-sized-->minipass;
669669
minizlib-->minipass;
670670
minizlib-->yallist;
671-
mkdirp-infer-owner-->chownr;
672-
mkdirp-infer-owner-->infer-owner;
673-
mkdirp-infer-owner-->mkdirp;
674671
node-abi-->semver;
675672
node-gyp-->env-paths;
676673
node-gyp-->glob;
@@ -691,7 +688,6 @@ graph LR;
691688
npm-->archy;
692689
npm-->cacache;
693690
npm-->chalk;
694-
npm-->chownr;
695691
npm-->cli-columns;
696692
npm-->cli-table3;
697693
npm-->columnify;
@@ -721,7 +717,6 @@ graph LR;
721717
npm-->minimatch;
722718
npm-->minipass-pipeline;
723719
npm-->minipass;
724-
npm-->mkdirp-infer-owner;
725720
npm-->mkdirp;
726721
npm-->ms;
727722
npm-->nock;

lib/commands/config.js

+2-6
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,8 @@
11
// don't expand so that we only assemble the set of defaults when needed
22
const configDefs = require('../utils/config/index.js')
33

4-
const mkdirp = require('mkdirp-infer-owner')
4+
const { mkdir, readFile, writeFile } = require('fs/promises')
55
const { dirname, resolve } = require('path')
6-
const { promisify } = require('util')
7-
const fs = require('fs')
8-
const readFile = promisify(fs.readFile)
9-
const writeFile = promisify(fs.writeFile)
106
const { spawn } = require('child_process')
117
const { EOL } = require('os')
128
const ini = require('ini')
@@ -231,7 +227,7 @@ ${data.split('\n').sort(localeCompare).join('\n').trim()}
231227
232228
${defData}
233229
`.split('\n').join(EOL)
234-
await mkdirp(dirname(file))
230+
await mkdir(dirname(file), { recursive: true })
235231
await writeFile(file, tmpData, 'utf8')
236232
await new Promise((resolve, reject) => {
237233
const [bin, ...args] = e.split(/\s+/)

lib/commands/init.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
const fs = require('fs')
22
const { relative, resolve } = require('path')
3-
const mkdirp = require('mkdirp-infer-owner')
3+
const { mkdir } = require('fs/promises')
44
const initJson = require('init-package-json')
55
const npa = require('npm-package-arg')
66
const rpj = require('read-package-json-fast')
@@ -59,7 +59,7 @@ class Init extends BaseCommand {
5959
if (args.length) {
6060
for (const filterArg of filters) {
6161
const path = wPath(filterArg)
62-
await mkdirp(path)
62+
await mkdir(path, { recursive: true })
6363
workspacesPaths.push(path)
6464
await this.execCreate({ args, path })
6565
await this.setWorkspace({ pkg, workspacePath: path })
@@ -70,7 +70,7 @@ class Init extends BaseCommand {
7070
// no args, uses classic init-package-json boilerplate
7171
for (const filterArg of filters) {
7272
const path = wPath(filterArg)
73-
await mkdirp(path)
73+
await mkdir(path, { recursive: true })
7474
workspacesPaths.push(path)
7575
await this.template(path)
7676
await this.setWorkspace({ pkg, workspacePath: path })

node_modules/.gitignore

-1
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,6 @@
157157
!/minipass-sized
158158
!/minipass
159159
!/minizlib
160-
!/mkdirp-infer-owner
161160
!/mkdirp
162161
!/ms
163162
!/mute-stream

node_modules/mkdirp-infer-owner/LICENSE

-15
This file was deleted.

node_modules/mkdirp-infer-owner/index.js

-26
This file was deleted.

node_modules/mkdirp-infer-owner/package.json

-36
This file was deleted.

package-lock.json

-17
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
"archy",
2020
"cacache",
2121
"chalk",
22-
"chownr",
2322
"cli-columns",
2423
"cli-table3",
2524
"columnify",
@@ -48,7 +47,6 @@
4847
"minipass",
4948
"minipass-pipeline",
5049
"mkdirp",
51-
"mkdirp-infer-owner",
5250
"ms",
5351
"node-gyp",
5452
"nopt",
@@ -99,7 +97,6 @@
9997
"archy": "~1.0.0",
10098
"cacache": "^17.0.1",
10199
"chalk": "^4.1.2",
102-
"chownr": "^2.0.0",
103100
"cli-columns": "^4.0.0",
104101
"cli-table3": "^0.6.2",
105102
"columnify": "^1.6.0",
@@ -128,7 +125,6 @@
128125
"minipass": "^3.1.6",
129126
"minipass-pipeline": "^1.2.4",
130127
"mkdirp": "^1.0.4",
131-
"mkdirp-infer-owner": "^2.0.0",
132128
"ms": "^2.1.2",
133129
"node-gyp": "^9.1.0",
134130
"nopt": "^6.0.0",
@@ -7849,19 +7845,6 @@
78497845
"resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
78507846
"integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A=="
78517847
},
7852-
"node_modules/mkdirp-infer-owner": {
7853-
"version": "2.0.0",
7854-
"inBundle": true,
7855-
"license": "ISC",
7856-
"dependencies": {
7857-
"chownr": "^2.0.0",
7858-
"infer-owner": "^1.0.4",
7859-
"mkdirp": "^1.0.3"
7860-
},
7861-
"engines": {
7862-
"node": ">=10"
7863-
}
7864-
},
78657848
"node_modules/modify-values": {
78667849
"version": "1.0.1",
78677850
"resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz",

package.json

-4
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,6 @@
6666
"archy": "~1.0.0",
6767
"cacache": "^17.0.1",
6868
"chalk": "^4.1.2",
69-
"chownr": "^2.0.0",
7069
"cli-columns": "^4.0.0",
7170
"cli-table3": "^0.6.2",
7271
"columnify": "^1.6.0",
@@ -95,7 +94,6 @@
9594
"minipass": "^3.1.6",
9695
"minipass-pipeline": "^1.2.4",
9796
"mkdirp": "^1.0.4",
98-
"mkdirp-infer-owner": "^2.0.0",
9997
"ms": "^2.1.2",
10098
"node-gyp": "^9.1.0",
10199
"nopt": "^6.0.0",
@@ -140,7 +138,6 @@
140138
"archy",
141139
"cacache",
142140
"chalk",
143-
"chownr",
144141
"cli-columns",
145142
"cli-table3",
146143
"columnify",
@@ -169,7 +166,6 @@
169166
"minipass",
170167
"minipass-pipeline",
171168
"mkdirp",
172-
"mkdirp-infer-owner",
173169
"ms",
174170
"node-gyp",
175171
"nopt",

test/fixtures/sandbox.js

+7-7
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ const { EventEmitter } = require('events')
33
const { homedir, tmpdir } = require('os')
44
const { dirname, join } = require('path')
55
const { promisify } = require('util')
6-
const mkdirp = require('mkdirp-infer-owner')
6+
const { mkdir } = require('fs/promises')
77
const rimraf = promisify(require('rimraf'))
88
const mockLogs = require('./mock-logs')
99
const pkg = require('../../package.json')
@@ -239,9 +239,9 @@ class Sandbox extends EventEmitter {
239239

240240
async run (command, argv = []) {
241241
await Promise.all([
242-
mkdirp(this.project),
243-
mkdirp(this.home),
244-
mkdirp(this.global),
242+
mkdir(this.project, { recursive: true }),
243+
mkdir(this.home, { recursive: true }),
244+
mkdir(this.global, { recursive: true }),
245245
])
246246

247247
// attach the sandbox process now, doing it after the promise above is
@@ -290,9 +290,9 @@ class Sandbox extends EventEmitter {
290290
}
291291

292292
await Promise.all([
293-
mkdirp(this.project),
294-
mkdirp(this.home),
295-
mkdirp(this.global),
293+
mkdir(this.project, { recursive: true }),
294+
mkdir(this.home, { recursive: true }),
295+
mkdir(this.global, { recursive: true }),
296296
])
297297

298298
// attach the sandbox process now, doing it after the promise above is

0 commit comments

Comments
 (0)