From cf1a80181f1e4a244837822ee674cd1047342262 Mon Sep 17 00:00:00 2001 From: Jamie Feingold Date: Thu, 9 Apr 2026 12:49:33 -0500 Subject: [PATCH 1/6] fix: added failing test for sequential plugin installation @W-21915680@ --- .../fixtures/oclif-plugin-version-v2.2.41.tgz | Bin 0 -> 11508 bytes test/integration/install.integration.ts | 62 +++++++++++++++++- 2 files changed, 61 insertions(+), 1 deletion(-) create mode 100644 test/fixtures/oclif-plugin-version-v2.2.41.tgz diff --git a/test/fixtures/oclif-plugin-version-v2.2.41.tgz b/test/fixtures/oclif-plugin-version-v2.2.41.tgz new file mode 100644 index 0000000000000000000000000000000000000000..c84079ff8d8eb22bfaaf13a1120e120cead3d868 GIT binary patch literal 11508 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 aXl(7%_38R_eY*aYum1tc(X { const plugin = '@oclif/plugin-version' const pluginShortName = 'version' const pluginGithubSlug = 'oclif/plugin-version' const pluginGithubUrl = 'https://github.com/oclif/plugin-version.git' + let pluginLocalTarball = resolve(__dirname, '..', 'fixtures', 'oclif-plugin-version-v2.2.41.tgz') + // Normalize the path to ensure Windows compatibility + .replaceAll('\\', '/') + // If the path starts with 'C:', that needs to be removed + if (pluginLocalTarball.startsWith('C:')) { + pluginLocalTarball = pluginLocalTarball.slice(2) + } + + const otherPlugin = '@oclif/plugin-search' + const otherPluginShortName = 'search' const tmp = resolve('tmp', 'install-integration') const cacheDir = join(tmp, 'plugin-plugins-tests', 'cache') @@ -146,6 +159,53 @@ describe('install/uninstall integration tests', () => { }) }) + describe('local tarball', () => { + it('should install plugin from locally hosted tarball', async () => { + await runCommand(`plugins install "file://${pluginLocalTarball}`) + const {result, stdout} = await runCommand>('plugins') + expect(stdout).to.contain(pluginShortName) + expect(result?.some((r) => r.name === plugin)).to.be.true + }) + + it('should uninstall plugin from local tarball', async () => { + await runCommand(`plugins uninstall ${plugin}`) + const {result, stdout} = await runCommand>('plugins') + expect(stdout).to.contain('No plugins installed.') + expect(result?.some((r) => r.name === plugin)).to.be.false + }) + }) + + describe('multiple plugins sequentially', async () => { + /** + * This is a test for @W-21915680@, a bizarre bug wherein if you installed a plugin from the registry by its true name, + * and then installed a local tarball whose package name is alphabetically after the previous one, the local tarball + * would silently fail to install. + */ + it('handles local tarball installed after simple plugin name', async () => { + // Install first plugin by its registered name + await runCommand(`plugins install ${otherPlugin}`) + const {result: firstResult, stdout: firstStdout} = await runCommand>('plugins') + expect(firstStdout).to.contain(otherPluginShortName) + expect(firstResult?.some((r) => r.name === otherPlugin)).to.be.true + + // Install second plugin by a local tarball + await runCommand(`plugins install "file://${pluginLocalTarball}`) + const {result: secondResult, stdout: secondStdout} = await runCommand>('plugins') + expect(secondStdout).to.contain(pluginShortName) + expect(secondResult?.some((r) => r.name === otherPlugin)).to.be.true + expect(secondResult?.some((r) => r.name === plugin)).to.be.true + }) + + it('uninstalls all plugins', async () => { + await runCommand(`plugins uninstall ${plugin}`) + await runCommand(`plugins uninstall ${otherPlugin}`) + const {result, stdout} = await runCommand>('plugins') + expect(stdout).to.contain('No plugins installed.') + expect(result?.some((r) => r.name === plugin)).to.be.false + expect(result?.some((r) => r.name === otherPlugin)).to.be.false + }) + }) + describe('non-existent plugin', () => { it('should not install non-existent plugin', async () => { await runCommand('plugins install @oclif/DOES_NOT_EXIST') From a8aa113ecb42d903a29cd6bf1dbc50cfdb20f779 Mon Sep 17 00:00:00 2001 From: Jamie Feingold Date: Thu, 9 Apr 2026 13:54:19 -0500 Subject: [PATCH 2/6] fix: sequential plugin installation now works @W-21915680@ --- src/plugins.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/plugins.ts b/src/plugins.ts index 8bcfd7d2..75d98a0d 100644 --- a/src/plugins.ts +++ b/src/plugins.ts @@ -165,6 +165,10 @@ export default class Plugins { const normalizedUrl = npa(url) const matches = Object.entries(dependencies ?? {}).find(([, npmVersion]) => { const normalized = npa(npmVersion) + if (normalized.type !== normalizedUrl.type) { + return false + } + // for local file paths if (normalized.type === 'file' && normalized.raw) { return parse(url).base === parse(normalized.raw).base From 06788880fc483f61b87f19a0fbb9c83bacf39d46 Mon Sep 17 00:00:00 2001 From: Jamie Feingold Date: Thu, 9 Apr 2026 14:23:20 -0500 Subject: [PATCH 3/6] fix: improved test coverage for sequential plugin installation @W-21915680@ --- test/fixtures/oclif-plugin-update-v4.7.31.tgz | Bin 0 -> 28442 bytes test/integration/install.integration.ts | 31 +++++++++++++++--- 2 files changed, 26 insertions(+), 5 deletions(-) create mode 100644 test/fixtures/oclif-plugin-update-v4.7.31.tgz diff --git a/test/fixtures/oclif-plugin-update-v4.7.31.tgz b/test/fixtures/oclif-plugin-update-v4.7.31.tgz new file mode 100644 index 0000000000000000000000000000000000000000..cceaff28be4f05d94c142a4e7d07a4e0febb421f GIT binary patch literal 28442 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�e&PVCS`e=fD4Y0M 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 N{{bl3vz7o70s!Exx^Msh literal 0 HcmV?d00001 diff --git a/test/integration/install.integration.ts b/test/integration/install.integration.ts index 6baf7a64..b0f83251 100644 --- a/test/integration/install.integration.ts +++ b/test/integration/install.integration.ts @@ -23,6 +23,16 @@ describe('install/uninstall integration tests', () => { const otherPlugin = '@oclif/plugin-search' const otherPluginShortName = 'search' + const yetAnotherPlugin = '@oclif/plugin-update' + const yetAnotherPluginShortName = 'update' + let yetAnotherLocalPluginTarball = resolve(__dirname, '..', 'fixtures', 'oclif-plugin-update-v4.7.31.tgz') + // Normalize the path to ensure Windows compatibility + .replaceAll('\\', '/') + // If the path starts with 'C:', that needs to be removed + if (yetAnotherLocalPluginTarball.startsWith('C:')) { + yetAnotherLocalPluginTarball = yetAnotherLocalPluginTarball.slice(2) + } + const tmp = resolve('tmp', 'install-integration') const cacheDir = join(tmp, 'plugin-plugins-tests', 'cache') const configDir = join(tmp, 'plugin-plugins-tests', 'config') @@ -181,28 +191,39 @@ describe('install/uninstall integration tests', () => { * and then installed a local tarball whose package name is alphabetically after the previous one, the local tarball * would silently fail to install. */ - it('handles local tarball installed after simple plugin name', async () => { + it('handles local tarballs installed after simple plugin name', async () => { // Install first plugin by its registered name await runCommand(`plugins install ${otherPlugin}`) const {result: firstResult, stdout: firstStdout} = await runCommand>('plugins') expect(firstStdout).to.contain(otherPluginShortName) expect(firstResult?.some((r) => r.name === otherPlugin)).to.be.true - // Install second plugin by a local tarball - await runCommand(`plugins install "file://${pluginLocalTarball}`) + // Install a second plugin by a local tarball. This one is alphabetically after the first one. + await runCommand(`plugins install "file://${yetAnotherLocalPluginTarball}"`) const {result: secondResult, stdout: secondStdout} = await runCommand>('plugins') - expect(secondStdout).to.contain(pluginShortName) + console.log(`stdout: ${secondStdout}`) + expect(secondStdout).to.contain(yetAnotherPluginShortName) expect(secondResult?.some((r) => r.name === otherPlugin)).to.be.true - expect(secondResult?.some((r) => r.name === plugin)).to.be.true + expect(secondResult?.some((r) => r.name === yetAnotherPlugin)).to.be.true + + // Install a third plugin by a local tarball. This one is alphabetically after the second one. + await runCommand(`plugins install "file://${pluginLocalTarball}`) + const {result: thirdResult, stdout: thirdStdout} = await runCommand>('plugins') + expect(thirdStdout).to.contain(pluginShortName) + expect(thirdResult?.some((r) => r.name === otherPlugin)).to.be.true + expect(thirdResult?.some((r) => r.name === yetAnotherPlugin)).to.be.true + expect(thirdResult?.some((r) => r.name === plugin)).to.be.true }) it('uninstalls all plugins', async () => { await runCommand(`plugins uninstall ${plugin}`) await runCommand(`plugins uninstall ${otherPlugin}`) + await runCommand(`plugins uninstall ${yetAnotherPlugin}`) const {result, stdout} = await runCommand>('plugins') expect(stdout).to.contain('No plugins installed.') expect(result?.some((r) => r.name === plugin)).to.be.false expect(result?.some((r) => r.name === otherPlugin)).to.be.false + expect(result?.some((r) => r.name === yetAnotherPlugin)).to.be.false }) }) From 12e72a51ddca307f67aad281d05f9cfe99746140 Mon Sep 17 00:00:00 2001 From: Jamie Feingold Date: Fri, 10 Apr 2026 13:40:17 -0500 Subject: [PATCH 4/6] fix: removed errant console.log @W-21915680@ --- test/integration/install.integration.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/test/integration/install.integration.ts b/test/integration/install.integration.ts index b0f83251..c1c06904 100644 --- a/test/integration/install.integration.ts +++ b/test/integration/install.integration.ts @@ -201,7 +201,6 @@ describe('install/uninstall integration tests', () => { // Install a second plugin by a local tarball. This one is alphabetically after the first one. await runCommand(`plugins install "file://${yetAnotherLocalPluginTarball}"`) const {result: secondResult, stdout: secondStdout} = await runCommand>('plugins') - console.log(`stdout: ${secondStdout}`) expect(secondStdout).to.contain(yetAnotherPluginShortName) expect(secondResult?.some((r) => r.name === otherPlugin)).to.be.true expect(secondResult?.some((r) => r.name === yetAnotherPlugin)).to.be.true From 3217be09ed0503edccf45038cf5091e37cfb361a Mon Sep 17 00:00:00 2001 From: Jamie Feingold Date: Tue, 14 Apr 2026 09:42:33 -0500 Subject: [PATCH 5/6] fix: tarballs properly installable @W-21915680@ --- test/fixtures/oclif-plugin-update-v4.7.31.tgz | Bin 28442 -> 0 bytes test/fixtures/oclif-plugin-update-v4.7.32.tgz | Bin 0 -> 28524 bytes test/integration/install.integration.ts | 2 +- 3 files changed, 1 insertion(+), 1 deletion(-) delete mode 100644 test/fixtures/oclif-plugin-update-v4.7.31.tgz create mode 100644 test/fixtures/oclif-plugin-update-v4.7.32.tgz diff --git a/test/fixtures/oclif-plugin-update-v4.7.31.tgz b/test/fixtures/oclif-plugin-update-v4.7.31.tgz deleted file mode 100644 index cceaff28be4f05d94c142a4e7d07a4e0febb421f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28442 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�e&PVCS`e=fD4Y0M zF(o^q`5+wAEO(s=y|j%)K@!>7+2Pe~_>wT`bF6RE3QRDIZcV=nYbuR0x}5T zfqmSDgEC_VX6L-h>LsTZ9EA`EX34TqccOhFtrKVh$Ejfv{~iMM0mjNV(vO&C)@LPG zkA*M)SvaFEtJ7jXINT~-SN=8#B%{eKb4}|cPkfB@rBhcB{cD1jO5D(pq;y!MU^mJV z$fD&9Vd1$*WS6cOEJs`%v2BAfGR?B96CnZP>*Ow=QaCcsAWAYjC`hqx1P@eNU{E^K zWDbnv0Y)KukU4FvEO@0-p2LmJxXa7@$+59kP%3jPU2w32B&MWfgn}Y6MAS{t=Yc0h zt7(}3?57aRN`Z%oE7+9)VbSPzrJ*|lnt`j3pOXuUfetY4Wtc;BCAd@0bmf;k5K9FZ zALpIvz_jz92$*okDxekTzuxA?V^jb0_+J0>bv}9WVKF-7(MP#$ah^6n;3h{i7UD}R zMX(Ke&$YPR`kyU(?!zIqKjaTm!~q?JF%4J=+--YCHEu#tQ*FVa;8AG~;HrY`kau*L zq`@<(bi#iv`lZOvGVYh3a`L6T2Ii{xX^73IEyn%OmcwVNKXTv=`<7Lw#WQCGZ$S7d|XCi5o(rog=f?s&3%18kkuO}7!vap(VlI(*l5XNKK@#0<~ z_&J}A{@=9(x>b zfbDCyvNzRW_Dv0@d^B-~xUq89WVxqt0hlXBqww+!bUu7S-58{4aTnzHY3g4&@+8OA zfQJ~^3KVJ?eHA5s?#9Iw6loAGI&ga}@*Nq#;U1d@-C0$&2ju{x+Z9VQJsWRLvg_~?+47Zshy_ZFZaSbpy? zI83CwL>LF*kYRXHZhx*8h1Q5fYkbzPZ{wDC)tklZErn*qCmGfwu9WcdJL|aZCtTNt$u39YX>hLl|iujD`+V=3lzL%k@ z*DEePMiGJRrnx(?ER8;+VL)bIyg3*cD$Y2`F&jv#zLSh4s&(-$nwy(Z!etc*pOj+P$# zqO8xr;M>F1Nn=|hL%c1er85JkqJ)+FM9MaV^@8hWkHEDP=?nEEbZ72a*=+T4%8y{@ zT^+@uD937B@9mF2u$#)%TBcW{yBgDZeeiOh-|W8p_|yI|#H<9qLr^X1kUkl3aNwOP zf%vs+4w5DY)GZfMQF|+R;ZUVT3?{j*GfOF#Bta0A3#**+D!x>#*pQ+0R&)HfV|e9V z&kDqY>C*Ze9R zZ0(viw!rAFqojy2q(64l{}8WTAK_yH-Y0sMxtQAWkU~3c;`i8 zPQl~6@T2Go?q66`FRxdR%FAT2KEaghmvB<$v zQEwA!_&EUgi7qjjXN7BcQJ5May^?HWO=KNriJFMtu6=h;o9Xuc8Vl}ztiC) zA<1ae$Y_qj1SfX%GN&;f)*uJ9Ir@MWJ3XGGA#Abp;D3YJI;JifP5j|`A3l@}`NN0v zFopziaBq?aj~augmNhI@k}&8t0)10b+I>WL(1;++P-7D(odRO1WLbx1Lw`oeqwW&S zeEUte$kOh471im=b=PJwAH>?#2F2^TXQp56_QZe`LQ; z*UuK<0R1ibc>;&UHI@uq#V>WR-297#ps%~Yf~TZ2Ax&PqNzR^k!UHaLY!7_Pp@B75pUhUHvYwkC7y!6loA#Z+8tr;sw_NAAbVRM@+TWYz8ZVb9 z+j6T{Xzi{5dN9QpZ%M#4C?TcyolRwypiv4)2SfTK~#X1*gmTP;!HR5o#D7RxsONr8Y!O`!lC z$b5~009vyP!@>+1P$6-EUDyP_WlFbt7Ais{8t0d)(yjuQ46ex3TtZ_e?uJ-O3!751 z;SZ)U%6<;>i3H512ve`rZ6nY%*$jME+Jn%g?lno1B=6TOMA_g%>$}?}DV-*Bn&ESP zMOHQlvawaG`{8{&Lk+@95XDUa+eY+M zUE!#rO(v>FnQ4Gk9J?cLh8VUf_kd|3j@%LIWh`^9YL?TfY;7g=u994`!mhKp^e+4~ zu2^+e2{xDfmHOQ-cQL{9HLh~72m~gU#11^n1N$hX0V!teDN4ZY)ymB?tGzF>p;Mnc zu}=Xmd_9tZ<->BGS=4pv2Ath+_wi-LuGZaITUl7@-(O@dx?Mx^?Zosl??hot$<)8> z%>2}!s+8>Zr%wf{+us4OtNOKTw5t&Mf!2cQOjx4O6)dC@McjCyx*yK_aMpK->yYob zWriz(`;Is*M?30&-W3zO)vsM?0!aPT#a~AHgM4E#-?k7D5oG&$90)6VVYaPI$Z}ne z!nJjVSp|`cYcv;E7Ph9vy{)~A@=&ffzo;y!C3o3 za5L}k|8j7A;+Q0^+r?YvESaL&X~y3v=2Ti990|UoJf%osiI0+w*-kjZcZ2cC--$n) z(Kz$SOB&G}PpI%5a7x)U*-uM4Qa(NPSZ_-&$LvGY$Vw1z88aLP+LKu(>#jk+rNP)++A%M>$v9EpjF z9g%g8rKv|coU}nPjX-N=V7xVD9cW9()r18O3(7O1PMbL581J-UK0#sCS-Y0T32!4m zA03C1kcNmUKfU%7^)ijDy#a4;`5gPpZ&$oms` z>2}Ely!$HeY0(`9cXJWvVI*&A!wk-u{7pz{5{%|eimW7Tn{@Ij4*-gXH#ej4fdj=L zbcpkTXroOWp6h5-XDZ1JGGA9|f|r{rIt*QZ(NoCMl88+6g zr(T{M93KhSeH4-zgBa)xn4eV)*2@mf(`HI%H>FjpyIrSemY+|SXa7#EnTWs6q%CPF{+E#UUo zH3tBt1knAh^-YjUlw-lWcOMUr4nJ=E^2^7~Uw--cZvXi0(c$sFVOd$R_yLn^Xsu5U z;yF05%eR$EOAPf8X!Bl`46Je}FK1`T>AaTnjDN?-8ynk?;V;!XbE^57aVPZOnf3Ab zce1yq;<*%Rh4pw-Yqk2NR<#@JGGf4lGNHe(J71mYC z^XS^jglcw3)1+!O+z8)^Z_{L)(hS54@Jh$OE%yf16GKH^D{6Z)nhu3hrB^8iADT!B zzaZJIm#2Q5jcA&JUa4y>k>q~VT96KTh2blZ5zjo&8(914|H*z74z4R|I3iP;6;ru} zx%Nv=t4(mPu)tE%w8@y3gPJI|M+Pr>tEg<}4Kqgqc~cC^TuU+SY{%2^#fF_aHxt2o zEfs+sl`2`KHLxFZOBVv<=}NZb-YqXr!>J426+#nTuI(k~Z?1+voK4>($){olrsF74 zT27L@Uv(07-o4@oTe`)>v*|lJ4l}5}w?`bI)kt|F6!)f#QX33mB#d@0InoJj`&rAG{CVY4^j2Kh9k5 zyB7NkjA5z<1fr!q@z-hZjP%7oZX$kSpd9qt!-qEGA?R%OZFgr%Y#NU_tg^qSG|T*P zHNYAX2OC8h#CodJ29eqbIO_eJZaZ-w%=@c;y8l1;3g3MI;8pQ|x2o}fH@EKNzkHQX zx{iY>NoMh(Hv*|h|7&L3FuQStUs*BAz;f48?>YF2KjX1k{Cpych|`Ck_ZgH=8;ji~ z9iW0syAJ@oD*n?(uM+>iw|@Wr$5;83z`Q&* z28)LAc|kC0BVO>mYQ%8hG^Aw}&X^Q-LyIB1C~2Ap&)UQ(-6|F}P%#3fM}-|(9jgPW zQ5Dv<`6T1PFtUoPGh$b|H*={+wVA`}tlA8ZVGtx0Zm97W4>Z9}`R+Ag_HB$TW@yN! zhD$K1A*X^ucP~cAp|FL8HM9x*Bm-(znxC-8(_9vVQp9R)waHYye?}Dt^lE4-JxmnG zZx-d@uigj$sh{=zw>u65xH|ry8UKBIYx|!5f0a*(|AcejCI@j&(~%D`F6@Dzq}+v? z1}!iPZ-k(;RFH{AMZ|M>O?^oGbeyS?zWGVNuk`FaPsh)yQ2^U!xW6L)6ekz)E{|uo zc&hdj@W)`$m(LU>!y)1Ck?OE8fc5h17+cfW;`B^wbrkvf@Ji2FZG=BCVf0nxkDqbD zbXPH(oBLq|8kAeq;pSL3E)S1lrtBj47PaOyJx{V*)?ogWN(~m45G&ZGSt$ z!x-xGoEEWL73S}G$!)%+^#6{I0?X-tZ)0P-XVU)-c>nXB{(t$8(|_=?8|H%Chw=Xu zVM^03OI9WP=jk|Wm&^ioaCVcRfwMG>^AohFG)f9Jvl{rXF4~{)rCAa)@+ov;brgfV2&uN0ve$e zf^_TV;H(ZL1ZEb-y*>||g*v?I?Q^vW0Eshq4LWWb5b5sYQOoKk4)%hp0*0BE9|AeD zie?c|sZP-PN7w{dv-`{21XBQOJ+0}br7S(vIxyEfr(`n_6Q3Z&H0aBDDc!iyUWA2K zLRU**SdP6RQQ4j=H@w9&SGE3N)>g%(H%y`=1v4jyId=Yle!-<(d21oPN43SG0h zG^Q&Im)gWB=LLQV~3M>izJf}dShyE-;Mz;4vBq z|HgR76**7x3GwAxgj0@W*q&px4G})xjC^`!%vQs|Q+YOoQ*tRETFp88L>-u3gbQA* z9p;p+<;%^+N+`^Z>~ZQ3_gJ(1RgwyyTr2%2eI1=u>(J7TRp%$AWs+=oxnozFyABw} zF(XMSKC#?}D zBN~tM$wCg=h~KUR7ZJ=|k!%4W@~4g%A^O*(2BGHW5)} z)mZdI#G}7cb49&*$Z?G{9=o31;%O#~9PiyOcn^TBAxO0n4GGR1M6Te^SizEq#j1pj zB9by$iF)D z(bLzR`%yv5%^)7~#N-88yDr5DNI3&e>sC@1$V?pvtcm&cu0bhova@T1(HlsgHYYQ7 z!g5vJQUcM)`>6ABs~gIg@07xfP;(hDaaCL_vuC{(l)7^Tmu-UR>61C!Ijj3Ene}c_B#QOKXdO5wy++A4w_V(w38=)bL-&%pysrAeaUSPri;O|vn+Vr4#J#XR3f zEkjr=Bm8M$YBW)hN32=s55~gYm13#v23}2(!DG;;eFiZ;1E!x7PT$5s{;6Kt62Imo zEvW0fJUD*-!<+q&&)=UMv3NF4%idP$8O=QBQ2Wqlj>qDWHx>X=b1r28c8Gehg$dvs zB~w-fBhcS$sf$TaY9f|bF3Z)`kCO3CoA9D!Y&htB$+xCVNcZEpc3bCpo_yvwo|lsO zX89K1MoT4#OY^qd=1JURGj|M=wjPj8J%3wie3$6#LUR0*h4 z!d)>U!!9S(&{8I%>*Grqo210ZA*BHgw408)xQk{G3w;3@+B*oL5%^c2Md;}{<}R}Z z`Ktz66m4x)LO#8K7v9mQbcp6t;;4l$zq32QxgWv%AFRV7MV+ecj-!kXQq_FyN!3R= z?mbUbsSZ`(8`xfebjC31Gjy7e7(HdK4ldbI!gs3F*hCGM%9s5S9UZx)G?JBO!f zHOd1i-SY75Jr+P}|L|!4@We8$B|XF%_^_TmWT)~dhiJ_@GFw=Yg|c;+9eykQ22t{ahYFM|AsptS9fI%bE%>vE#g>t58iYJ(6_4M8NdTB zpu~f(A(l4 z5%N)xY(E{(d8o2pn{0|VeBcS65AmR-fh?m$i~=5<@n?XDMVb&h0MX!bAll@#d@{pP zA#u*sKn`#rKAgZsnh2A}A73cB0*&W=oePzDSssK5UQVOAfYT--ssj60xxeu|&(*sC zZ7azpG?JE8qz`(;>dT!FPXV_o1W{oA4wCat!~ADIh52`>vf@hDg?p9M{dfP}fB)v+ N{{bl3vz7o70s!Exx^Msh diff --git a/test/fixtures/oclif-plugin-update-v4.7.32.tgz b/test/fixtures/oclif-plugin-update-v4.7.32.tgz new file mode 100644 index 0000000000000000000000000000000000000000..70e40fdeb8e46268975e9d0689505954c22fe83b GIT binary patch literal 28524 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 literal 0 HcmV?d00001 diff --git a/test/integration/install.integration.ts b/test/integration/install.integration.ts index c1c06904..82ad76a0 100644 --- a/test/integration/install.integration.ts +++ b/test/integration/install.integration.ts @@ -25,7 +25,7 @@ describe('install/uninstall integration tests', () => { const yetAnotherPlugin = '@oclif/plugin-update' const yetAnotherPluginShortName = 'update' - let yetAnotherLocalPluginTarball = resolve(__dirname, '..', 'fixtures', 'oclif-plugin-update-v4.7.31.tgz') + let yetAnotherLocalPluginTarball = resolve(__dirname, '..', 'fixtures', 'oclif-plugin-update-v4.7.32.tgz') // Normalize the path to ensure Windows compatibility .replaceAll('\\', '/') // If the path starts with 'C:', that needs to be removed From a27f90e50e21a0149a313d726a88d2d9cd42c8f7 Mon Sep 17 00:00:00 2001 From: Jamie Feingold Date: Tue, 14 Apr 2026 09:42:57 -0500 Subject: [PATCH 6/6] chore: fixing git2gus syntax error --- .git2gus/config.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.git2gus/config.json b/.git2gus/config.json index 5314c7e8..55503790 100644 --- a/.git2gus/config.json +++ b/.git2gus/config.json @@ -5,6 +5,6 @@ "enhancement": "USER STORY", "bug": "BUG P3" }, - "hideWorkItemUrl": true, + "hideWorkItemUrl": "true", "statusWhenClosed": "CLOSED" }