Test latest tags of node-mapnik dependents that track latest node-mapnik
https://www.npmjs.com/browse/depended/mapnik
The goal of this repo is to ensure the upcoming node-mapnik release does not accidentally break any dependents. Or, if the upcoming node-mapnik version is known to contain breaking changes: then this repo offers one place to test all those changes have been adapted to before releasing.
npm install
npm test
Decide which node-mapnik version you want to test. By default package.json lists:
"mapnik" : "https://github.com/mapnik/node-mapnik/tarball/master"
This assumes that:
- the upcoming node-mapnik release is what you want to test
- it has been merged into master in preparation for release
- binaries are published for it
- you are here testing because you have not yet tagged or
npm published
the version
If dependencies need modified to work with latest mapnik you can:
- create branches for each dependency needing updated
- point mapnik-swoop at those branches
- then re-run mapnik-swoop until everything is passing
The install
step above is unique: it installs each dependency from github and then, in a postinstall
step recurses into each dependency directory to install their devDependencies
. This is done so that we can actually run each dependencies tests.
The test
step does two things:
-
Runs a set of
mocha
tests which use a child process to run the tests of each dependency and collect the results. Test failures are reported at the bottom of the run, but the actual failure details are only visible in the stderr printed during the test runs. -
The tests also ensure no duplicate C++ modules are present after installing all dependents. This is important because duplicate Node C++ modules in a tree can cause bad behavior or crashes. The idea is that if a C++ module is declared at the "top level" by mapnik-swoop (inside the package.json at the root of this directory) then it should no longer be installed in the
node_modules
of any dependencies. If it is then you'll end up with duplicate tests failing and you'll need to resolve these by tweaking downstream dependencies to accept the upcoming node-mapnik version as valid.
This is here to provide a quick view of any modules who might have failing tests before any node-mapnik upgrade so that they can be excluded from mapnik-swoop
or at least fixed before starting to test a new node-mapnik version.
- node-mapnik - |
- mapnik-reference - |
- abaculus - |
- node-blend - |
- carmen - |
- tilelive-vector - |
- tilelive-bridge - |
- mapnik-omnivore - |
- tilelive-omnivore - |
- vector-tile-query - |
- tilelive-mapnik - |
- landspeed.js - |
- @mapbox/assert-http - |
- mapnik-pool - |
- geojson-mapnikify - |
- tilelive-overlay - |
- spritezero - |
- mapbox-upload-validate - |
- raster-tile-query - |
- mapbox-tile-copy - |
- node-happytiff - |