scalauser12 / sbt-release-io   0.4.1

Apache License 2.0 GitHub

Functional sbt-release wrapper with cats-effect IO and monorepo support

Scala versions: 2.12
sbt plugins: 1.x

sbt-release-io

Built with Claude Code sbt-release-io sbt-release-io-monorepo

An sbt plugin suite that wraps sbt-release with cats-effect IO for composable, resource-safe release automation.

Modules

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.

Quick Start

Single project

In project/plugins.sbt:

addSbtPlugin("io.github.scalauser12" % "sbt-release-io" % "0.4.1")
sbt "releaseIO with-defaults"

Monorepo

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"

Build & Test

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

Compatibility

  • sbt: 1.x
  • Scala: 2.12
  • sbt-release: 1.4.0
  • cats-effect: 3.6.3

License

This project is licensed under the Apache License 2.0.

Acknowledgments

Built on top of sbt-release by the sbt organization.

Developed with the assistance of Claude Code by Anthropic.