Skip to content

Dropping support for windows binaries #848

Closed
@springmeyer

Description

@springmeyer

For many years we've supported windows in the node-mapnik project, keeping builds working on appveyor and providing binaries for all downstream users.

We've been providing windows binaries since 2014 (v1.4.8 release): #202 (comment)

The time has come to drop support however. This is a tough decision because I'd like to keep supporting windows, but I don't have the ability to.

So, windows binaries are no longer going to be supported for > node-mapnik v3.6.3.

I'm sorry to those of you who have been depending on these binaries over the years (especially to those that might have downstream users or companies depending on them as well). This news probably comes as a major inconvenience/disappointment/surprise.

I've been developing in C++ for over 10 years now and much of that time I've been maintaining builds across mac, linux, windows for a variety of projects. Getting Mapnik running on Windows is the one of the hardest and most labor intensive things I've worked on due to:

  • how poor the support for modern C++ features have been in Visual Studio (for C++11 and C++14) (or instead how poor my understanding is, since I primarily develop on unix)
  • the large number of dependencies mapnik has and the lack of good consistent scripts or binary packages for them (requiring my team to maintain https://github.com/mapbox/windows-builds/tree/master/scripts)
  • the fact that mapnik's core build system does not support windows, requiring the maintenance of a totally separate build system (https://github.com/mapnik/mapnik-gyp), which therefore easily breaks.

All of these things combine with the fact that I'm managing a team at Mapbox now and I don't have the time to dig into failed builds. Also my colleague @BergWerkGIS, who was a major force behind making this system work for many years, has moved on to work on other things at Mapbox unrelated to C++ builds. Lastly we've been supporting windows for a couple years now without actually needing it at Mapbox (we don't depend on the windows builds of mapnik or node-mapnik since moving our focus to Mapbox GL - refs https://www.mapbox.com/help/upgrading-from-classic/ and https://www.mapbox.com/help/upgrading-from-classic/).

As such mapnik is no longer building on windows, and its tests have been failing for some time: https://ci.appveyor.com/project/Mapbox/mapnik/history.

If someone were to pick this up they would need to:

Since there is nobody that I know to step up to maintain this system, then my only reasonable option at this point is to drop support for node-mapnik on windows going forward.

So, my recommended solution for developers on windows that are depending on node-mapnik is to pin your usage in your package.json to v3.6.2 like:

  "dependencies": {
    "mapnik": "3.6.2",
  }

Mentioning a few people on this ticket who, from looking at past issues (https://github.com/mapnik/node-mapnik/search?q=windows&type=Issues&utf8=%E2%9C%93), have been users of node-mapnik on windows: @donnyv @eczajk1 @vjpr @BHare1985 @andrelom @bmehta @TimJMartin @germanjoey @aparshin @qiyexue @fnicollet @jbrwn @rclark @n9 @mohsentaleb @djodonnell @iceaxe @mojodna @beaugunderson @strk @mapbox/core-tech

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions