#patch #projects #automate #configuration #versioning #helper #github

app patch-release-me

A tool to automate patching of your projects before you release them

10 releases

new 0.3.1 Oct 31, 2024
0.3.0 Sep 5, 2024
0.2.1 Aug 21, 2024
0.1.7 Aug 9, 2024
0.1.5 May 30, 2024

#251 in Development tools

MIT license

30KB
672 lines

Patch Release Me

GitHub Crates.io Version Crates.io Downloads (recent) GitHub Stars Licence

This is a tool I built to help maintain a number of code bases.

✨ Features

  • Configuration as Code
    • Define how to patch your code before release
  • Versioning Helpers

📦 Usage

You can install / use the tool is a number of different ways

Cargo / Crates.io

cargo install patch-release-me

GitHub Actions

- name: "Patch Release Me"
  uses: 42ByteLabs/patch-release-me@0.3.1
  with:
    # Bump (patch)
    mode: bump

Container Image

Pull Container from GitHub:

docker pull ghcr.io/42bytelabs/patch-release-me:0.3.1

Run Image:*

docker run -it --rm -v $PWD:/app ghcr.io/42bytelabs/patch-release-me:0.3.1 patch-release-me --help

Manual Install

cargo install --git https://github.com/42ByteLabs/patch-release-me

Configuration

# [optional]: name of the software you are releasing
name: "patch-release-me"
#[optional]: Are the default release locations added
default: true

# Patch Locations
locations:
  # Array of objects
  # Name of the patch
  - name: "Docs Patch"
    paths:
      # Glob supported path to the files you want to patch
      - 'Cargo.toml'
    # [optional]: Exclude dirs/files
    excludes:
      - '/target/'
    # Patterns to use to patch the files
    patterns:
      # Regex Patterns to find what version you want to patch which requires
      # a capture group `(...)`. The patterns are checks are runtime.
      - 'version = "([0-9]\.[0-9]\.[0.9])"'

🦸 Support

Please create GitHub Issues if there are bugs or feature requests.

This project uses Semantic Versioning (v2) and with major releases, breaking changes will occur.

📓 License

This project is licensed under the terms of the MIT open source license. Please refer to MIT for the full terms.

Dependencies

~10–20MB
~278K SLoC