-
Notifications
You must be signed in to change notification settings - Fork 193
upgrade and add support for Node 10.2.0 #113
Conversation
I've seen some issues prebuilding another module for Node 10 because of changes to how gyp works, curious to see how this goes for keytar. |
Yep, this is what I've seen before:
I tried to get around it with this workaround (more info here) but ultimately I just had to make the CI machines run Node 10 for it to work. |
@daviwil I think that's a good motivator to upgrade the CI agents to Node 10 - we've got |
Yep, I think it's a safe bet to do that. |
42a5be1
to
9376f62
Compare
.travis.yml
Outdated
- npm install -g [email protected] | ||
- | | ||
if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then | ||
node-gyp configure -- -Dbuild_v8_with_gn=false |
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 think I'm officially stumped as to how to set this correctly.
@daviwil @vanessayuenn any ideas aside from this workaround?
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 backfilled the variable in binding.gyp
instead so at least CI stopped complaining about lack of build_v8_with_gn
, but now it's failing at /usr/include//c++/4.8/cstdio:120:11: error: no member named 'gets' in the global namespace
.
@shiftkey the docker image we're currently using to build for
|
@vanessayuenn @daviwil so I looked into what it would take to ship our own Dockerfile for testing, and I crimped a bunch of stuff from the current Alpine image for Node 10 but I decided to not use Alpine here because Alpine is based off musl libc, rather than glibc. FROM i386/node:10-alpine
RUN apk add --update \
python \
python-dev \
make \
g++ \
libsecret \
libsecret-dev Alpine is great for running services (very small footprint and image size, nice packaging system for pulling in additional stuff), but I think for our situation and building native modules we should stick to glibc-based distros, so I've reverted to Debian and now have a build image that builds Node from source for i386 (as it's no longer supported). This was more for my curiosity and learning more about this stuff, and if you both think it's overkill (it makes Linux CI now take ~45 minutes to build a new image - worst case scenario - and I'm not sure how to cache these so Travis is more efficient with subsequent builds) an alternative is to follow the upstream guidance to drop |
I had a chat with Vanessa about this PR and I think we're in agreement about following upstream and dropping support for 32-bit Linux on 10.x. I'm going to close this PR out and split this up into 2 different PRs now that I know more about these internals and the way forward:
|
Electron has made the jump to Node
10.2.0
with their 3.0 beta, so I think it's time to figure out how to add that to the matrix forkeytar
.Currently when I try and build without the benefit of prebuilt binaries (on macOS at least) I get this:
Goals for this PR:
nan
andnode-gyp
10.2.0
to matrix of prebuilt versionsbuild_v8_with_gn
not being setAsyncResource
cc @vanessayuenn as we were talking about this yesterday