= Background information
We were previously able to work around some version dependencies and run Kartotherian on Node 10, by using a [[ https://www.npmjs.com/package/@kartotherian/mapnik | custom node-mapnik ]] build deployed under the kartotherian GitHub org.
In order to get back to the upstream node-mapnik package, we need to update libmapnik to 3.1.x
= What
The following dependencies needs to upgrade node-mapnik to the latest version:
- kartotherian/tilelive-bridge
- kartotherian/tilelive-tmsource
- kartotherian/tilelive-vector
- kartotherian/abaculus
- wikimedia/makizushi
- wikimedia/geojson-mapnikify
- wikimedia/tilelive-overlay
What could be tested so far indicates that one third-party dependency also needs to be improved for mapnik v3.1.x, and that is [[ https://github.com/mapnik/mapnik-reference | mapnik-reference ]], which doesn't support the new schema yet.
= How
Upgrade the libraries
[x] kartotherian/tilelive-bridge (unforked in the poc)
[x] kartotherian/tilelive-tmsource (new fork with updated dependencies ready to move on)
https://github.com/wikimedia/tilelive-tmsource/tree/mapnik-4
[x] wikimedia/makizushi (working branch ready to move on)
https://github.com/wikimedia/makizushi/tree/mapnik-4
[x] wikimedia/geojson-mapnikify (working branch ready to move on)
https://github.com/wikimedia/geojson-mapnikify/tree/mapnik3.1
[x] wikimedia/tilelive-overlay (working branch ready to move on)
https://github.com/wikimedia/tilelive-overlay/tree/mapnik3.1
[] kartotherian/tilelive-vector (unforked for now)
There are custom changes in the forked version of this lib. Must are not relevant, but two seem interesting:
See {T195513} and https://github.com/kartotherian/tilelive-vector/pull/3
And https://github.com/kartotherian/tilelive-vector/commit/a7bfd29a?w=1
[ ] kartotherian/abaculus (unforked for now)
Need to check this change that was suggested upstream as well https://github.com/mapbox/abaculus/pull/39
= Open questions
[ ] Check for additional changes suggested by https://github.com/mapnik/mapnik/wiki/API-changes-between-v3.0-and-v3.1
Is that going to be a straight forward upgrade for our dependencies? Some libraries we use are outdated and upgrade them might bring incompatibilities, this will need more tests when mapnik v3.1.x is available.
= Acceptance criteria
- [] Backport to Debian stretch mapnik v3.1.x when released
- [] Wait for mapnik-reference to be updated on upstream
- [] Upgrade node-mapnik in all dependencies
- [] Test and deploy