Conversation
|
@citibeth -- I'd like to see node and npm happen. Are you still interested in this? Can I help, and if so can you summarize the state of the pr? |
|
George,
I haven't use Javascript myself; but the `node.js` stuff looks like "more
of the same": AFAIK, it's a language-specific package manager that
conflicts with Spack.
We have that on the Python side with PIP. The best way to go about it is
to not use PIP at all. For that, every package that one might need to
install from `PyPI` must be added to Spack. It's a bit tedious, but not
difficult. Especially since the `package.py` for each Python package is
essentially the same.
My assumption is that something along similar lines would work for
Javascript stuff, eliminating the need for `node.js`. As long as `node.js`
is involved and manages its own packages, it will always be a bit of a hack.
…-- Elizabeth
On Mon, Nov 28, 2016 at 7:27 PM, George Hartzell ***@***.***> wrote:
@citibeth <https://github.com/citibeth> -- I'd like to see node and npm
happen. Are you still interested in this? Can I help, and if so can you
summarize the state of the pr?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#2128 (comment)>, or mute
the thread
<https://github.com/notifications/unsubscribe-auth/AB1cdwXavcdkfoHsnSw-gYDgmzzvMycOks5rC3FogaJpZM4KgWm1>
.
|
|
@citibeth @hartzell I am not so sure we want to actually handle
So, based on this stuff, and the 350k package number, I don't think Spack should tackle wrapping the entire So, I'm inclined to put
So basically I agree with @hartzell on this one -- @hartzell @citibeth: opinions? |
|
@tgamblin -- I wasn't arguing for anything in particular [yet], just wanted to understand the status of this PR. @citibeth said:
I rather think that Spack conflicts with it. They're a large and successful community that has a toolset that apparently works for them. If they want to live with things like the leftpad mess, I'm not going to bother to try to fix them. There are upsides to their infra-choices too... My question is, what's the best way that I can support my developers who buy into that world, and what's the best way that I can install apps that require it. This is evoking all of the same thoughts that our Perl and CPAN and I would like, and do work towards, using tools like Spack to enable repeatable, well-behaved deployments. But there are languages and development practices that make it more trouble than it's worth (to me, at least). I'd be happy to adopt this PR, get it to the point where it builds and tests and ... and see what that leaves us with. I've never adopted a pull request before. Is there a well-principled way to get the branch into my own world and not loose the connection with the PR? |
|
I said:
More accurately (less confrontationally...), when I'm working with an "annoying" language but need reproducibility I've been solving it outside of tools like Spack, e.g. bootstrapping a |
|
@hartzell: I think we're on the same page here. I think viewing this as an ecosystem bootstrapping process is the right way to go. I would love to have one package manager to rule them all but I don't think I would like to maintain it 😄. I added you as a collaborator to Spack, so you can simply push to the |
|
So, I'm inclined to put node and npm in as regular packages the way
@hartzell <https://github.com/hartzell> recommends. FWIW, this is how
Homebrew does it -- allow npm to be installed and let it manage the js
packages.
I agree, that seems like the most reasonable thing to do.
BUT... it introduces the problem of, what if we have two JavaScript apps
that depend on `npm`-installed packages? That's what I mean when I say
something "breaks" Spack.
The best I can think of is the Spack user should be able to install
multiple `npm` instances, each one which will get its own software (and
software versions) inside. This can be done by adding an arbitrary
string-valued variant that has no effect on the build, but the user is
allowed to set.
|
9aff838 to
3b37ad6
Compare
Add a url_for_version method that understands the node.js site's directory layout. Get rid of the old digests, I'm starting fresh with the current release.
The node.js.org website points into the .../dist/... tree for its downloads. We should too. Also add a digest for the current LTS version.
3b37ad6 to
a30f4ce
Compare
|
Closing now that #2320 has been merged. Reopen if those packages aren't sufficient or need tweaks. |
A continuation of #1440