From 3be5e74ce7933799fb62176afb21a960a529677d Mon Sep 17 00:00:00 2001 From: Paul Soporan Date: Fri, 22 Oct 2021 22:29:44 +0300 Subject: [PATCH 01/11] feat: install git repositories that use pnpm --- .yarn/versions/4d0fa20f.yml | 33 ++++++++++++++++ .../repositories/pnpm-project.git/HEAD | 1 + .../repositories/pnpm-project.git/config | 4 ++ .../repositories/pnpm-project.git/description | 1 + .../pnpm-project.git/hooks/post-update | 8 ++++ .../pnpm-project.git/info/exclude | 6 +++ .../repositories/pnpm-project.git/info/refs | 3 ++ .../04/d06cc440ad490ca4744395bb2c431b70b57898 | 1 + .../4b/825dc642cb6eb9a060e54bf8d69288fbee4904 | Bin 0 -> 15 bytes .../57/d05601ca0e00e0047b2ea8a0f30b0dc760e40b | Bin 0 -> 784 bytes .../cf/83f8c5aa9f800669eaf31b7b7d3f25f54b3549 | 2 + .../d4/94dba3e6a710854e03497b7f1a26a63c0e7540 | Bin 0 -> 70 bytes .../e1/2c0cd76796a67dbcbee21331bab75137aea7f6 | Bin 0 -> 126 bytes .../pnpm-project.git/objects/info/packs | 1 + .../repositories/pnpm-project.git/packed-refs | 2 + .../pnpm-project.git/refs/heads/master | 1 + .../repositories/pnpm-workspaces.git/HEAD | 1 + .../repositories/pnpm-workspaces.git/config | 4 ++ .../pnpm-workspaces.git/description | 1 + .../pnpm-workspaces.git/hooks/post-update | 8 ++++ .../pnpm-workspaces.git/info/exclude | 6 +++ .../pnpm-workspaces.git/info/refs | 3 ++ .../1f/63fd5e42e4bd1d29b250f1365f833150d467a3 | Bin 0 -> 57 bytes .../61/3e4f2f72b8aea56b20475c016a6c8fad2485e2 | 1 + .../74/1fe10cc250174d64297e5641ed9e67c73cd41d | Bin 0 -> 63 bytes .../93/5defbf4feda857ab6aa12f503c0dd42f3d8df4 | Bin 0 -> 156 bytes .../b2/f187caccb2e84bd4c20f81a4f4be3fcbcb47e0 | Bin 0 -> 33 bytes .../bb/848e3fdd3d7875dc179648ab98742f9761c8dd | Bin 0 -> 57 bytes .../be/4760eb142a0e427faca9811cb913d5917ad614 | Bin 0 -> 55 bytes .../d1/6bc461ce9bd42690625105cd50ae5936ebce34 | 3 ++ .../dc/bdfa141295731efd57481923e80604520f0a35 | Bin 0 -> 72 bytes .../ee/09b194db8e42695fa9dca484a35715916cd089 | Bin 0 -> 55 bytes .../pnpm-workspaces.git/objects/info/packs | 1 + .../pnpm-workspaces.git/packed-refs | 2 + .../pnpm-workspaces.git/refs/heads/master | 1 + packages/yarnpkg-core/sources/scriptUtils.ts | 36 +++++++++++++++++- 36 files changed, 129 insertions(+), 1 deletion(-) create mode 100644 .yarn/versions/4d0fa20f.yml create mode 100644 packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-project.git/HEAD create mode 100644 packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-project.git/config create mode 100644 packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-project.git/description create mode 100644 packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-project.git/hooks/post-update create mode 100644 packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-project.git/info/exclude create mode 100644 packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-project.git/info/refs create mode 100644 packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-project.git/objects/04/d06cc440ad490ca4744395bb2c431b70b57898 create mode 100644 packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-project.git/objects/4b/825dc642cb6eb9a060e54bf8d69288fbee4904 create mode 100644 packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-project.git/objects/57/d05601ca0e00e0047b2ea8a0f30b0dc760e40b create mode 100644 packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-project.git/objects/cf/83f8c5aa9f800669eaf31b7b7d3f25f54b3549 create mode 100644 packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-project.git/objects/d4/94dba3e6a710854e03497b7f1a26a63c0e7540 create mode 100644 packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-project.git/objects/e1/2c0cd76796a67dbcbee21331bab75137aea7f6 create mode 100644 packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-project.git/objects/info/packs create mode 100644 packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-project.git/packed-refs create mode 100644 packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-project.git/refs/heads/master create mode 100644 packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-workspaces.git/HEAD create mode 100644 packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-workspaces.git/config create mode 100644 packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-workspaces.git/description create mode 100644 packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-workspaces.git/hooks/post-update create mode 100644 packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-workspaces.git/info/exclude create mode 100644 packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-workspaces.git/info/refs create mode 100644 packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-workspaces.git/objects/1f/63fd5e42e4bd1d29b250f1365f833150d467a3 create mode 100644 packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-workspaces.git/objects/61/3e4f2f72b8aea56b20475c016a6c8fad2485e2 create mode 100644 packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-workspaces.git/objects/74/1fe10cc250174d64297e5641ed9e67c73cd41d create mode 100644 packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-workspaces.git/objects/93/5defbf4feda857ab6aa12f503c0dd42f3d8df4 create mode 100644 packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-workspaces.git/objects/b2/f187caccb2e84bd4c20f81a4f4be3fcbcb47e0 create mode 100644 packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-workspaces.git/objects/bb/848e3fdd3d7875dc179648ab98742f9761c8dd create mode 100644 packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-workspaces.git/objects/be/4760eb142a0e427faca9811cb913d5917ad614 create mode 100644 packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-workspaces.git/objects/d1/6bc461ce9bd42690625105cd50ae5936ebce34 create mode 100644 packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-workspaces.git/objects/dc/bdfa141295731efd57481923e80604520f0a35 create mode 100644 packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-workspaces.git/objects/ee/09b194db8e42695fa9dca484a35715916cd089 create mode 100644 packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-workspaces.git/objects/info/packs create mode 100644 packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-workspaces.git/packed-refs create mode 100644 packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-workspaces.git/refs/heads/master diff --git a/.yarn/versions/4d0fa20f.yml b/.yarn/versions/4d0fa20f.yml new file mode 100644 index 000000000000..2edb7b8cc93f --- /dev/null +++ b/.yarn/versions/4d0fa20f.yml @@ -0,0 +1,33 @@ +releases: + "@yarnpkg/cli": minor + "@yarnpkg/core": minor + "@yarnpkg/plugin-git": minor + "@yarnpkg/plugin-github": minor + +declined: + - "@yarnpkg/plugin-compat" + - "@yarnpkg/plugin-constraints" + - "@yarnpkg/plugin-dlx" + - "@yarnpkg/plugin-essentials" + - "@yarnpkg/plugin-exec" + - "@yarnpkg/plugin-file" + - "@yarnpkg/plugin-http" + - "@yarnpkg/plugin-init" + - "@yarnpkg/plugin-interactive-tools" + - "@yarnpkg/plugin-link" + - "@yarnpkg/plugin-nm" + - "@yarnpkg/plugin-npm" + - "@yarnpkg/plugin-npm-cli" + - "@yarnpkg/plugin-pack" + - "@yarnpkg/plugin-patch" + - "@yarnpkg/plugin-pnp" + - "@yarnpkg/plugin-pnpm" + - "@yarnpkg/plugin-stage" + - "@yarnpkg/plugin-typescript" + - "@yarnpkg/plugin-version" + - "@yarnpkg/plugin-workspace-tools" + - "@yarnpkg/builder" + - "@yarnpkg/doctor" + - "@yarnpkg/nm" + - "@yarnpkg/pnpify" + - "@yarnpkg/sdks" diff --git a/packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-project.git/HEAD b/packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-project.git/HEAD new file mode 100644 index 000000000000..cb089cd89a7d --- /dev/null +++ b/packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-project.git/HEAD @@ -0,0 +1 @@ +ref: refs/heads/master diff --git a/packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-project.git/config b/packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-project.git/config new file mode 100644 index 000000000000..6b92557a9132 --- /dev/null +++ b/packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-project.git/config @@ -0,0 +1,4 @@ +[core] + repositoryformatversion = 0 + filemode = true + bare = false diff --git a/packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-project.git/description b/packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-project.git/description new file mode 100644 index 000000000000..498b267a8c78 --- /dev/null +++ b/packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-project.git/description @@ -0,0 +1 @@ +Unnamed repository; edit this file 'description' to name the repository. diff --git a/packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-project.git/hooks/post-update b/packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-project.git/hooks/post-update new file mode 100644 index 000000000000..ec17ec1939b7 --- /dev/null +++ b/packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-project.git/hooks/post-update @@ -0,0 +1,8 @@ +#!/bin/sh +# +# An example hook script to prepare a packed repository for use over +# dumb transports. +# +# To enable this hook, rename this file to "post-update". + +exec git update-server-info diff --git a/packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-project.git/info/exclude b/packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-project.git/info/exclude new file mode 100644 index 000000000000..a5196d1be8fb --- /dev/null +++ b/packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-project.git/info/exclude @@ -0,0 +1,6 @@ +# git ls-files --others --exclude-from=.git/info/exclude +# Lines that start with '#' are comments. +# For a project mostly in C, the following would be a good set of +# exclude patterns (uncomment them if you want to use them): +# *.[oa] +# *~ diff --git a/packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-project.git/info/refs b/packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-project.git/info/refs new file mode 100644 index 000000000000..d229466afc8e --- /dev/null +++ b/packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-project.git/info/refs @@ -0,0 +1,3 @@ +57d05601ca0e00e0047b2ea8a0f30b0dc760e40b refs/heads/master +57d05601ca0e00e0047b2ea8a0f30b0dc760e40b refs/remotes/origin/HEAD +57d05601ca0e00e0047b2ea8a0f30b0dc760e40b refs/remotes/origin/master diff --git a/packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-project.git/objects/04/d06cc440ad490ca4744395bb2c431b70b57898 b/packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-project.git/objects/04/d06cc440ad490ca4744395bb2c431b70b57898 new file mode 100644 index 000000000000..152e7cffd729 --- /dev/null +++ b/packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-project.git/objects/04/d06cc440ad490ca4744395bb2c431b70b57898 @@ -0,0 +1 @@ +x51 agNA:+ۀv(4-b|/%hTd!L(6sd%3ؿ̑==LH>W&oS0Ji9F0+drBsP(;3yDo!1VUdw&wl01kvr=X zbVsKc`@UTOMMCb796Z0Dja@Q96n7CK z-Sf>Nb0cqiNZ&C~*X#C396oqNk>$RphJlWCu5aYa0 zo_tBvevq+qje)TC`gmh{CKuu*S?r53oL;|1e(jLq@SgAD8PsRPrqunN< z@U=j4Vp%h3*v#-yY8eCV(`?Zxr@iLAUk>9qaq)_`;B-L%aSHHpN) z;1GzDa(A_u_Z0KS+fFlqF0N@f6JFEZ1XaF=>}xVjy@eYxwuh{amK+V_w0@+B#enVF zUeD>}rV!?bS_JX&IZ~#K$MH#~p#;$p#z=4tx0_}pOjli+D|KSLPNXvBiYN?ZgGD!W zM*Ej6-&;qy3Kq>HiIvnY4c5WXQ=+&Q8nBNexRaD$dN$vr;hCGv?wdE=WzzOv?m{S#fct cq!y&+rKIL1XQqO<1&PVoiRoY_03*j1mzlC5mjD0& literal 0 HcmV?d00001 diff --git a/packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-project.git/objects/e1/2c0cd76796a67dbcbee21331bab75137aea7f6 b/packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-project.git/objects/e1/2c0cd76796a67dbcbee21331bab75137aea7f6 new file mode 100644 index 0000000000000000000000000000000000000000..4aa8a0431ec13639fd7c0d3f13857cba4a296f56 GIT binary patch literal 126 zcmV-^0D=E_0V^p=O;s>7v|unaFfcPQQ7A}E&Q45E)ypc*&tqV@kaNUgttZct66dMA zb)2OOwpPr5smm+K)y>II&ep3;%*|oAGUfK-XUhdz{g^$g>!s9|+3=M*Kvfo}mXsC% g&0{#<{Nw1V`3-EDuRcpx*V?Oo^)~ec01ZzsMCO1$f&c&j literal 0 HcmV?d00001 diff --git a/packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-project.git/objects/info/packs b/packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-project.git/objects/info/packs new file mode 100644 index 000000000000..8b137891791f --- /dev/null +++ b/packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-project.git/objects/info/packs @@ -0,0 +1 @@ + diff --git a/packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-project.git/packed-refs b/packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-project.git/packed-refs new file mode 100644 index 000000000000..5322ebc8e4f4 --- /dev/null +++ b/packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-project.git/packed-refs @@ -0,0 +1,2 @@ +# pack-refs with: peeled fully-peeled sorted +57d05601ca0e00e0047b2ea8a0f30b0dc760e40b refs/remotes/origin/master diff --git a/packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-project.git/refs/heads/master b/packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-project.git/refs/heads/master new file mode 100644 index 000000000000..e786081705e8 --- /dev/null +++ b/packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-project.git/refs/heads/master @@ -0,0 +1 @@ +57d05601ca0e00e0047b2ea8a0f30b0dc760e40b diff --git a/packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-workspaces.git/HEAD b/packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-workspaces.git/HEAD new file mode 100644 index 000000000000..cb089cd89a7d --- /dev/null +++ b/packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-workspaces.git/HEAD @@ -0,0 +1 @@ +ref: refs/heads/master diff --git a/packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-workspaces.git/config b/packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-workspaces.git/config new file mode 100644 index 000000000000..6b92557a9132 --- /dev/null +++ b/packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-workspaces.git/config @@ -0,0 +1,4 @@ +[core] + repositoryformatversion = 0 + filemode = true + bare = false diff --git a/packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-workspaces.git/description b/packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-workspaces.git/description new file mode 100644 index 000000000000..498b267a8c78 --- /dev/null +++ b/packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-workspaces.git/description @@ -0,0 +1 @@ +Unnamed repository; edit this file 'description' to name the repository. diff --git a/packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-workspaces.git/hooks/post-update b/packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-workspaces.git/hooks/post-update new file mode 100644 index 000000000000..ec17ec1939b7 --- /dev/null +++ b/packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-workspaces.git/hooks/post-update @@ -0,0 +1,8 @@ +#!/bin/sh +# +# An example hook script to prepare a packed repository for use over +# dumb transports. +# +# To enable this hook, rename this file to "post-update". + +exec git update-server-info diff --git a/packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-workspaces.git/info/exclude b/packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-workspaces.git/info/exclude new file mode 100644 index 000000000000..a5196d1be8fb --- /dev/null +++ b/packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-workspaces.git/info/exclude @@ -0,0 +1,6 @@ +# git ls-files --others --exclude-from=.git/info/exclude +# Lines that start with '#' are comments. +# For a project mostly in C, the following would be a good set of +# exclude patterns (uncomment them if you want to use them): +# *.[oa] +# *~ diff --git a/packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-workspaces.git/info/refs b/packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-workspaces.git/info/refs new file mode 100644 index 000000000000..58caca529f97 --- /dev/null +++ b/packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-workspaces.git/info/refs @@ -0,0 +1,3 @@ +d16bc461ce9bd42690625105cd50ae5936ebce34 refs/heads/master +d16bc461ce9bd42690625105cd50ae5936ebce34 refs/remotes/origin/HEAD +d16bc461ce9bd42690625105cd50ae5936ebce34 refs/remotes/origin/master diff --git a/packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-workspaces.git/objects/1f/63fd5e42e4bd1d29b250f1365f833150d467a3 b/packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-workspaces.git/objects/1f/63fd5e42e4bd1d29b250f1365f833150d467a3 new file mode 100644 index 0000000000000000000000000000000000000000..f271d073f19f4bf84c6d75c3fb8f8efdf660e0bf GIT binary patch literal 57 zcmV-90LK4#0V^p=O;s>4U@$Z=Ff%bxC`e4sPE1eL%PP*#V|d58amwvJr_A`3cb2p) P4i}x6bD7WvJ#-00O1F#N1RRD+Q&3yn7Ghr|^FfcPQQ7A}E&Q45E)ypc*&toW&f5>wvK-@P)vo6f> z?Y#8kHdka#41fTpteD}>-d`d@Q;X&PhI>dVzhGkt;^#7j8I@O%tDBRboUK=xn480p zXy>nAv}4`UYz6li#;lzFwJNQTkX4rF7iAX%txtt0-}JHl)R|2$yssSMZ(Q4U@$Z=Ff%bxC`e4sPE1eL%PP*#W7y}O@LEKRXR%0`); P!dE9&T@wKSaeomVYRDGV literal 0 HcmV?d00001 diff --git a/packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-workspaces.git/objects/be/4760eb142a0e427faca9811cb913d5917ad614 b/packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-workspaces.git/objects/be/4760eb142a0e427faca9811cb913d5917ad614 new file mode 100644 index 0000000000000000000000000000000000000000..7f3b9c868aabdb5367072990d2f25f1f23f6cee3 GIT binary patch literal 55 zcmV-70LcG%0ZYosPf{>3VW{R(P*BQC%uQ9YQcx<$PS;IR(g6vTr4|)u=I4P#4fPE4 N43xNPxd3cE4IQ2$7g7KK literal 0 HcmV?d00001 diff --git a/packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-workspaces.git/objects/d1/6bc461ce9bd42690625105cd50ae5936ebce34 b/packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-workspaces.git/objects/d1/6bc461ce9bd42690625105cd50ae5936ebce34 new file mode 100644 index 000000000000..557f07c32054 --- /dev/null +++ b/packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-workspaces.git/objects/d1/6bc461ce9bd42690625105cd50ae5936ebce34 @@ -0,0 +1,3 @@ +xIVWU6HyQ1f2f0;̌1럓JkkQQ~# pmRi } +0$Ȕa1E0fi̛Ti>G_;,QGH'Yp؇~6l(2ÉS6:;7 sq{Yr |6-ױz](i7mGg={a6Ө5*|5F~{@*x*7 qF_.VtΑmhk/J w/{0Q] ﯝ7"J(+ ..yBPNG Y+r1UENoCޙ$i- "PgBd2t-c,i4C)?K ɷIJ1jtg+q;뙐&,ዾFc6Ju(;{WWt2Q\ Vzٰ^b1=6"ϵE c`/+M9_]òsm͝qD.>C^J5);2lU?0*.prwbD׋"N%3}TB $Χ̨<nPCth +~h~e7zu[s;%u`n/r1,}[!b-?ӗDeeydN˥ %g+uZ%^bG d7{);F+;#o*Hbƾ;#5~w=_O \ No newline at end of file diff --git a/packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-workspaces.git/objects/dc/bdfa141295731efd57481923e80604520f0a35 b/packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-workspaces.git/objects/dc/bdfa141295731efd57481923e80604520f0a35 new file mode 100644 index 0000000000000000000000000000000000000000..aed2a2813eeb1cd30e81ccef7904f93ad8c1f67a GIT binary patch literal 72 zcmV-O0Jr~m0V^p=O;s>6VK6ZO0)>L?blpS-`Q*QGPEYpAYHkYnXcpgW7;q(hF+x6x eVRuWP{axFN(mUeQJXX&r(Vw1p;w}J+*&Ew3k|3J^ literal 0 HcmV?d00001 diff --git a/packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-workspaces.git/objects/ee/09b194db8e42695fa9dca484a35715916cd089 b/packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-workspaces.git/objects/ee/09b194db8e42695fa9dca484a35715916cd089 new file mode 100644 index 0000000000000000000000000000000000000000..78b35f36233fc04e526f316dbfe55fd02e1ef880 GIT binary patch literal 55 zcmV-70LcG%0ZYosPf{>3VW{R(P*BQC%uQ9YQcx<$PS;IT(g6vTr4|)u=I4P#4fPE4 N43xNPxd3b;4IG{Z7dQX_ literal 0 HcmV?d00001 diff --git a/packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-workspaces.git/objects/info/packs b/packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-workspaces.git/objects/info/packs new file mode 100644 index 000000000000..8b137891791f --- /dev/null +++ b/packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-workspaces.git/objects/info/packs @@ -0,0 +1 @@ + diff --git a/packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-workspaces.git/packed-refs b/packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-workspaces.git/packed-refs new file mode 100644 index 000000000000..e8f55fb755db --- /dev/null +++ b/packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-workspaces.git/packed-refs @@ -0,0 +1,2 @@ +# pack-refs with: peeled fully-peeled sorted +d16bc461ce9bd42690625105cd50ae5936ebce34 refs/remotes/origin/master diff --git a/packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-workspaces.git/refs/heads/master b/packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-workspaces.git/refs/heads/master new file mode 100644 index 000000000000..bc6a25f9e341 --- /dev/null +++ b/packages/acceptance-tests/pkg-tests-fixtures/repositories/pnpm-workspaces.git/refs/heads/master @@ -0,0 +1 @@ +d16bc461ce9bd42690625105cd50ae5936ebce34 diff --git a/packages/yarnpkg-core/sources/scriptUtils.ts b/packages/yarnpkg-core/sources/scriptUtils.ts index 2dcd7e59e6db..5271a0727cb6 100644 --- a/packages/yarnpkg-core/sources/scriptUtils.ts +++ b/packages/yarnpkg-core/sources/scriptUtils.ts @@ -398,11 +398,45 @@ export async function prepareExternalProject(cwd: PortablePath, outputPath: Port return 0; }], + + [PackageManager.Pnpm, async () => { + const workspaceCli = workspace !== null + ? [`--filter`, workspace] + : []; + + const install = await execUtils.pipevp(`pnpm`, [`install`], {cwd, env, stdin, stdout, stderr, end: execUtils.EndStrategy.ErrorCode}); + if (install.code !== 0) + return install.code; + + const packStream = new PassThrough(); + const packPromise = miscUtils.bufferStream(packStream); + + packStream.pipe(stdout); + + // It seems that pnpm doesn't support specifying the pack output path, + // so we have to extract the stdout on top of forking it to the logs. + + // - `pnpm pack` doesn't support the `--filter` flag so we have to use `pnpm exec` + // - We have to use the `--pack-destination` flag because otherwise pnpm generates the tarball inside the workspace cwd + const packArgs = [...workspaceCli, `exec`, `pnpm`, `pack`, `--pack-destination`, npath.fromPortablePath(cwd)]; + + const pack = await execUtils.pipevp(`pnpm`, packArgs, {cwd, env, stdin, stdout: packStream, stderr}); + if (pack.code !== 0) + return pack.code; + + const packOutput = (await packPromise).toString().trim().replace(/^.*\n/s, ``); + const packTarget = ppath.resolve(cwd, npath.toPortablePath(packOutput)); + + // Only then can we move the pack to its rightful location + await xfs.renamePromise(packTarget, outputPath); + + return 0; + }], ]); const workflow = workflows.get(effectivePackageManager); if (typeof workflow === `undefined`) - throw new Error(`Assertion failed: Unsupported workflow`); + throw new Error(`Assertion failed: Unsupported workflow: "${effectivePackageManager}"`); const code = await workflow(); if (code === 0 || typeof code === `undefined`) From f72f198862e11dcb36173feb3100842b79c58d3f Mon Sep 17 00:00:00 2001 From: Paul Soporan Date: Fri, 22 Oct 2021 23:48:54 +0300 Subject: [PATCH 02/11] fix: add workaround so that pnpm@5 can pack regular packages --- packages/yarnpkg-core/sources/scriptUtils.ts | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/packages/yarnpkg-core/sources/scriptUtils.ts b/packages/yarnpkg-core/sources/scriptUtils.ts index 5271a0727cb6..43a1312286ee 100644 --- a/packages/yarnpkg-core/sources/scriptUtils.ts +++ b/packages/yarnpkg-core/sources/scriptUtils.ts @@ -400,10 +400,6 @@ export async function prepareExternalProject(cwd: PortablePath, outputPath: Port }], [PackageManager.Pnpm, async () => { - const workspaceCli = workspace !== null - ? [`--filter`, workspace] - : []; - const install = await execUtils.pipevp(`pnpm`, [`install`], {cwd, env, stdin, stdout, stderr, end: execUtils.EndStrategy.ErrorCode}); if (install.code !== 0) return install.code; @@ -418,7 +414,10 @@ export async function prepareExternalProject(cwd: PortablePath, outputPath: Port // - `pnpm pack` doesn't support the `--filter` flag so we have to use `pnpm exec` // - We have to use the `--pack-destination` flag because otherwise pnpm generates the tarball inside the workspace cwd - const packArgs = [...workspaceCli, `exec`, `pnpm`, `pack`, `--pack-destination`, npath.fromPortablePath(cwd)]; + // - Only pnpm@>=6.x supports the `--pack-destination` flag (and previous versions throw an error) + const packArgs = workspace !== null + ? [`--filter`, workspace, `exec`, `pnpm`, `pack`, `--pack-destination`, npath.fromPortablePath(cwd)] + : [`pack`]; const pack = await execUtils.pipevp(`pnpm`, packArgs, {cwd, env, stdin, stdout: packStream, stderr}); if (pack.code !== 0) From 744a541c8148015ff4a0a737969b2e76f9eb434b Mon Sep 17 00:00:00 2001 From: Paul Soporan Date: Thu, 28 Oct 2021 17:01:36 +0300 Subject: [PATCH 03/11] true --- .../pkg-tests-core/sources/utils/makeTemporaryEnv.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/acceptance-tests/pkg-tests-core/sources/utils/makeTemporaryEnv.ts b/packages/acceptance-tests/pkg-tests-core/sources/utils/makeTemporaryEnv.ts index 9cea3764d27a..f7f55ad51544 100644 --- a/packages/acceptance-tests/pkg-tests-core/sources/utils/makeTemporaryEnv.ts +++ b/packages/acceptance-tests/pkg-tests-core/sources/utils/makeTemporaryEnv.ts @@ -51,7 +51,8 @@ const mte = generatePkgDriver({ [`YARN_ENABLE_TIMERS`]: `false`, [`FORCE_COLOR`]: `0`, // Otherwise the output wouldn't be the same on CI vs non-CI - [`YARN_ENABLE_INLINE_BUILDS`]: `false`, + [`YARN_ENABLE_INLINE_BUILDS`]: `true`, + [`YARN_PREFER_AGGREGATE_CACHE_INFO`]: `false`, // Otherwise we would more often test the fallback rather than the real logic [`YARN_PNP_FALLBACK_MODE`]: `none`, // Otherwise tests fail on systems where this is globally set to true From bca2abfbec72bd257754c8b2e3ae70c4a302e195 Mon Sep 17 00:00:00 2001 From: Sagnik Pradhan Date: Sat, 22 Mar 2025 19:58:54 +0530 Subject: [PATCH 04/11] fix: node env, bad conflicts --- .../pkg-tests-core/sources/utils/makeTemporaryEnv.ts | 1 - packages/yarnpkg-core/sources/scriptUtils.ts | 3 +++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/acceptance-tests/pkg-tests-core/sources/utils/makeTemporaryEnv.ts b/packages/acceptance-tests/pkg-tests-core/sources/utils/makeTemporaryEnv.ts index f7f55ad51544..2c1441d30a49 100644 --- a/packages/acceptance-tests/pkg-tests-core/sources/utils/makeTemporaryEnv.ts +++ b/packages/acceptance-tests/pkg-tests-core/sources/utils/makeTemporaryEnv.ts @@ -52,7 +52,6 @@ const mte = generatePkgDriver({ [`FORCE_COLOR`]: `0`, // Otherwise the output wouldn't be the same on CI vs non-CI [`YARN_ENABLE_INLINE_BUILDS`]: `true`, - [`YARN_PREFER_AGGREGATE_CACHE_INFO`]: `false`, // Otherwise we would more often test the fallback rather than the real logic [`YARN_PNP_FALLBACK_MODE`]: `none`, // Otherwise tests fail on systems where this is globally set to true diff --git a/packages/yarnpkg-core/sources/scriptUtils.ts b/packages/yarnpkg-core/sources/scriptUtils.ts index 43a1312286ee..2a2edbcf4952 100644 --- a/packages/yarnpkg-core/sources/scriptUtils.ts +++ b/packages/yarnpkg-core/sources/scriptUtils.ts @@ -400,6 +400,9 @@ export async function prepareExternalProject(cwd: PortablePath, outputPath: Port }], [PackageManager.Pnpm, async () => { + // Remove environment variables that limit the install to just production dependencies + delete env.NODE_ENV; + const install = await execUtils.pipevp(`pnpm`, [`install`], {cwd, env, stdin, stdout, stderr, end: execUtils.EndStrategy.ErrorCode}); if (install.code !== 0) return install.code; From 062dc493f4334b58592b4ab27f900c787da8ef7e Mon Sep 17 00:00:00 2001 From: Sagnik Pradhan Date: Sat, 22 Mar 2025 20:01:54 +0530 Subject: [PATCH 05/11] chore: updated changelog --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3e96b54ffe13..0d5a2967b33e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,8 @@ Yarn now accepts sponsors! Please take a look at our [OpenCollective](https://op Features in `master` can be tried out by running `yarn set version from sources` in your project. ::: +- Yarn can now install git repositories that use pnpm (workspaces are supported too if pnpm@>=6.x is installed on the system). + - Fixes `preferInteractive` forcing interactive mode in non-TTY environments. - `node-modules` linker now honors user-defined symlinks for `/node_modules` directories - `node-modules` linker supports hoisting into inner workspaces that are parents of other workspaces From 3f605a0933ffbdf1ea28eb1070344686bd57b0ad Mon Sep 17 00:00:00 2001 From: Sagnik Pradhan Date: Sat, 22 Mar 2025 20:08:16 +0530 Subject: [PATCH 06/11] chore: fix release version --- .yarn/versions/4d0fa20f.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.yarn/versions/4d0fa20f.yml b/.yarn/versions/4d0fa20f.yml index 2edb7b8cc93f..47a60bf1051b 100644 --- a/.yarn/versions/4d0fa20f.yml +++ b/.yarn/versions/4d0fa20f.yml @@ -31,3 +31,4 @@ declined: - "@yarnpkg/nm" - "@yarnpkg/pnpify" - "@yarnpkg/sdks" + - "@yarnpkg/extensions" From 4f5125f120e3813c6b38e6c0ca43a1ad2791f843 Mon Sep 17 00:00:00 2001 From: Sagnik Pradhan Date: Tue, 8 Apr 2025 10:55:42 +0530 Subject: [PATCH 07/11] Add Integration tests for pnpm --- .../sources/protocols/git.test.ts | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/packages/acceptance-tests/pkg-tests-specs/sources/protocols/git.test.ts b/packages/acceptance-tests/pkg-tests-specs/sources/protocols/git.test.ts index 4a5529d151f3..eedaaae67354 100644 --- a/packages/acceptance-tests/pkg-tests-specs/sources/protocols/git.test.ts +++ b/packages/acceptance-tests/pkg-tests-specs/sources/protocols/git.test.ts @@ -196,6 +196,26 @@ describe(`Protocols`, () => { ), ); + test( + `it should use pnpm to setup pnpm repositories`, + makeTemporaryEnv( + { + dependencies: { + [`pnpm-project`]: tests.startPackageServer().then(url => `${url}/repositories/pnpm-project.git`), + }, + }, + async ({path, run, source}) => { + await expect(run(`install`, { + env: { + NODE_ENV: `production`, + }, + })).resolves.toBeTruthy(); + + await expect(source(`require('pnpm-project')`)).resolves.toMatch(/\bpnpm\/[0-9]+/); + }, + ), + ); + test( `it should guarantee that all dependencies will be installed when using npm to setup npm repositories`, makeTemporaryEnv( @@ -263,6 +283,31 @@ describe(`Protocols`, () => { ), ); + test( + `it should support installing specific workspaces from pnpm repositories`, + makeTemporaryEnv( + { + dependencies: { + [`pkg-a`]: tests.startPackageServer().then(url => `${url}/repositories/pnpm-workspaces.git#workspace=pkg-a`), + [`pkg-b`]: tests.startPackageServer().then(url => `${url}/repositories/pnpm-workspaces.git#workspace=pkg-b`), + }, + }, + async ({path, run, source}) => { + await run(`install`); + + await expect(source(`require('pkg-a/package.json')`)).resolves.toMatchObject({ + name: `pkg-a`, + version: `1.0.0`, + }); + + await expect(source(`require('pkg-b/package.json')`)).resolves.toMatchObject({ + name: `pkg-b`, + version: `1.0.0`, + }); + }, + ), + ); + test( `it should not use Corepack to fetch Yarn Classic`, makeTemporaryEnv( From 8ccf18d0e2131cca4eada7d67f54ab717153813b Mon Sep 17 00:00:00 2001 From: Sagnik Pradhan Date: Tue, 8 Apr 2025 10:56:07 +0530 Subject: [PATCH 08/11] Update packages/acceptance-tests/pkg-tests-core/sources/utils/makeTemporaryEnv.ts MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Maël Nison --- .../pkg-tests-core/sources/utils/makeTemporaryEnv.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/acceptance-tests/pkg-tests-core/sources/utils/makeTemporaryEnv.ts b/packages/acceptance-tests/pkg-tests-core/sources/utils/makeTemporaryEnv.ts index 2c1441d30a49..9cea3764d27a 100644 --- a/packages/acceptance-tests/pkg-tests-core/sources/utils/makeTemporaryEnv.ts +++ b/packages/acceptance-tests/pkg-tests-core/sources/utils/makeTemporaryEnv.ts @@ -51,7 +51,7 @@ const mte = generatePkgDriver({ [`YARN_ENABLE_TIMERS`]: `false`, [`FORCE_COLOR`]: `0`, // Otherwise the output wouldn't be the same on CI vs non-CI - [`YARN_ENABLE_INLINE_BUILDS`]: `true`, + [`YARN_ENABLE_INLINE_BUILDS`]: `false`, // Otherwise we would more often test the fallback rather than the real logic [`YARN_PNP_FALLBACK_MODE`]: `none`, // Otherwise tests fail on systems where this is globally set to true From 536e0e149bff30ab87682ccddf36039a10febe01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ma=C3=ABl=20Nison?= Date: Tue, 8 Apr 2025 09:22:06 +0200 Subject: [PATCH 09/11] Enable Corepack in integration workflow --- .github/workflows/integration-workflow.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/integration-workflow.yml b/.github/workflows/integration-workflow.yml index bfd3f867d696..d82414ad9d27 100644 --- a/.github/workflows/integration-workflow.yml +++ b/.github/workflows/integration-workflow.yml @@ -31,6 +31,11 @@ jobs: uses: actions/setup-node@v4 with: node-version: ${{ env.node-version }} + + - name: Enable Corepack + run: | + npm install -g corepack + corepack enable - name: 'Check that the Yarn files don''t change on new installs (fix w/ "yarn install")' run: | From 89043d94a0028f882a93fbdc166274034b4fda69 Mon Sep 17 00:00:00 2001 From: Sagnik Pradhan Date: Mon, 28 Apr 2025 10:28:26 +0530 Subject: [PATCH 10/11] Enable corepack on integration tests --- .github/workflows/integration-workflow.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/integration-workflow.yml b/.github/workflows/integration-workflow.yml index d82414ad9d27..5284755d3867 100644 --- a/.github/workflows/integration-workflow.yml +++ b/.github/workflows/integration-workflow.yml @@ -31,7 +31,7 @@ jobs: uses: actions/setup-node@v4 with: node-version: ${{ env.node-version }} - + - name: Enable Corepack run: | npm install -g corepack @@ -259,6 +259,11 @@ jobs: with: node-version: ${{matrix.node}}.x + - name: Enable Corepack + run: | + npm install -g corepack + corepack enable + - uses: actions/download-artifact@v4 with: name: yarn-artifacts From 1b5d487d0f6d4d085a4fd645da710dd82e1f5f82 Mon Sep 17 00:00:00 2001 From: Sagnik Pradhan Date: Mon, 28 Apr 2025 10:46:47 +0530 Subject: [PATCH 11/11] decline jsr release --- .yarn/versions/4d0fa20f.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.yarn/versions/4d0fa20f.yml b/.yarn/versions/4d0fa20f.yml index 47a60bf1051b..2ead6ddb739c 100644 --- a/.yarn/versions/4d0fa20f.yml +++ b/.yarn/versions/4d0fa20f.yml @@ -14,6 +14,7 @@ declined: - "@yarnpkg/plugin-http" - "@yarnpkg/plugin-init" - "@yarnpkg/plugin-interactive-tools" + - "@yarnpkg/plugin-jsr" - "@yarnpkg/plugin-link" - "@yarnpkg/plugin-nm" - "@yarnpkg/plugin-npm" @@ -28,7 +29,7 @@ declined: - "@yarnpkg/plugin-workspace-tools" - "@yarnpkg/builder" - "@yarnpkg/doctor" + - "@yarnpkg/extensions" - "@yarnpkg/nm" - "@yarnpkg/pnpify" - "@yarnpkg/sdks" - - "@yarnpkg/extensions"