README.md

May 16, 2026 · View on GitHub

Sampo logo

Steers his mighty boat in safety, Through the perils of the whirlpool, Through the watery deeps and dangers.

Automate changelogs, versioning, and publishing—even for monorepos across multiple package registries. Currently supported ecosystems: Rust (Crates), JavaScript/TypeScript (npm), Elixir (Hex), Python (PyPI), PHP (Packagist)... And more coming soon!

Don't know where to start? Check out Sampo's documentation or join us on Discord!

Crates

Sampo is a monorepo that contains the following crates (Rust packages):

NameDescriptionRegistryREADME
sampoCLI to manage changesets, versioning, and publishingSampo Crates.io VersionREADME
sampo-coreCore logic, common types, and internal utilitiesSampo Core Crates.io VersionREADME
sampo-github-botGitHub App to inspect PRs and request changesetsSampo GitHub Bot Crates.io VersionREADME
sampo-github-actionGitHub Action to automate the release and publishing process.Sampo GitHub Action Crates.io VersionREADME

Packages

The sampo CLI is also distributed on npm so it can be installed via pnpm/npm/yarn/bun without a Cargo toolchain:

NameDescriptionRegistryREADME
sampoCLI to manage changesets, versioning, and publishingSampo npm VersionREADME

Acknowledgements

Sampo is deeply inspired by Changesets and Lerna, but made with Rust and designed for multi-ecosystems monorepos. Read more about Sampo's alternatives.

Sampo uses Knope's changesets crate to parse changeset files. Knope is another Rust project inspired by Changesets, we highly recommend checking it out!

Sampo uses and enforces Semantic Versioning (SemVer), like their standard MAJOR.MINOR.PATCH version format and the "Version Bumps" concepts.

Sampo is an open-source project born from Bruits, a Rust-focused collective 💛