An sbt plugin suite that wraps sbt-release with cats-effect IO for composable, resource-safe release automation.
| Module | Artifact | Description |
|---|---|---|
| core | sbt-release-io |
IO-based release plugin for single-project builds. Drop-in replacement for sbt-release with Resource lifecycle, cross-build checks, and typed context threading. |
| monorepo | sbt-release-io-monorepo |
Monorepo extension with per-project versioning, git-based change detection, topological ordering, per-project failure isolation, and tagging strategies. |
In project/plugins.sbt:
addSbtPlugin("io.github.scalauser12" % "sbt-release-io" % "0.4.1")sbt "releaseIO with-defaults"In project/plugins.sbt:
addSbtPlugin("io.github.scalauser12" % "sbt-release-io-monorepo" % "0.4.1")In build.sbt:
lazy val root = (project in file("."))
.aggregate(core, api)
.enablePlugins(MonorepoReleasePlugin)sbt "releaseIOMonorepo with-defaults"sbt compile # compile both modules
sbt test # run unit tests (specs2)
sbt scripted # run all scripted integration tests
sbt core/test # core unit tests only
sbt monorepo/test # monorepo unit tests only- sbt: 1.x
- Scala: 2.12
- sbt-release: 1.4.0
- cats-effect: 3.6.3
This project is licensed under the Apache License 2.0.
Built on top of sbt-release by the sbt organization.
Developed with the assistance of Claude Code by Anthropic.