Skip to content

noctisynth/semifold

Repository files navigation

Semifold Logo

Semifold

Next-generation cross-language monorepo version and release management tool.

Nowadays, cross-language monorepos are becoming more and more common. For example, a monorepo may contain a Rust library and a Node.js package, developers use napi-rs to create Rust bindings for Node.js.

semifold (CLI: smif | semifold) helps teams manage versions, changelogs, and package publishing across large cross-language monorepos with consistency, automation, and zero pain. Whether you are building libraries, apps, or services across multiple languages, Semifold keeps your release pipeline clean and predictable.

✨ Features

Feature Description
Cross-language monorepo support Manage versions for Rust / Node.js / more (extensible)
Changeset-based workflow Clear and traceable version reasoning
Automatic version bumping smif version reads changes and bumps semver
Automated changelogs Generated from commit metadata / changesets
One-command publishing Publish multiple packages reliably
CI-friendly design smif ci gives a stable pipeline for GitHub Actions or others

🚀 Quick Start

1. Install

cargo install semifold

2. Initialize config

smif init

3. Add a change

smif commit

4. Bump versions

smif version

5. Publish packages

smif publish

📌 Status

Languages supported:

  • Rust
  • Node.js
  • Python
  • Go
  • Java
  • Kotlin

🧠 Inspiration

Semifold was inspired by the great work from the following projects:

Changesets — a simple and elegant changeset-based versioning workflow, mainly focused on JavaScript and npm monorepos.

Covector — a flexible multi-target release manager designed to support more complex ecosystems.

📄 License

Semifold is licensed under the AGPL-3.0 License.

About

Next-generation cross-language monorepo version and release management tool

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 5