Skip to content

Commit c98acab

Browse files
authored
Replace execa with nano-spawn in release script (#17129)
1 parent 4460a4e commit c98acab

6 files changed

Lines changed: 19 additions & 206 deletions

File tree

scripts/release/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
},
77
"dependencies": {
88
"enquirer": "2.4.1",
9-
"execa": "9.5.2",
109
"fast-glob": "3.3.3",
10+
"nano-spawn": "0.2.0",
1111
"node-style-text": "0.0.7",
1212
"outdent": "0.8.0",
1313
"semver": "7.7.1"

scripts/release/steps/install-dependencies.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
import { execa } from "execa";
1+
import spawn from "nano-spawn";
22
import { runGit, runYarn } from "../utils.js";
33

44
export default async function installDependencies() {
5-
await execa("rm", ["-rf", "node_modules"]);
5+
await spawn("rm", ["-rf", "node_modules"]);
66
await runYarn(["install"]);
77

8-
await execa("rm", ["-rf", "node_modules"], { cwd: "./website" });
8+
await spawn("rm", ["-rf", "node_modules"], { cwd: "./website" });
99
await runYarn(["install"], { cwd: "./website" });
1010

1111
const { stdout: status } = await runGit(["ls-files", "-m"]);

scripts/release/steps/publish-to-npm.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import enquirer from "enquirer";
2-
import { execa } from "execa";
2+
import spawn from "nano-spawn";
33
import { waitForEnter } from "../utils.js";
44

55
export default async function publishToNpm({ dry }) {
@@ -24,7 +24,7 @@ export default async function publishToNpm({ dry }) {
2424
args.push("--otp", otp);
2525
}
2626

27-
await execa("npm", args, { cwd: "./dist" });
27+
await spawn("npm", args, { cwd: "./dist" });
2828
};
2929

3030
/**

scripts/release/steps/update-changelog.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import fs from "node:fs";
2-
import { execa } from "execa";
2+
import spawn from "nano-spawn";
33
import styleText from "node-style-text";
44
import semver from "semver";
55
import {
@@ -17,7 +17,7 @@ function writeChangelog(params) {
1717
}
1818

1919
async function getChangelogForPatch({ version, previousVersion }) {
20-
const { stdout: changelog } = await execa("node", [
20+
const { stdout: changelog } = await spawn(process.execPath, [
2121
"scripts/changelog-for-patch.js",
2222
"--prev-version",
2323
previousVersion,

scripts/release/utils.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import fs from "node:fs";
22
import path from "node:path";
33
import readline from "node:readline";
44
import url from "node:url";
5-
import { execa } from "execa";
5+
import spawn from "nano-spawn";
66
import styleText from "node-style-text";
77
import outdent from "outdent";
88
import getFormattedDate from "./get-formatted-date.js";
@@ -60,15 +60,15 @@ async function runYarn(args, options) {
6060
args = Array.isArray(args) ? args : [args];
6161

6262
try {
63-
return await execa("yarn", [...args], options);
63+
return await spawn("yarn", [...args], options);
6464
} catch (error) {
6565
throw new Error(`\`yarn ${args.join(" ")}\` failed\n${error.stdout}`);
6666
}
6767
}
6868

6969
function runGit(args, options) {
7070
args = Array.isArray(args) ? args : [args];
71-
return execa("git", args, options);
71+
return spawn("git", args, options);
7272
}
7373

7474
function waitForEnter() {

scripts/release/yarn.lock

Lines changed: 8 additions & 195 deletions
Original file line numberDiff line numberDiff line change
@@ -32,20 +32,6 @@ __metadata:
3232
languageName: node
3333
linkType: hard
3434

35-
"@sec-ant/readable-stream@npm:^0.4.1":
36-
version: 0.4.1
37-
resolution: "@sec-ant/readable-stream@npm:0.4.1"
38-
checksum: 10/aac89581652ac85debe7c5303451c2ebf8bf25ca25db680e4b9b73168f6940616d9a4bbe3348981827b1159b14e2f2e6af4b7bd5735cac898c12d5c51909c102
39-
languageName: node
40-
linkType: hard
41-
42-
"@sindresorhus/merge-streams@npm:^4.0.0":
43-
version: 4.0.0
44-
resolution: "@sindresorhus/merge-streams@npm:4.0.0"
45-
checksum: 10/16551c787f5328c8ef05fd9831ade64369ccc992df78deb635ec6c44af217d2f1b43f8728c348cdc4e00585ff2fad6e00d8155199cbf6b154acc45fe65cbf0aa
46-
languageName: node
47-
linkType: hard
48-
4935
"ansi-colors@npm:^4.1.1":
5036
version: 4.1.3
5137
resolution: "ansi-colors@npm:4.1.3"
@@ -69,17 +55,6 @@ __metadata:
6955
languageName: node
7056
linkType: hard
7157

72-
"cross-spawn@npm:^7.0.3":
73-
version: 7.0.6
74-
resolution: "cross-spawn@npm:7.0.6"
75-
dependencies:
76-
path-key: "npm:^3.1.0"
77-
shebang-command: "npm:^2.0.0"
78-
which: "npm:^2.0.1"
79-
checksum: 10/0d52657d7ae36eb130999dffff1168ec348687b48dd38e2ff59992ed916c88d328cf1d07ff4a4a10bc78de5e1c23f04b306d569e42f7a2293915c081e4dfee86
80-
languageName: node
81-
linkType: hard
82-
8358
"enquirer@npm:2.4.1":
8459
version: 2.4.1
8560
resolution: "enquirer@npm:2.4.1"
@@ -90,26 +65,6 @@ __metadata:
9065
languageName: node
9166
linkType: hard
9267

93-
"execa@npm:9.5.2":
94-
version: 9.5.2
95-
resolution: "execa@npm:9.5.2"
96-
dependencies:
97-
"@sindresorhus/merge-streams": "npm:^4.0.0"
98-
cross-spawn: "npm:^7.0.3"
99-
figures: "npm:^6.1.0"
100-
get-stream: "npm:^9.0.0"
101-
human-signals: "npm:^8.0.0"
102-
is-plain-obj: "npm:^4.1.0"
103-
is-stream: "npm:^4.0.1"
104-
npm-run-path: "npm:^6.0.0"
105-
pretty-ms: "npm:^9.0.0"
106-
signal-exit: "npm:^4.1.0"
107-
strip-final-newline: "npm:^4.0.0"
108-
yoctocolors: "npm:^2.0.0"
109-
checksum: 10/652fa492e7e1052becba12275aafd1c3d249967a4400f798877aa6c21fafcd8182ee3ce09a54f0379785635f32a4adeef77b2edb83d7e8a55b06819ed102ff2a
110-
languageName: node
111-
linkType: hard
112-
11368
"fast-glob@npm:3.3.3":
11469
version: 3.3.3
11570
resolution: "fast-glob@npm:3.3.3"
@@ -132,15 +87,6 @@ __metadata:
13287
languageName: node
13388
linkType: hard
13489

135-
"figures@npm:^6.1.0":
136-
version: 6.1.0
137-
resolution: "figures@npm:6.1.0"
138-
dependencies:
139-
is-unicode-supported: "npm:^2.0.0"
140-
checksum: 10/9822d13630bee8e6a9f2da866713adf13854b07e0bfde042defa8bba32d47a1c0b2afa627ce73837c674cf9a5e3edce7e879ea72cb9ea7960b2390432d8e1167
141-
languageName: node
142-
linkType: hard
143-
14490
"fill-range@npm:^7.1.1":
14591
version: 7.1.1
14692
resolution: "fill-range@npm:7.1.1"
@@ -150,16 +96,6 @@ __metadata:
15096
languageName: node
15197
linkType: hard
15298

153-
"get-stream@npm:^9.0.0":
154-
version: 9.0.1
155-
resolution: "get-stream@npm:9.0.1"
156-
dependencies:
157-
"@sec-ant/readable-stream": "npm:^0.4.1"
158-
is-stream: "npm:^4.0.1"
159-
checksum: 10/ce56e6db6bcd29ca9027b0546af035c3e93dcd154ca456b54c298901eb0e5b2ce799c5d727341a100c99e14c523f267f1205f46f153f7b75b1f4da6d98a21c5e
160-
languageName: node
161-
linkType: hard
162-
16399
"glob-parent@npm:^5.1.2":
164100
version: 5.1.2
165101
resolution: "glob-parent@npm:5.1.2"
@@ -169,13 +105,6 @@ __metadata:
169105
languageName: node
170106
linkType: hard
171107

172-
"human-signals@npm:^8.0.0":
173-
version: 8.0.0
174-
resolution: "human-signals@npm:8.0.0"
175-
checksum: 10/89acdc7081ac2a065e41cca7351c4b0fe2382e213b7372f90df6a554e340f31b49388a307adc1d6f4c60b2b4fe81eeff0bc1f44be6f5d844311cd92ccc7831c6
176-
languageName: node
177-
linkType: hard
178-
179108
"is-extglob@npm:^2.1.1":
180109
version: 2.1.1
181110
resolution: "is-extglob@npm:2.1.1"
@@ -199,34 +128,6 @@ __metadata:
199128
languageName: node
200129
linkType: hard
201130

202-
"is-plain-obj@npm:^4.1.0":
203-
version: 4.1.0
204-
resolution: "is-plain-obj@npm:4.1.0"
205-
checksum: 10/6dc45da70d04a81f35c9310971e78a6a3c7a63547ef782e3a07ee3674695081b6ca4e977fbb8efc48dae3375e0b34558d2bcd722aec9bddfa2d7db5b041be8ce
206-
languageName: node
207-
linkType: hard
208-
209-
"is-stream@npm:^4.0.1":
210-
version: 4.0.1
211-
resolution: "is-stream@npm:4.0.1"
212-
checksum: 10/cbea3f1fc271b21ceb228819d0c12a0965a02b57f39423925f99530b4eb86935235f258f06310b67cd02b2d10b49e9a0998f5ececf110ab7d3760bae4055ad23
213-
languageName: node
214-
linkType: hard
215-
216-
"is-unicode-supported@npm:^2.0.0":
217-
version: 2.1.0
218-
resolution: "is-unicode-supported@npm:2.1.0"
219-
checksum: 10/f254e3da6b0ab1a57a94f7273a7798dd35d1d45b227759f600d0fa9d5649f9c07fa8d3c8a6360b0e376adf916d151ec24fc9a50c5295c58bae7ca54a76a063f9
220-
languageName: node
221-
linkType: hard
222-
223-
"isexe@npm:^2.0.0":
224-
version: 2.0.0
225-
resolution: "isexe@npm:2.0.0"
226-
checksum: 10/7c9f715c03aff08f35e98b1fadae1b9267b38f0615d501824f9743f3aab99ef10e303ce7db3f186763a0b70a19de5791ebfc854ff884d5a8c4d92211f642ec92
227-
languageName: node
228-
linkType: hard
229-
230131
"merge2@npm:^1.3.0":
231132
version: 1.4.1
232133
resolution: "merge2@npm:1.4.1"
@@ -244,67 +145,34 @@ __metadata:
244145
languageName: node
245146
linkType: hard
246147

148+
"nano-spawn@npm:0.2.0":
149+
version: 0.2.0
150+
resolution: "nano-spawn@npm:0.2.0"
151+
checksum: 10/efc75810590f9a15ffde05f03ab6408727524040fe13db1a34e8d09512803269f976a294b4facf51ba30bfb32568dcc8a723fee36e45a5748cd045bf566b6790
152+
languageName: node
153+
linkType: hard
154+
247155
"node-style-text@npm:0.0.7":
248156
version: 0.0.7
249157
resolution: "node-style-text@npm:0.0.7"
250158
checksum: 10/a8816753ce863342bed6403e45e3911484ad14bd4010469ff3529d58a25dec36f0aab98afd6523e64fe1a469339fd78256718c7c4df4c3e74c2579e817544df3
251159
languageName: node
252160
linkType: hard
253161

254-
"npm-run-path@npm:^6.0.0":
255-
version: 6.0.0
256-
resolution: "npm-run-path@npm:6.0.0"
257-
dependencies:
258-
path-key: "npm:^4.0.0"
259-
unicorn-magic: "npm:^0.3.0"
260-
checksum: 10/1a1b50aba6e6af7fd34a860ba2e252e245c4a59b316571a990356417c0cdf0414cabf735f7f52d9c330899cb56f0ab804a8e21fb12a66d53d7843e39ada4a3b6
261-
languageName: node
262-
linkType: hard
263-
264162
"outdent@npm:0.8.0":
265163
version: 0.8.0
266164
resolution: "outdent@npm:0.8.0"
267165
checksum: 10/a556c5c308705ad4e3441be435f2b2cf014cb5f9753a24cbd080eadc473b988c77d0d529a6a9a57c3931fb4178e5a81d668cc4bc49892b668191a5d0ba3df76e
268166
languageName: node
269167
linkType: hard
270168

271-
"parse-ms@npm:^4.0.0":
272-
version: 4.0.0
273-
resolution: "parse-ms@npm:4.0.0"
274-
checksum: 10/673c801d9f957ff79962d71ed5a24850163f4181a90dd30c4e3666b3a804f53b77f1f0556792e8b2adbb5d58757907d1aa51d7d7dc75997c2a56d72937cbc8b7
275-
languageName: node
276-
linkType: hard
277-
278-
"path-key@npm:^3.1.0":
279-
version: 3.1.1
280-
resolution: "path-key@npm:3.1.1"
281-
checksum: 10/55cd7a9dd4b343412a8386a743f9c746ef196e57c823d90ca3ab917f90ab9f13dd0ded27252ba49dbdfcab2b091d998bc446f6220cd3cea65db407502a740020
282-
languageName: node
283-
linkType: hard
284-
285-
"path-key@npm:^4.0.0":
286-
version: 4.0.0
287-
resolution: "path-key@npm:4.0.0"
288-
checksum: 10/8e6c314ae6d16b83e93032c61020129f6f4484590a777eed709c4a01b50e498822b00f76ceaf94bc64dbd90b327df56ceadce27da3d83393790f1219e07721d7
289-
languageName: node
290-
linkType: hard
291-
292169
"picomatch@npm:^2.3.1":
293170
version: 2.3.1
294171
resolution: "picomatch@npm:2.3.1"
295172
checksum: 10/60c2595003b05e4535394d1da94850f5372c9427ca4413b71210f437f7b2ca091dbd611c45e8b37d10036fa8eade25c1b8951654f9d3973bfa66a2ff4d3b08bc
296173
languageName: node
297174
linkType: hard
298175

299-
"pretty-ms@npm:^9.0.0":
300-
version: 9.2.0
301-
resolution: "pretty-ms@npm:9.2.0"
302-
dependencies:
303-
parse-ms: "npm:^4.0.0"
304-
checksum: 10/a65a1d81560867f4f7128862fdbf0e1c2d3c5607bf75cae7758bf8111e2c4b744be46e084704125a38ba918bb43defa7a53aaff0f48c5c2d95367d3148c980d9
305-
languageName: node
306-
linkType: hard
307-
308176
"queue-microtask@npm:^1.2.2":
309177
version: 1.2.3
310178
resolution: "queue-microtask@npm:1.2.3"
@@ -324,8 +192,8 @@ __metadata:
324192
resolution: "root-workspace-0b6124@workspace:."
325193
dependencies:
326194
enquirer: "npm:2.4.1"
327-
execa: "npm:9.5.2"
328195
fast-glob: "npm:3.3.3"
196+
nano-spawn: "npm:0.2.0"
329197
node-style-text: "npm:0.0.7"
330198
outdent: "npm:0.8.0"
331199
semver: "npm:7.7.1"
@@ -350,29 +218,6 @@ __metadata:
350218
languageName: node
351219
linkType: hard
352220

353-
"shebang-command@npm:^2.0.0":
354-
version: 2.0.0
355-
resolution: "shebang-command@npm:2.0.0"
356-
dependencies:
357-
shebang-regex: "npm:^3.0.0"
358-
checksum: 10/6b52fe87271c12968f6a054e60f6bde5f0f3d2db483a1e5c3e12d657c488a15474121a1d55cd958f6df026a54374ec38a4a963988c213b7570e1d51575cea7fa
359-
languageName: node
360-
linkType: hard
361-
362-
"shebang-regex@npm:^3.0.0":
363-
version: 3.0.0
364-
resolution: "shebang-regex@npm:3.0.0"
365-
checksum: 10/1a2bcae50de99034fcd92ad4212d8e01eedf52c7ec7830eedcf886622804fe36884278f2be8be0ea5fde3fd1c23911643a4e0f726c8685b61871c8908af01222
366-
languageName: node
367-
linkType: hard
368-
369-
"signal-exit@npm:^4.1.0":
370-
version: 4.1.0
371-
resolution: "signal-exit@npm:4.1.0"
372-
checksum: 10/c9fa63bbbd7431066174a48ba2dd9986dfd930c3a8b59de9c29d7b6854ec1c12a80d15310869ea5166d413b99f041bfa3dd80a7947bcd44ea8e6eb3ffeabfa1f
373-
languageName: node
374-
linkType: hard
375-
376221
"strip-ansi@npm:^6.0.1":
377222
version: 6.0.1
378223
resolution: "strip-ansi@npm:6.0.1"
@@ -382,13 +227,6 @@ __metadata:
382227
languageName: node
383228
linkType: hard
384229

385-
"strip-final-newline@npm:^4.0.0":
386-
version: 4.0.0
387-
resolution: "strip-final-newline@npm:4.0.0"
388-
checksum: 10/b5fe48f695d74863153a3b3155220e6e9bf51f4447832998c8edec38e6559b3af87a9fe5ac0df95570a78a26f5fa91701358842eab3c15480e27980b154a145f
389-
languageName: node
390-
linkType: hard
391-
392230
"to-regex-range@npm:^5.0.1":
393231
version: 5.0.1
394232
resolution: "to-regex-range@npm:5.0.1"
@@ -397,28 +235,3 @@ __metadata:
397235
checksum: 10/10dda13571e1f5ad37546827e9b6d4252d2e0bc176c24a101252153ef435d83696e2557fe128c4678e4e78f5f01e83711c703eef9814eb12dab028580d45980a
398236
languageName: node
399237
linkType: hard
400-
401-
"unicorn-magic@npm:^0.3.0":
402-
version: 0.3.0
403-
resolution: "unicorn-magic@npm:0.3.0"
404-
checksum: 10/bdd7d7c522f9456f32a0b77af23f8854f9a7db846088c3868ec213f9550683ab6a2bdf3803577eacbafddb4e06900974385841ccb75338d17346ccef45f9cb01
405-
languageName: node
406-
linkType: hard
407-
408-
"which@npm:^2.0.1":
409-
version: 2.0.2
410-
resolution: "which@npm:2.0.2"
411-
dependencies:
412-
isexe: "npm:^2.0.0"
413-
bin:
414-
node-which: ./bin/node-which
415-
checksum: 10/4782f8a1d6b8fc12c65e968fea49f59752bf6302dc43036c3bf87da718a80710f61a062516e9764c70008b487929a73546125570acea95c5b5dcc8ac3052c70f
416-
languageName: node
417-
linkType: hard
418-
419-
"yoctocolors@npm:^2.0.0":
420-
version: 2.1.1
421-
resolution: "yoctocolors@npm:2.1.1"
422-
checksum: 10/563fbec88bce9716d1044bc98c96c329e1d7a7c503e6f1af68f1ff914adc3ba55ce953c871395e2efecad329f85f1632f51a99c362032940321ff80c42a6f74d
423-
languageName: node
424-
linkType: hard

0 commit comments

Comments
 (0)