Skip to content

Switch to node-build #72

Closed
neersighted wants to merge 3 commits intoasdf-vm:masterfrom
neersighted:master
Closed

Switch to node-build #72
neersighted wants to merge 3 commits intoasdf-vm:masterfrom
neersighted:master

Conversation

@neersighted
Copy link
Copy Markdown

@neersighted neersighted commented Apr 15, 2018

This switches asdf-nodejs to use node-build as the backend. This fixes support for platforms that do not have binaries, and removes the somewhat problematic GPG verification code.

Instead, we rely on the hand-curated list of definitions that are maintained at the node-build repo. This also makes listing possible versions of node much faster, and introduces support for io.js (if anyone still needs it, I suppose) and other forks.

@Stratus3D
Copy link
Copy Markdown
Member

Awesome! I'm going to test this out locally for a couple days before merging.

It looks like the build is failing due to a file being missing:

/home/travis/.travis/job_stages: line 57: ./bin/import-release-team-keyring: No such file or directory

Any idea what's wrong with it?

@mikemorris
Copy link
Copy Markdown

@Stratus3D Looks like this line just needs to be removed from the TravisCI config

- ./bin/import-release-team-keyring

This switches asdf-nodejs to use node-build as the backend. This fixes
support for platforms that do not have binaries, and removes the
somewhat problematic GPG verification code.

Instead, we rely on the hand-curated list of definitions that are
maintained at the node-build repo. This also makes listing possible
versions of node much faster, and introduces support for io.js (if
anyone still needs it, I suppose) and other forks.
@neersighted
Copy link
Copy Markdown
Author

I've rebased this so it can be considered again. I still strongly recommend node-build over using the official binaries as building from source is more compatible and standard with most other version managers.

@Stratus3D
Copy link
Copy Markdown
Member

@neersighted Thanks for taking the time to rebase this PR. Right now I'm a little hesitant to merge this as it doesn't look like node-build is widely used. I like the idea, but I'd rather not merge until there is more support around node-build. If node-build isn't widely used, we may up having to maintain it as well, and that lessens the benefit of removing this logic from asdf-nodejs. What do you think?

10 similar comments
@Stratus3D
Copy link
Copy Markdown
Member

@neersighted Thanks for taking the time to rebase this PR. Right now I'm a little hesitant to merge this as it doesn't look like node-build is widely used. I like the idea, but I'd rather not merge until there is more support around node-build. If node-build isn't widely used, we may up having to maintain it as well, and that lessens the benefit of removing this logic from asdf-nodejs. What do you think?

@Stratus3D
Copy link
Copy Markdown
Member

@neersighted Thanks for taking the time to rebase this PR. Right now I'm a little hesitant to merge this as it doesn't look like node-build is widely used. I like the idea, but I'd rather not merge until there is more support around node-build. If node-build isn't widely used, we may up having to maintain it as well, and that lessens the benefit of removing this logic from asdf-nodejs. What do you think?

@Stratus3D
Copy link
Copy Markdown
Member

@neersighted Thanks for taking the time to rebase this PR. Right now I'm a little hesitant to merge this as it doesn't look like node-build is widely used. I like the idea, but I'd rather not merge until there is more support around node-build. If node-build isn't widely used, we may up having to maintain it as well, and that lessens the benefit of removing this logic from asdf-nodejs. What do you think?

@Stratus3D
Copy link
Copy Markdown
Member

@neersighted Thanks for taking the time to rebase this PR. Right now I'm a little hesitant to merge this as it doesn't look like node-build is widely used. I like the idea, but I'd rather not merge until there is more support around node-build. If node-build isn't widely used, we may up having to maintain it as well, and that lessens the benefit of removing this logic from asdf-nodejs. What do you think?

@Stratus3D
Copy link
Copy Markdown
Member

@neersighted Thanks for taking the time to rebase this PR. Right now I'm a little hesitant to merge this as it doesn't look like node-build is widely used. I like the idea, but I'd rather not merge until there is more support around node-build. If node-build isn't widely used, we may up having to maintain it as well, and that lessens the benefit of removing this logic from asdf-nodejs. What do you think?

