Skip to content
This repository has been archived by the owner on Jul 13, 2023. It is now read-only.
/ mapnik-swoop Public archive

Run tests of node-mapnik dependents against upcoming release

License

Notifications You must be signed in to change notification settings

mapbox/mapnik-swoop

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Test latest tags of node-mapnik dependents that track latest node-mapnik

https://www.npmjs.com/browse/depended/mapnik

Build Status

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.

Installing

npm install

Testing

npm test

Setup

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

Details

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:

  1. 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.

  2. 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.

Build status deps

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 - Build Status | Dependencies
  • mapnik-reference - Build Status | Dependencies
  • abaculus - Build Status | Dependencies
  • node-blend - Build Status | Dependencies
  • carmen - Build Status | Dependencies
  • tilelive-vector - Build Status | Dependencies
  • tilelive-bridge - Build Status | Dependencies
  • mapnik-omnivore - Build Status | Dependencies
  • tilelive-omnivore - Build Status | Dependencies
  • vector-tile-query - Build Status | Dependencies
  • tilelive-mapnik - Build Status | Dependencies
  • landspeed.js - Build Status | Dependencies
  • @mapbox/assert-http - Build Status | Dependencies
  • mapnik-pool - Build Status | Dependencies
  • geojson-mapnikify - Build Status | Dependencies
  • tilelive-overlay - Build Status | Dependencies
  • spritezero - Build Status | Dependencies
  • mapbox-upload-validate - Build Status | Dependencies
  • raster-tile-query - Build Status | Dependencies
  • mapbox-tile-copy - Build Status | Dependencies
  • node-happytiff - Build Status | Dependencies

About

Run tests of node-mapnik dependents against upcoming release

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published