[Pkg-javascript-devel] Bug#980316: about corepack and yarnpkg
Pirate Praveen
praveen at onenetbeyond.org
Mon Jan 24 11:32:38 GMT 2022
On തി, ജനു 24 2022 at 10:01:30 രാവിലെ +0100
+0100, Paolo Greppi <paolo.greppi at libpf.com> wrote:
> Hi all
>
> Il 09/01/22 21:59, Paolo Greppi ha scritto:
>> I stumbled upon this thread related to packaging corepack for
>> gentoo: https://github.com/nodejs/corepack/issues/76
>>
>> We now have node 16 in experimental, but our package does not bundle
>> corepack (as upstream does):
>> https://packages.debian.org/experimental/amd64/nodejs/filelist
>>
>> I propose that we create a RFP/ITP for corepack separate from
>> nodejs, with Conflicts: yarnpkg
>>
>> The corepack binary would install /usr/bin/yarnpkg pointing to the
>> corepack shims; this would allow Debian users who "use different
>> package manager versions across multiple projects" to happily
>> install random binaries downloaded from the internet if they wish.
>>
>> If we agree that we (as a distribution) need specific versions of
>> yarnpkg (for building other stuff, we need to keep one or more
>> yarnpkg packages in Debian, all with Conflicts: corepack + each
>> other.
>>
>> If we really want yarnpkg 1, according to my tests, the corepack
>> route is useless:
>>
>> docker pull node:16
>> docker run -it --rm node:16 bash
>> yarn -v # 1.22.15
>> # this downloads
>> https://registry.npmjs.org/yarn/-/yarn-1.22.17.tgz
>> # based on the versions / 1.22.17 / dist / tarball value in:
>> # https://registry.yarnpkg.com/yarn/
>> corepack prepare yarn at 1.22.17 --activate
>> yarn -v # 1.22.15
>> corepack yarn -v # 1.22.17
>> ls -l /root/.node/corepack
>>
>> total 2
>> -rw-r--r-- 1 root root 63 Jan 9 18:33 lastKnownGood.json
>> drwxr-xr-x 1 root root 14 Jan 9 18:13 yarn
>>
>> To "build" it quick and dirty we can download once and for all the
>> same pre-built binary that corepack would download, extract it and
>> symlink it to /usr/bin/yarnpkg (without shims); this package should
>> go to contrib since it downloads stuff from the internet during the
>> build, but would fix the issue of yarnpkg blocking the migration to
>> webpack5 and removal of node-request.
>> Or else keep alive the current version in main by just bundling into
>> it webpack4 and node-request.
>>
>> If we really want a new yarnpkg3 package, corepack is also useless
>> as it merely installs yarnpkg 1.
>>
I was able to build yarnpkg berry (it was at 2.x at that time) from
corepack repo.
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=980316#5 Are you sure
it longer works? This was actually suggested by upstream.
>> The upstream recommended way of installing yarnpkg 3 (get yarn 1
>> with corepack then yarn init -2 (sic!)) just downloads the current
>> pre-built binary (ATM
>> https://repo.yarnpkg.com/3.1.1/packages/yarnpkg-cli/bin/yarn.js,
>> 2199165 bytes) to .yarn/releases/yarn-3.1.1.cjs.
>> AFAICT this does not integrate with the shared package manager
>> versions stored in ~/.node/corepack.
>>
>> One way to "build" yarnpkg3 quick and dirty is to download once and
>> for all the same pre-built binary that yarn init -2 would download,
>> and symlink it to /usr/bin/yarnpkg (without shims).
>> Or if we want it in main we should replicate the way upstream builds
>> this yarn.js binary.
>>
>> Sorry for the long message, this is a mess!
>>
>> Paolo
>>
>
> the bugs related to yarn 1 are piling up, what do we want to do as a
> team on this ?
>
> I vote for keeping yarn 1 in the archive by bundling into it
> node-babel-eslint, webpack4 and
> node-request-capture-har/node-request. This would address #1002902,
> #1001630, #1000582 and #958686.
>
> BTW in the meantime nobody created a RFP/ITP for corepack: it looks
> like there's not so much interest for that.
We packaged some of its dependencies as part of last outreachy round
but could not finish it.
More information about the Pkg-javascript-devel
mailing list