-
Notifications
You must be signed in to change notification settings - Fork 30.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
Discussion: moving npm out of the core repo #1419
Comments
That assumes the machine where configure runs can make outgoing HTTP requests. It's one thing I don't like about the ICU integration, because it's not necessarily true. Not many people need i18n but everyone needs npm; issues related to downloading are bound to pop up more frequently. |
we could still bundle it in source tarballs |
+1 to "out-of-repo, but still in source tarballs" option, though it would be up to person who makes releases to put it there. |
See also: #252 (original issue) I think I'm generally for this if it can be done neatly. |
Nice |
I am +1 on this change if and only if I'm not expected to do the infrastructural work necessary to make it happen. :D |
+1 for this. We would need to account for the currently floating patches. |
Ah yes. This would be much easier without those. Could we have a script that clones npm@latest-stable down and then uses @othiym23's stuff* to apply the patches? *I forget what exactly it is. |
my take-away from the brief discussion @ the TC call today was that ppl are generally in favour of this (although Ben has already stated his reservations about downloading) but that nobody is willing to put up their hand to do the work, neither I nor @othiym23 specifically. |
This would be far easier if npm's deps "just worked" for io.js General thought:
But, we have stuff to put ontop of that, so while maybe that could work, we'd need instead:
Maybe this is too simple, I'm not sure. |
npm is already shipped with all of its dependencies bundled, and has been since the beginning (otherwise it would be incapable of bootstrapping itself)
This is a very simple use of
Can you expand on what this might be? |
I moved stuff over from Here's how I created the patch series, and how I land new npm versions in io.js, for now:
That's the basic workflow. To create the patch quilt, I then did (the first time):
Then, to replay that later, I just do
Afterwards, I
There are additional steps you can take to let Automating that and incorporating it into the build process shouldn't be too tough, but it's more than I've got time to deal with. |
Doh. That will make things a little easier.. at some point. :)
Maybe something like maintaining an npm clone as a submodule with deps so that we can float patches, and publishing it to something like that. The point is to offload the patch business elsewhere still so that our build & users don't have to do it.
I'll warn you already; that will be from now on. :)
That's fine, thanks for the write up. I'll see what I can do I suppose. Also, really wish this could be done with just git but oh well. |
The way I was moving those changesets around before was just using |
Apologies, I probably should have poked my head into this earlier. If it's too late, feel free to ignore me! I'm not sure I like the I'd prefer a script –
This lets us:
Thoughts on this? |
So posterity, the route I was going to try implementing before this came up in irc is:
Now, since This probably means maintaining a clone of npm until npm works without patches. This is a temporary hassle, but once we don't have to patch npm, it would only be the above 3 points.
npm isn't really a dependancy per say. We don't actually use it in core, we just ship with it. (and should. we still would ship releases with it.)
If you are talking about patches to npm's deps, those would still be available on the temporary clone.
How does this apply to npm?
It still will once you have a version of npm. EDIT: updated for clarity |
I think there's generally a need for a tool that downloads new versions of deps and applies modifications to them – that way those modifications are local to our repo, versioned, and can be reviewed. It'd be nice if we could make upgrading deps as straightforward as running the tool with a depname and version, then issuing a PR with any new/changed modification scripts + the results of running those scripts.
The node package installers expose two executables –
This keeps all patches / modifications local to the context they are used in – io.js – instead of a cloned copy of the dependency.
A script could run to delete all image files out of the source tree after import, further reducing the size of a fresh clone. Or a script could run to ensure proper file casing. |
@rvagg do you still want this for a convincing reason? I'm basically getting "nah" for every option, and that the current state is o.k. (Which I somewhat agree with by now.) |
yeah, I never had a deep conviction about this, it's more of an ideal for me that we may work to one day, I just find the whole bundling process very noisy, particularly now with the pace of development on both projects. to be revisited one day! |
This is something that has come up in a few separate discussions I've had recently and each time we have an npm update PR all I can think about is all of the cruft we keep on adding to the repo which makes it take even longer to clone which adds to the burden of contribution; also the fact that the diff is impossible to read because of all of the bundledDependencies.
So I have three main questions:
configure
download and unpack the appropriate tarball for that version, similar to theIntl
download stuff or even simpler./cc @othiym23
The text was updated successfully, but these errors were encountered: