New Koop Monorepo

Dec 12, 2022 • Rich Gwozdz

We have migrated Koop and it’s core dependencies to a monorepo at The monorepo includes the following packages:

  • koop-core (the main koop module)
  • output-geoservices
  • featureserver
  • winnow
  • koop-logger
  • cache-memory

This move will ease development, testing, and publishing. The diagram below illustrates the dependency relationships between the monorepo packages: Screen Shot 2022-11-30 at 1 03 46 PM


It’s important to note that the latest Koop has been published under the @koopjs NPM organization. You will need to update your koop applications by:

> npm uninstall koop

> npm install @koopjs/koop-core

Then replace any imports in your code-base. For example:

- const Koop = require('koop')
+ const Koop = require('@koopjs/koop-core')

FeatureServer and Winnow have also moved to the @koopjs NPM organization. If you happen to be using those repositories outside of Koop you’ll need to update to @koopjs/featureserver and @koopjs/winnow. Note that the older repositories have been marked as deprecated and have no explicit maintenance plan.


The new monorepo includes tooling to help standardize contributions and make semantic releases to NPM. This includes the requirement of (1) conventional commit messages, (2) code coverage, and (3) semantice release control with changesets. Take a look at the contribution guidelines for more information.