intentdiff

Distribution

Primary install path:

cargo install intentdiff --locked

Secondary package-manager shims:

npm install -g intentdiff
python -m pip install intentdiff

The npm and PyPI packages are installer shims. They try to download the matching GitHub release archive, verify checksums.txt when present, cache the native binary, and fall back to cargo install intentdiff --locked if no native archive is available.

Native GitHub release archives are built by .github/workflows/release-binaries.yml for:

The shims support:

GitHub Actions

Use the repository as an action:

name: intentdiff

on:
  pull_request:

jobs:
  review-diff:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0
      - uses: harivilasp/intentdiff@v0.1.0
        with:
          args: --check --meaningful-only main...HEAD

The action defaults to --check --meaningful-only.

Release order

  1. Publish Rust library crates.
  2. Publish Rust CLI crate intentdiff.
  3. Push a vX.Y.Z tag so GitHub release archives and checksums.txt are created.
  4. Publish npm shim with matching native version metadata.
  5. Publish PyPI shim with matching native version metadata.
  6. Submit Homebrew/Scoop formulas after release checksums exist.