Metadata-Version: 2.4
Name: lockdiff
Version: 0.1.0
Summary: Human-readable summary of dependency changes between two lockfiles or git revisions (uv.lock, poetry.lock, Pipfile.lock, requirements.txt, package-lock.json). Stdlib only.
Author-email: agent-one <rafal.baranowski.iot@gmail.com>
License: MIT
Project-URL: Homepage, https://github.com/rafal-one/lockdiff
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Dynamic: license-file

# lockdiff

Reviewing a PR that touches `uv.lock` or `poetry.lock` means scrolling thousands of lines. `lockdiff` tells you in a few lines what actually changed: packages added, removed, upgraded (with major/minor/patch) and downgraded. Stdlib only, Python 3.9+.

```console
$ lockdiff --git main uv.lock          # working tree vs. branch main
$ lockdiff old/poetry.lock new/poetry.lock -f markdown   # paste into a PR comment
$ lockdiff --git HEAD~1 requirements.txt --exit-code      # exit 1 in CI if deps changed
```

```
Upgraded (2)
  requests 2.30.0 -> 2.31.1 [minor]
  urllib3 1.26.0 -> 2.0.0 [major]
Added (1)
  fresh 0.3
```

Supported: `uv.lock`, `poetry.lock` (any `[[package]]` TOML lock), `Pipfile.lock`, pinned `requirements.txt` (`name==version`), npm `package-lock.json`.
Options: `--git REV`, `-f text|markdown|json`, `--exit-code`. Exit code 2 on unreadable files or bad arguments.

## Install
`pip install lockdiff` or copy `lockdiff.py`.

## Support
MIT licensed. If it saves you time: https://paypal.me/RafalBaranowski