@Stratus3D
Copy link
Copy Markdown
Member

@neersighted Thanks for taking the time to rebase this PR. Right now I'm a little hesitant to merge this as it doesn't look like node-build is widely used. I like the idea, but I'd rather not merge until there is more support around node-build. If node-build isn't widely used, we may up having to maintain it as well, and that lessens the benefit of removing this logic from asdf-nodejs. What do you think?

@Stratus3D
Copy link
Copy Markdown
Member

@neersighted Thanks for taking the time to rebase this PR. Right now I'm a little hesitant to merge this as it doesn't look like node-build is widely used. I like the idea, but I'd rather not merge until there is more support around node-build. If node-build isn't widely used, we may up having to maintain it as well, and that lessens the benefit of removing this logic from asdf-nodejs. What do you think?

@Stratus3D
Copy link
Copy Markdown
Member

@neersighted Thanks for taking the time to rebase this PR. Right now I'm a little hesitant to merge this as it doesn't look like node-build is widely used. I like the idea, but I'd rather not merge until there is more support around node-build. If node-build isn't widely used, we may up having to maintain it as well, and that lessens the benefit of removing this logic from asdf-nodejs. What do you think?

@Stratus3D
Copy link
Copy Markdown
Member

@neersighted Thanks for taking the time to rebase this PR. Right now I'm a little hesitant to merge this as it doesn't look like node-build is widely used. I like the idea, but I'd rather not merge until there is more support around node-build. If node-build isn't widely used, we may up having to maintain it as well, and that lessens the benefit of removing this logic from asdf-nodejs. What do you think?

@Stratus3D
Copy link
Copy Markdown
Member

@neersighted Thanks for taking the time to rebase this PR. Right now I'm a little hesitant to merge this as it doesn't look like node-build is widely used. I like the idea, but I'd rather not merge until there is more support around node-build. If node-build isn't widely used, we may up having to maintain it as well, and that lessens the benefit of removing this logic from asdf-nodejs. What do you think?

@mikemorris
Copy link
Copy Markdown

mikemorris commented Oct 23, 2018

https://github.com/nodenv/node-build was an underlying component of https://github.com/nodenv/nodenv, which is far less used (and possibly unmaintained?) than the two leading Node.js version managers (https://github.com/creationix/nvm and https://github.com/tj/n), but I don't know if either of those have abstracted out support for building from Node.js versions from source.

Regardless, updating the GPG keyring and quirks around installing/building Node.js version have been a significant pain point for migrating from other version managers to asdf, and it would be nice to delegate this responsibility to a project with more active support, while retaining the convenience of specifying and installing all exact versions of all languages via asdf.

@neersighted
Copy link
Copy Markdown
Author

Sorry all for the lack of replies, it looks like this issue got filtered to junk mail thanks to the duplicate messages.

node-build is not an especially active project, but it is actively maintained and tested across many platforms. It works well, and thus it is not any more active than it needs to be.

I don't currently use asdf, but I think that switching to node-build represents a major improvement; it is significantly more ergonomic than dealing with a GPG keyring, and provides integrity guarantees through hashes in the upstream repo. You do have to trust node-build upstream, but you have to similarly trust that the import-release-team-keyring script in this repo is legitimate as well, so I don't see it as a strong regression.

I can fix the conflicts in this branch if there is interest, but I can't really test myself as I've switched back to nodenv on all my machines. Still, if someone else would like to take up the work of porting asdf-nodejs to node-build, I'd be happy to advise them.

@AlJohri
Copy link
Copy Markdown

AlJohri commented Nov 7, 2019

Just wanted to point out that both node-build and nodenv seem to be up-to-date and maintained as of these days. Might be worth revisiting integration of node-build again. The GPG stuff is definitely a pain.

@quanganhtran
Copy link
Copy Markdown

I just recently installed asdf, and this is definitely a big obstacle to switching to it. For all the conveniences that asdf provides the adoption path is quite heavy with extra installations.

@Stratus3D
Copy link
Copy Markdown
Member

It may be worth revisiting this. Ultimately this project is in need of more maintainers than anything else. As I don't use Node.JS on a daily basis I'm not the best person to make decisions like this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants