Patch Release Me

A configuration-as-code tool for automating version patching across multiple files before releases. Built to help maintain codebases efficiently.

Rust Rust Release Management CI/CD DevOps Automation Versioning
Patch Release Me

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-me

GitHub Actions

- name: "Patch Release Me"
  uses: 42ByteLabs/patch-release-me@0.6.6
  with:
    mode: bump

Container

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 --help

Use 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