-
Notifications
You must be signed in to change notification settings - Fork 31.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
build: stop distributing Corepack #57617
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there a reason to keep the ability to build node with corepack? that doesn't seem in line with the TSC decision.
configure.py
Outdated
default=None, | ||
help='do not install the bundled Corepack') | ||
help='do install the bundled Corepack') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
help='do install the bundled Corepack') | |
help='bundle Corepack') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
help='do install the bundled Corepack') | |
help='do install the bundled Corepack (experimental, will be removed without notice)') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"do install" at the front of the sentence doesn't read like proper english to me, and there is no "bundled corepack" anymore to install - this flag causes it to be bundled.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree that "bundled Corepack" is weird, maybe "vendored" would be more appropriate?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
the problem is the "the" - there is no "bundled corepack" anymore. the flag causes corepack to BE bundled, and "bundle" is a verb, which is why "bundle corepack" seems like the best/proper phrasing to me (with or without the experimental note)
What makes you think that?
Yes, so we can keep it up-to-date across the release lines |
My read of the TSC decision is to not include corepack in any way whatsoever in 25+, not to make it optionally bundled and just change the default. iow, it's meant to be removed entirely.
This commit will only be landing in v25+, though. Won't existing release lines lack this commit, and continue to build it with corepack by default? |
No, it was very explicit that the decision was about including (or not) a
That's correct, and in line with the TSC decision linked in the OP. |
Right - node < 25 should continue to bundle corepack unchanged. node 25+ shouldn't even offer the option to build it with corepack, because the TSC decision was to "not include the corepack executable" - not to "not include the corepack executable by default". If the option to build node with corepack remains in 25+, more people may be encouraged to compile node themselves rather than using the official binaries, which would magnify support burden for the project, and proliferate variants of node which could cause compatibility concerns down the line. |
It's true that there's a risk to see unofficial distributions like the one from homebrew to keep including corepack. But this PR can be followed up by another one that removes it completely. |
That's true, it just seems like a silly unnecessary step :-) |
Commits need to land on |
|
I mean we could keep corepack in the deps folder but remove the ability to build it. This allows the automation to keep updating it and just cherry-pick commits into old release lines and at some point we remove it completely. |
Should we care? |
I think we should |
I also already explained above why we should care. |
I'm not convinced. If we want folks to stop using Corepack, we should spend time on building an alternative, not spend time on making their life harder. Also I'm not even convinced it would be more effective: I'm a maintainer of Nixpkgs Node.js packages, and I can tell you it is as easy to pass a configure flag than it is to revert a specific commit for redistributors, so I'm afraid your concern is not addressable. |
I'll ping @nodejs/tsc for visibility as I think it's worth being aligned on this decision |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Whether to remove the ability to build corepack is a separate decision. This change is already a step in the right direction and is aligned with the vote results, so LGTM.
Whether to remove the ability to build corepack is a separate decision. This change is already a step in the right direction and is aligned with the vote results, so LGTM. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
It's fine to land this as an incremental step, but I don't think it's a separate decision - the ability to build node with corepack is part of what the TSC vote decided to remove. |
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm
Refs: nodejs/TSC#1697 (comment)