Giter VIP home page Giter VIP logo

Comments (5)

GazHank avatar GazHank commented on June 3, 2024

hi @hardillb are you getting accidentally updated to a version that is incompatible with your version of node?

As far as I understand you should be able to continue with the older version of the package until you are able to update node from version 14. Other than losing support I don't think there are any known issues which should impact you in the short term if you need to stick on node 14 for a short while

from bindings-cpp.

hardillb avatar hardillb commented on June 3, 2024

@GazHank

I'm testing (and the supplied test case uses) NodeJS 16 and installing serialport v11.0.1 (bindings-cpp v11.0.3) which was tagged on github 3 days ago, that version should be good, but I've just tested with version v12.0.0 (bindings-cpp v12.0.1) tagged at the same time and it fails the same way

For v12.0.0 package.json says

"engines": {
    "node": ">=16.0.0"
  },

for v11.0.1

"engines": {
    "node": ">=12.0.0"
  },

So both versions should work on Node 16

from bindings-cpp.

GazHank avatar GazHank commented on June 3, 2024

doh! <I've only been able to review this on my mobile, so sorry if I'm mistaken>

The alpine binaries are built using prebuildify (which only uses LTS releases), so it looks like any binaries will drop support soon as a node version leaves LTS, even if the underlying code is still compatible and can be build from source.

@hardillb I think your analysis is correct and it is an issue with the pre-build binaries. For now you can either pin an earlier binary version, or build from source

@reconbot keen to get your thoughts... it looks like holding out support for older versions of nodejs is getting harder, perhaps we need to pencil in a release for around 2023-09-11 to drop node 16, to avoid similar issues?

from bindings-cpp.

hardillb avatar hardillb commented on June 3, 2024

One other note, the current system doesn't appear to support npm rebuild which should normally rebuild any binary components, where as for @serialport/bindings-cpp you have to run npm run rebuild actually in it's directory (where as npm rebuild can do all modules in the node_modules dir). This is a break from expected normal behaviour for nodes with binary components.

from bindings-cpp.

alexojegu avatar alexojegu commented on June 3, 2024

Same trouble here.

Hi @GazHank, from prebuildify usage:

It's possible to use custom images with e.g. -i my-namespace/my-image.

And for ARM they are using images from dockcross where I can see dockcross/linux-armv7l-musl. Could this image be added to the GitHub Actions workflow?

If I understood it correctly it would simply change:

- name: linux-arm
     os: ubuntu-latest
     command: prebuildify-cross
     args: -i linux-arm64-lts -i linux-armv7 -i linux-armv6

By:

- name: linux-arm
     os: ubuntu-latest
     command: prebuildify-cross
     args: -i linux-arm64-lts -i linux-armv7 -i linux-armv6 -i dockcross/linux-armv7l-musl

For me this would be enough, but there is also an image for armv6-musl if anyone might be interested.

PS: Okay, I guess based on that image you would have to make a Dockerfile with the configuration used by prebuildify.

from bindings-cpp.

Related Issues (13)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.