We automatically publish all libraries in the monorepo to Sonatype on every
We use a modified version of
sbt-ci-release that handles
publishing multiple packages at once.
We publish both stable and snapshot releases, based on the strategy detailed below.
Snapshot releases are published for every library for every commit on master.
Their version is computed using a modified version of
sbt-dynver that handles tag prefixes
(see the next paragraph).
To use snapshot releases, projects must add Sonatype
snapshots resolver to
their Sbt build:
resolvers += Resolver.sonatypeRepo("snapshots")
Stable releases are published whenever there's a matching Git tag associated with a current commit on master.
Each project in the monorepo can configure the
dynverTagPrefix setting to
declare its matching tag.
enumero-as their tag prefix, meaning that a stable release will be published whenever a Git tag starting with
enumero-is found on master.
Releasing a stable version
To release a new stable version of a library, push a Git tag on master with this
👉 Example: you can release the version 1.0.0 of
enumeroCirceby pushing the
You can do this directly from the new release page on GitHub
Stable releases are automatically synced with Maven Central, meaning you can depend on them without adding any resolver to Sbt. The sync process usually takes ~10 minutes.