Introduction
Welcome to Universal Release - a plugin-based release automation system supporting multiple package ecosystems through a unified interface.
What is Universal Release?β
Universal Release is a production-grade universal release automation tool leveraging Bun's full native capability stack for maximum performance, security, and extensibility.
Key Featuresβ
- Multi-Ecosystem Publishing: Support for npm, Cargo, Docker, Python, Go, and more
- Bun-Native Performance: 4-20x faster than traditional tools
- Security First: OS-level encrypted credential storage
- Type-Safe: Full TypeScript with strict mode
- Monorepo Support: Coordinated releases across multiple packages
Quick Startβ
Installationβ
bun install -g @universal/release
Basic Usageβ
# Initialize configuration
release init
# Publish your package
release publish
# Dry run (test without publishing)
release publish --dry-run
Your First Releaseβ
- Create a
.release.yamlconfiguration file:
version: 1
global:
versionScheme: semantic
commitConvention: conventional-commits
ecosystems:
npm:
enabled: true
validation:
build: true
test: true
- Store your credentials securely:
release secrets set NPM_TOKEN
- Publish your package:
release publish
Supported Ecosystemsβ
| Ecosystem | Status | Rollback Support |
|---|---|---|
| npm/pnpm/yarn | β Production | β deprecate |
| Cargo (Rust) | β Production | β yank |
| Docker/OCI | β Production | β |
| Python/PyPI | β Production | β |
| Go Modules | β Production | β |
| JSR | π§ Planned | π§ |
| RubyGems | π§ Planned | π§ |
| NuGet | π§ Planned | π§ |
Next Stepsβ
- Installation Guide - Get set up
- Quick Start - Your first release
- Architecture - Understand the system
- Bun Features - Performance & security