Description
Below are the questions I think need resolving in order to wrap up the current Corepack debate.
I gather that some of the members of the TSC are a bit exhausted by all of this; rather than every one of these decisions being handled at the TSC level, another option is to delegate this to the @nodejs/package-maintenance team which has recently suggested chartering with package maintenance being within their scope. We could let them try to address as many of these issues as possible, and either vote or kick back to the TSC the questions that they can’t reach consensus on.
These are the questions/issues that I think need resolution:
-
Do we want to allow “placeholder” executables in general? doc: add policy for “placeholder” executables node#52107
-
If we allow placeholder executables in general, or particularly for package managers:
-
What rules, if any, should govern which projects get placeholder executables?
-
What semver rules would apply to them?
-
How will we handle security vulnerabilities reported in the tools that the placeholders download? (Already addressed by doc: clarify Corepack threat model node#51917 if we go with the Corepack approach.)
-
Do we want to ship placeholder executables for Yarn and pnpm specifically?
-
-
If we want to ship placeholder executables for Yarn and pnpm, should these executables be:
-
Symlinks to Corepack (build: enable
yarn
andpnpm
Corepack binaries by default node#51886)? -
Download scripts for the referenced tools, possibly including Corepack if that’s the preference of the team maintaining the tool (Proposal: Alternative to enabling Corepack by default node#51931)?
-
Managed by some other version management tool (asdf, Volta, etc.)?
-
Managed by a new version management tool that we develop that can also manage runtimes (as discussed by the package maintenance team)?
-
-
If we want to ship executables for Yarn and pnpm that are symlinks to Corepack, is Corepack ready to be “enabled by default” to achieve this?
-
If we feel that Corepack is not yet ready to be enabled by default and/or marked as stable, what of the following does it need to be considered ready:
-
Does it need a design document and/or documented goals and use cases?
-
Does it need support for the
"devEngines"
proposal once npm has done so (estimated to happen in April 2024)? -
What other issues need addressing before it can be enabled by default or marked as stable?
-
-
If we ship executables for Yarn and pnpm that are symlinks to Corepack, what if either of the Yarn or pnpm projects request a change to this arrangement in the future; for example, if the pnpm team desires the
pnpm
executable stop using Corepack and instead becomes a script to download and run the pnpm standalone installer?
I think this list includes all the concerns raised in nodejs/node#51886, please let me know if I’ve missed anything.
If the decisions for some of the above questions take us in a direction away from enabling Corepack by default, then the question would become what the future of Corepack should be (nodejs/node#51981); but I don’t think we need to contemplate this unless or until that happens.
@nodejs/tsc @nodejs/corepack
Activity