-
-
Notifications
You must be signed in to change notification settings - Fork 34.2k
Description
Is your feature request related to a problem? Please describe.
Presently, making a small contribution to node.js core is particularly challenging. There are a number of contributing factors, but a primary one is simply having to build Node.js from scratch. For someone unfamiliar/new to Node.js, this can be particularly challenging compared to basically anything else in the JavaScript ecosystem.
Describe the solution you'd like
It would be a nice contributor experience enhancement to provide a pre-built image (containerd or Docker?) or some kind of cache that would help alleviate the pain of needing to build completely from scratch every single time.
One theoretical manifestation of how this could work:
- Nightly, build a Docker container.
- This Docker container includes all necessary tools / nice-to-haves for building Node.js.
- This Docker container builds Node.js.
Containers provide some nice benefits:
- We'd potentially be able to enhance many contributors' workflows.
- We'd enable a better experience through cloud-hosted developer environments like Codespaces that have the option to build from a container.
- We could include node-core-utils and potentially enhance it further with something like a contributing checklist to ease first-time-contributor or early-contributor burden, effectively automating what's codified in the PR guidance.
Or, we could do something in the vein of a cloud cache (in the vein of goma). While these require immense work, they are extremely useful and don't require you to run Docker. If there's more interest in this, I'm happy to see what resources I can pull from Microsoft (including potentially open sourcing some things) to enable it.
Either way, this is a build feature that seems to go in a positive direction that helps both new and existing contributors. Would love thoughts, if there are any.
Describe alternatives you've considered
Doing nothing: I mean this works but also retains an unnecessary bad experience.