Skip to main content

One post tagged with "Monorepo"

Monorepo

View All Tags

Releasing a Monorepo using uv workspace and Python Semantic Release

· 5 min read
Asaf Shakarchi
Flux0 Maintainer

Managing multiple Python packages separately is a headache—different lifecycles, dependency mismatches, and endless coordination. A uv workspace, inspired by Rust’s Cargo workspaces, simplifies this by managing all packages under one monorepo, ensuring consistent versioning and reducing overhead.

But even in a monorepo, releases can be tricky. Each package within the workspace needs to be released separately, meaning it requires its own changelog, git tag, build artifacts, and GitHub release. The root project itself may also follow its own versioning and release cycle. Keeping everything in sync manually is painful.

Enter python-semantic-release (PSR)—it automates versioning, changelogs, and publishing based on commit messages. In this post, we’ll show you how to integrate PSR into your uv workspace for effortless, structured releases.