Skip to main content

Release Cycle

Monorepo

Mosaico uses a monorepo to keep mosaicod and the SDK in sync. Both components are independently versioned and released, each following semantic versioning.

Branches

main

The central integration branch. All finished work lands here via pull request. The version on main is always a -dev snapshot (e.g. v0.7.0-dev). It is never directly released.

issue/<num>

Short-lived branches for a single feature or bug fix. Always branched from main, merged back via PR, then deleted.

release/[py|doc]/vX.Y

Stabilization branch for a specific release, cut from main. Once created, only targeted fixes are backported into it, ongoing development continues on main. Three parallel branches are cut per release:

  • release/vX.Y: mosaicod daemon, covers the full vX.Y.* patch series.
  • release/py/vX.Y: Python SDK.
  • release/doc/vX.Y: documentation.

Release

Cut the release branch

When main is ready, three branches are cut from it: release/vX.Y, release/py/vX.Y, and release/doc/vX.Y. At that point several version bumps happen simultaneously:

  • main: every module advances to vX.(Y+1).0-dev, opening the next development cycle.
  • release/vX.Y: mosaicod is set to vX.Y.0-rc.
  • release/py/vX.Y: the Python SDK is set to py/vX.Y.0-rc.

Release candidates

Every commit on release/vX.Y produces a mosaicod container image with two tags:

  • A floating tag (vX.Y.Z-rc) pointing to the latest candidate.
  • A pinned SHA tag (e.g. vX.Y.Z-rc-abc1234) identifying that exact build.

Promote to stable

Change the version from vX.Y.Z-rc to vX.Y.Z and tag the commit. CI/CD produces the final release artifacts: binaries, stable container images, and a docs deployment.

Patch releases

Commit fixes directly to release/[py|doc]/vX.Y (or backport from main), increment the patch version.

Tags

ComponentTag formatNotes
DaemonvX.Y.ZTriggers binary and container builds
Python SDKpy/vX.Y.ZTriggers PyPI publish and SDK artifacts
Documentationdoc/vX.Y (lightweight)Rolled forward on each update; triggers a docs deployment