Introduction to Versu
Versu [ˈvɛr.su] is an intelligent versioning automation tool designed for modern software development. Whether you're working on a monorepo with dozens of interdependent modules or a simple single-module project, Versu adapts to your workflow.
What is Versu?
Versu automatically manages version numbers across your projects by:
- Analyzing commit history using Conventional Commits
- Determining semantic version bumps (major, minor, patch)
- Managing dependency cascades automatically
- Generating changelogs per-module
- Supporting pre-release versions (alpha, beta, rc, etc.)
Key Capabilities
🔄 Automatic Version Bumping
Based on Conventional Commits, Versu automatically determines if you need a major, minor, or patch version bump:
feat:= minor version bumpfix:= patch version bumpBREAKING CHANGE:in commit footer = major version bump<type>!:= major version bump (alternative syntax)- Custom commit types and rules are also supported through configuration
📦 Multi-Module Support
Each module in your project can be versioned independently while maintaining consistency across your entire codebase.
📝 Changelog Generation
Automatically generate beautiful changelogs from your commit history. Customize the format to match your team's standards.
🔌 Extensible Architecture
Support any build system or language ecosystem through our plugin architecture. Official plugins exist for:
- Node.js (npm, yarn and pnpm workspaces) via @versu/plugin-node
- Gradle (Groovy & Kotlin DSL) via @versu/plugin-gradle
- Maven via @versu/plugin-maven
- Custom ecosystems via your own plugins
⚡ Multiple Interfaces
Choose how to integrate Versu:
- Library: Use as a npm package in your custom tools
- CLI: Run versioning commands directly in your terminal
- GitHub Action: Automate versioning in your CI/CD pipeline
How It Works
Versu follows a simple workflow:
When to Use Versu
Versu is perfect for:
- Monorepos with multiple interdependent modules
- Microservices that need synchronized versions
- Libraries published to package registries
- Enterprise projects with complex versioning needs
- Teams that want consistent, automated versioning
Core Concepts
Before diving deeper, let's understand some key concepts:
- Conventional Commits: A specification for adding human and machine readable meaning to commit messages
- Semantic Versioning: A versioning scheme (MAJOR.MINOR.PATCH)
- Dependency Cascade: When one module changes, dependent modules are automatically versioned
- Pre-release: Alpha, beta, or release candidate versions for testing
What's Next?
- Installation - Get Versu set up in your project
- Quick Start - Run your first versioning cycle
- Concepts - Deep dive into key concepts
Ready to get started? Head over to the Installation guide!
