Patch Release Me
Patch Release Me is a tool built to help maintain multiple codebases by automating version patching before releases. Define how to patch your code once, then let the tool handle version updates across all your files.
Features
- Configuration as Code: Define patch locations and patterns in YAML
- Versioning Helpers: Built-in support for semantic versioning
- Glob Pattern Support: Patch multiple files at once
- Regex Patterns: Flexible pattern matching for version strings
- Ecosystem Defaults: Pre-configured for Rust, JavaScript, Python, and more
- CI/CD Integration: Works seamlessly with GitHub Actions
- Container Support: Available as a Docker image
Configuration Example
# Project version
version: 1.2.3
# Optional: Software name
name: "my-project"
# Optional: Repository
repository: "owner/repo"
# Ecosystems to use defaults from
ecosystems:
- "Rust"
# Patch locations
locations:
- name: "Version Patch"
paths:
- 'Cargo.toml'
- 'package.json'
excludes:
- '/target/'
patterns:
- 'version = "{version}"'
- '"version": "{version}"'Installation
Cargo
cargo install patch-release-meGitHub Actions
- name: "Patch Release Me"
uses: 42ByteLabs/patch-release-me@0.6.6
with:
mode: bumpContainer
docker pull ghcr.io/42bytelabs/patch-release-me:0.6.6
docker run -it --rm -v $PWD:/app \
ghcr.io/42bytelabs/patch-release-me:0.6.6 \
patch-release-me --helpUse Cases
- Automating version updates before releases
- Maintaining consistent versioning across multiple files
- CI/CD pipeline integration for releases
- Bulk version updates across monorepos
- Standardizing release processes
Why Patch Release Me?
- Save Time: Automate repetitive version updates
- Reduce Errors: No more manual find-and-replace mistakes
- Consistent: Ensure all files have the correct version
- Flexible: Supports any file format with regex patterns
- Fast: Written in Rust for speed and reliability
Supported Ecosystems
- Rust (Cargo.toml)
- JavaScript/TypeScript (package.json)
- Python (pyproject.toml, setup.py)
- Custom patterns via configuration

