mapnik / node-mapnik

Bindings to mapnik for node.js
http://mapnik.org/documentation/node-mapnik
BSD 3-Clause "New" or "Revised" License
531 stars 165 forks source link

Pre-built binaries for node-mapnik 3.x on node 10+ #965

Open gravitystorm opened 3 years ago

gravitystorm commented 3 years ago

The latest mapnik release is 3.0.23, and so there's advantages to using the 3.x series of node-mapnik too (e.g. compatibility with mapnik-reference) rather than the 4.x series.

3.7.2 is the latest node-mapnik release for mapnik 3. However, there are no pre-built binaries available for any currently supported node version. The latest node version with pre-built binaries for node-mapnik 3.7.2 is node 8, which is no longer supported.

Would it be possible to generate pre-built binaries for node-mapnik 3.x on some supported node versions?

springmeyer commented 3 years ago

Would it be possible to generate pre-built binaries for node-mapnik 3.x on some supported node versions?

So much time has passed since a node-mapnik 3.x release its hard to know how hard it would be to get that series working on recent node versions. To address this fundamental challenge at the root we recently worked on porting latest node-mapnik to Napi (https://github.com/mapnik/node-mapnik/pull/946). What that now enables is for the existing releases to be future compatible with upcoming node major releases. So once you upgrade to latest node-mapnik@4.x you'll be able to use whatever node version you want long into the future.

So, because I feel like we've solved this problem going forward I'm hesitant investing time trying to fix the past code. So, what would it take for you to upgrade to node-mapnik@4.x (or want to)? I would assume we can work together on solving your upgrade issues and that will be much less work and a better result.

artemp commented 3 years ago

Exactly my thinking 👍 ^ mapnik master aka 4.x.x is pretty stable (needs a proper release!) @gravitystorm @springmeyer

gravitystorm commented 3 years ago

So for background, the matter at hand is trying to run some existing software (tessera) on a currently supported node version. Tessera is using tilelive-tmsource which loads mapnik-reference using the current mapnik version. Since mapnik-reference only knows about official mapnik releases, i.e. the 3.x series, that constraints the mapnik / node-mapnik versions to 3.x too.

But I totally understand if you don't want to go back to working on the 3.x pre-built binary stuff!

In which case, I think the best way forward is for an official mapnik release. Having a release means we can update mapnik-reference, and move over to node-mapnik 4.x series, and so on.

springmeyer commented 3 years ago

In which case, I think the best way forward is for an official mapnik release. Having a release means we can update mapnik-reference, and move over to node-mapnik 4.x series, and so on.

👍 This sounds like the right plan.