Skip to content

Commit 4c567f8

Browse files
committed
build(compat): use a treeless TypeScript clone (#6193)
**What's the problem this PR addresses?** Building the latest TypeScript patch requires fetching https://github.com/arcanis/typescript, https://github.com/microsoft/typescript, and https://github.com/merceyz/typescript which, according to git, requires fetching 1.87 GiB, 452 MiB, and 42 MiB of data and produces a 2.7GB `.git` folder. **How did you fix it?** Fork TypeScript to https://github.com/yarnpkg/TypeScript and push the branches required to build all the patches to it and change the script to use a treeless clone of it which only needs to fetch 55 MiB of data and produces a 74MB `.git` folder. Depends on - #6186 **Checklist** - [x] I have read the [Contributing Guide](https://yarnpkg.com/advanced/contributing). - [x] I have set the packages that need to be released for my changes to be effective. - [x] I will check that all automated PR checks pass before the PR gets reviewed.
1 parent 1c79a81 commit 4c567f8

File tree

1 file changed

+25
-30
lines changed

1 file changed

+25
-30
lines changed

packages/plugin-compat/extra/typescript/gen-typescript-patch.js

+25-30
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ const https = require(`https`);
66
const path = require(`path`);
77
const semver = require(`semver`);
88

9-
const TS_REPO = `/tmp/ts-repo`;
9+
const TS_REPO = `/tmp/ts-repo-treeless`;
1010
const TS_REPO_SPAWN = {cwd: TS_REPO};
1111

1212
const TMP_DIR = `/tmp/ts-builds`;
@@ -93,7 +93,7 @@ const SLICES = [
9393
npm: `6.14.11`,
9494
},
9595
},
96-
// https://github.com/merceyz/TypeScript/tree/merceyz/pnp-4.2
96+
// https://github.com/yarnpkg/TypeScript/tree/merceyz/pnp-4.2
9797
{
9898
from: `8e0e8703b9c95013aec7819e4593d099cdf7763a`,
9999
to: `178a67b4663d80b0fcbea542e7255b4499b51708`,
@@ -104,7 +104,7 @@ const SLICES = [
104104
npm: `6.14.11`,
105105
},
106106
},
107-
// https://github.com/merceyz/TypeScript/tree/merceyz/pnp-4.3
107+
// https://github.com/yarnpkg/TypeScript/tree/merceyz/pnp-4.3
108108
{
109109
from: `530aad19e4ac19d35cb6b200168c91ce86cb0050`,
110110
to: `ffa54c5a104e7940b5c23666ddffbf44878f9d9f`,
@@ -114,7 +114,7 @@ const SLICES = [
114114
npm: `6.14.11`,
115115
},
116116
},
117-
// https://github.com/merceyz/TypeScript/tree/merceyz/pnp-4.4
117+
// https://github.com/yarnpkg/TypeScript/tree/merceyz/pnp-4.4
118118
{
119119
from: `793bfe32745bf6797924354b0fd5be62cf01950c`,
120120
to: `20ffca2f3c48591c971e6606a55b7b1820d8a64f`,
@@ -124,7 +124,7 @@ const SLICES = [
124124
npm: `6.14.11`,
125125
},
126126
},
127-
// https://github.com/merceyz/TypeScript/tree/merceyz/pnp-4.5
127+
// https://github.com/yarnpkg/TypeScript/tree/merceyz/pnp-4.5
128128
{
129129
from: `9232978f8e54f073b5451d0bf2737d42a0fd672f`,
130130
to: `3a2388d39d41d000b5c5f9bcd48096b39fcedf8f`,
@@ -134,7 +134,7 @@ const SLICES = [
134134
npm: `6.14.11`,
135135
},
136136
},
137-
// https://github.com/merceyz/TypeScript/tree/merceyz/pnp-4.6
137+
// https://github.com/yarnpkg/TypeScript/tree/merceyz/pnp-4.6
138138
{
139139
from: `fbec717ef33fc2db5791f2a1d5f9a315e293a50a`,
140140
to: `fbec717ef33fc2db5791f2a1d5f9a315e293a50a`,
@@ -144,7 +144,7 @@ const SLICES = [
144144
npm: `6.14.11`,
145145
},
146146
},
147-
// https://github.com/merceyz/TypeScript/tree/merceyz/pnp-4.7
147+
// https://github.com/yarnpkg/TypeScript/tree/merceyz/pnp-4.7
148148
{
149149
from: `cd8d000510ed2d2910e0ebaa903a51adda546a0a`,
150150
to: `cd8d000510ed2d2910e0ebaa903a51adda546a0a`,
@@ -154,7 +154,7 @@ const SLICES = [
154154
npm: `6.14.11`,
155155
},
156156
},
157-
// https://github.com/merceyz/TypeScript/tree/merceyz/pnp-4.8.0-beta
157+
// https://github.com/yarnpkg/TypeScript/tree/merceyz/pnp-4.8.0-beta
158158
{
159159
from: `3287098f4785fd652112beadf3b33a960fcd19aa`,
160160
to: `3287098f4785fd652112beadf3b33a960fcd19aa`,
@@ -164,105 +164,105 @@ const SLICES = [
164164
npm: `6.14.11`,
165165
},
166166
},
167-
// https://github.com/merceyz/TypeScript/tree/merceyz/pnp-4.8-stable
167+
// https://github.com/yarnpkg/TypeScript/tree/merceyz/pnp-4.8-stable
168168
{
169169
from: `623a7ac5aa49250155d39e604b09b4d015468a9c`,
170170
to: `30840e0c2ad8e115c518f87379b7cb55fdf77f03`,
171171
onto: `60b5167a2a7015759d048cdd4655d1f66a8416a2`,
172172
range: `>=4.8.1-rc <4.8.4`,
173173
},
174-
// https://github.com/merceyz/TypeScript/tree/merceyz/pnp-4.8
174+
// https://github.com/yarnpkg/TypeScript/tree/merceyz/pnp-4.8
175175
{
176176
from: `d3747e92c3cd2d1f98739382c14226a725df38fd`,
177177
to: `5b9a74243e47db6113e857eabe5d26589fa0b64f`,
178178
onto: `a614119c1921ca61d549a7eee65c0b8c69c28752`,
179179
range: `>=4.8.4 <4.9.1-beta`,
180180
},
181-
// https://github.com/merceyz/TypeScript/tree/merceyz/pnp-4.9-beta
181+
// https://github.com/yarnpkg/TypeScript/tree/merceyz/pnp-4.9-beta
182182
{
183183
from: `69c84aacfcea603c4d74721366cdcbbebd1c1681`,
184184
to: `18b67922d3dcc5215541a38bf6417972270bf60f`,
185185
onto: `549b5429d4837344e8c99657109bb6538fd2dbb5`,
186186
range: `>=4.9.1-beta <4.9.2-rc`,
187187
},
188-
// https://github.com/merceyz/TypeScript/tree/merceyz/pnp-4.9-rc
188+
// https://github.com/yarnpkg/TypeScript/tree/merceyz/pnp-4.9-rc
189189
{
190190
from: `5613f8d8e30dfa9fb3da15e2b8432ed7e2347a12`,
191191
to: `d3a8a86ce4774d607c5a4a225cc5b59b1f96f42f`,
192192
onto: `107f832b80df2dc97748021cb00af2b6813db75b`,
193193
range: `>=4.9.2-rc <4.9.4`,
194194
},
195-
// https://github.com/merceyz/TypeScript/tree/merceyz/pnp-4.9
195+
// https://github.com/yarnpkg/TypeScript/tree/merceyz/pnp-4.9
196196
{
197197
from: `a0859a75a408ec95222a3f0175ba0644d60396f1`,
198198
to: `936e68ba96e004bd32e438d64ac720c3bfe5576b`,
199199
onto: `e2868216f637e875a74c675845625eb15dcfe9a2`,
200200
range: `>=4.9.4 <5.0.0-beta`,
201201
},
202-
// https://github.com/merceyz/TypeScript/tree/merceyz/pnp-5.0-beta
202+
// https://github.com/yarnpkg/TypeScript/tree/merceyz/pnp-5.0-beta
203203
{
204204
from: `65bff6fadce4736bb9a77213ba8016f1ac7d25e5`,
205205
to: `6225be2771938c6a1fce825eabe66292e4ace489`,
206206
onto: `dcad07ffd29854e2b93a86da0ba197f6eec21698`,
207207
range: `>=5.0.0-beta <5.0.1-rc`,
208208
},
209-
// https://github.com/merceyz/TypeScript/tree/merceyz/pnp-5.0
209+
// https://github.com/yarnpkg/TypeScript/tree/merceyz/pnp-5.0
210210
{
211211
from: `2c85874875fdf1f1182733b99afe47604915bfec`,
212212
to: `9a2c1c80b05a5fbd5bc6d2bfcbaa617793a236ab`,
213213
onto: `89515ce7e31d0bfaef776ac25929a78015cceb82`,
214214
range: `>=5.0.1-rc <5.1.0-beta`,
215215
},
216-
// https://github.com/merceyz/TypeScript/tree/merceyz/pnp-5.1-beta
216+
// https://github.com/yarnpkg/TypeScript/tree/merceyz/pnp-5.1-beta
217217
{
218218
from: `a6ef895fb06014c416cce2f80969912ec5ea47d5`,
219219
to: `a6ef895fb06014c416cce2f80969912ec5ea47d5`,
220220
onto: `1c5cc6152322cd5b131b6e617e0947bcb068fc4a`,
221221
range: `>=5.1.0-beta <5.1.1-rc`,
222222
},
223-
// https://github.com/merceyz/TypeScript/tree/merceyz/pnp-5.1
223+
// https://github.com/yarnpkg/TypeScript/tree/merceyz/pnp-5.1
224224
{
225225
from: `20514ce182c598568e4a9c7ed60a4ce84740cecd`,
226226
to: `20514ce182c598568e4a9c7ed60a4ce84740cecd`,
227227
onto: `5c47c6ab567cace50ab5f331a7381b9f0edb56ca`,
228228
range: `>=5.1.1-rc <5.2.0-beta`,
229229
},
230-
// https://github.com/merceyz/TypeScript/tree/merceyz/pnp-5.2-beta
230+
// https://github.com/yarnpkg/TypeScript/tree/merceyz/pnp-5.2-beta
231231
{
232232
from: `8781702c1b45bd2d5d437c0a138dd62b57b9b284`,
233233
to: `8781702c1b45bd2d5d437c0a138dd62b57b9b284`,
234234
onto: `d6e7eb6cf08a1cc8fb6d9888f74b0e694cc2a7b0`,
235235
range: `>=5.2.0-beta <5.2.1-rc`,
236236
},
237-
// https://github.com/merceyz/TypeScript/tree/merceyz/pnp-5.2
237+
// https://github.com/yarnpkg/TypeScript/tree/merceyz/pnp-5.2
238238
{
239239
from: `8c288a316928c9c161215fdf91ef015caa610d5b`,
240240
to: `8c288a316928c9c161215fdf91ef015caa610d5b`,
241241
onto: `6074b9d12b70757fe68ab2b4da059ea363c4df04`,
242242
range: `>=5.2.1-rc <5.3.0-beta`,
243243
},
244-
// https://github.com/merceyz/TypeScript/tree/merceyz/pnp-5.3-beta
244+
// https://github.com/yarnpkg/TypeScript/tree/merceyz/pnp-5.3-beta
245245
{
246246
from: `2b564c684dc5338c59c31f4658b737912ad46336`,
247247
to: `2b564c684dc5338c59c31f4658b737912ad46336`,
248248
onto: `c5de6b57b7f09a6d17eb4a5dab91ecf8f5b25f29`,
249249
range: `>=5.3.0-beta <5.3.1-rc`,
250250
},
251-
// https://github.com/merceyz/TypeScript/tree/merceyz/pnp-5.3
251+
// https://github.com/yarnpkg/TypeScript/tree/merceyz/pnp-5.3
252252
{
253253
from: `9fb5c1cac14376fe615dfd48ddbe4e97c2e6ac90`,
254254
to: `9fb5c1cac14376fe615dfd48ddbe4e97c2e6ac90`,
255255
onto: `88f80c75e1a4ab6aaec605aa4ec6281b87871ff0`,
256256
range: `>=5.3.1-rc <5.4.0-beta`,
257257
},
258-
// https://github.com/merceyz/TypeScript/tree/merceyz/pnp-5.4-beta
258+
// https://github.com/yarnpkg/TypeScript/tree/merceyz/pnp-5.4-beta
259259
{
260260
from: `9420c380b6f1f072ff66372cbf776fafd6eeed1c`,
261261
to: `9420c380b6f1f072ff66372cbf776fafd6eeed1c`,
262262
onto: `e80675868dff622d0870939e7c9930c68904e7e7`,
263263
range: `>=5.4.0-beta <5.4.1-rc`,
264264
},
265-
// https://github.com/merceyz/TypeScript/tree/merceyz/pnp-5.4-rc
265+
// https://github.com/yarnpkg/TypeScript/tree/merceyz/pnp-5.4-rc
266266
{
267267
from: `786e26825dad9dcc0eff79610bffd8bb121e7e8a`,
268268
to: `786e26825dad9dcc0eff79610bffd8bb121e7e8a`,
@@ -374,11 +374,8 @@ async function fetchVersions(range) {
374374
}
375375

376376
async function cloneRepository() {
377-
if (!fs.existsSync(TS_REPO)) {
378-
await execFile(`git`, [`clone`, `https://github.com/arcanis/typescript`, TS_REPO]);
379-
await execFile(`git`, [`remote`, `add`, `upstream`, `https://github.com/microsoft/typescript`], TS_REPO_SPAWN);
380-
await execFile(`git`, [`remote`, `add`, `upstream2`, `https://github.com/merceyz/typescript`], TS_REPO_SPAWN);
381-
}
377+
if (!fs.existsSync(TS_REPO))
378+
await execFile(`git`, [`clone`, `--filter=tree:0`, `https://github.com/yarnpkg/TypeScript`, TS_REPO]);
382379

383380
try {
384381
await execFile(`git`, [`cherry-pick`, `--abort`], TS_REPO_SPAWN);
@@ -388,8 +385,6 @@ async function cloneRepository() {
388385
await execFile(`git`, [`config`, `user.name`, `Your Name`], TS_REPO_SPAWN);
389386

390387
await execFile(`git`, [`fetch`, `origin`], TS_REPO_SPAWN);
391-
await execFile(`git`, [`fetch`, `upstream`], TS_REPO_SPAWN);
392-
await execFile(`git`, [`fetch`, `upstream2`], TS_REPO_SPAWN);
393388
}
394389

395390
async function resetGit(hash) {

0 commit comments

Comments
 (0)