[Pkg-javascript-devel] Bug#980316: about corepack and yarnpkg
Paolo Greppi
paolo.greppi at libpf.com
Mon Jan 24 09:01:30 GMT 2022
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.
> 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.
Paolo
More information about the Pkg-javascript-devel
mailing list