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

app patch-release-me

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

11 unstable releases (3 breaking)

0.4.0 Nov 21, 2024
0.3.1 Oct 31, 2024
0.3.0 Sep 5, 2024
0.2.1 Aug 21, 2024
0.1.5 May 30, 2024

#49 in Configuration

Download history 209/week @ 2024-08-16 43/week @ 2024-08-23 86/week @ 2024-08-30 48/week @ 2024-09-06 49/week @ 2024-09-13 16/week @ 2024-09-20 11/week @ 2024-09-27 3/week @ 2024-10-04 1/week @ 2024-10-11 51/week @ 2024-10-25 64/week @ 2024-11-01 3/week @ 2024-11-08 69/week @ 2024-11-15 81/week @ 2024-11-22 6/week @ 2024-11-29

161 downloads per month

MIT license

35KB
780 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.4.0
  with:
    # Bump (patch)
    mode: bump

Container Image

Pull Container from GitHub:

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

Run Image:*

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

Manual Install

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

Configuration

# Project / Repository Version
version: 1.2.3

#[optional]: name of the software you are releasing
name: "patch-release-me"
#[optional]: repository owner/name
repository: "42ByteLabs/patch-release-me"
#[optional]: Ecosystem to use
ecosystems:
  # Only `Rust` tagged defaults will be used
  - "Rust"
#[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])"'
      # You can also use placeholders
      # {version}, {major}, {minor}, {patch}, {repository}
      - 'version = "{version}"'

🦸 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
~276K SLoC