Changelog
Unreleased
Breaking changes:
- Schema change for
ganzua constraints inspect:groupswas renamed toin_groups.
New features:
- Greatly improved docs and a new website at https://ganzua.latk.de.
- Track information about extras (optional dependencies) when inspecting constraints.
- Show information about groups and extras in
ganzua constraints inspectMarkdown output.
Fixes:
- Sets are now shown in JSON output as sorted arrays.
Other:
- Rewrote test suite to prefer CLI-level end-to-end tests over unit tests.
Full diff: https://github.com/latk/ganzua/compare/v0.3.0...HEAD
v0.3.0 (2025-11-24)
This release focuses on extracting information about package sources, but also includes quality-of-life improvements and bug fixes. There are no breaking changes.
New features:
- Arguments for
pyproject.tomland lockfile paths are automatically inferred in the common cases where Ganzua is invoked from the project root. Instead of writing full paths, it is also sufficient to point to a directory containing these files. For example,ganzua inspect,ganzua inspect .andganzua inspect uv.lockare generally equivalent. - Keep some information about package sources (PyPI, Git, path dependencies, …) when inspecting lockfiles.
- Indicate certain kinds of differences that might need special attention in diff output (JSON/Markdown):
is_major_change(M),is_downgrade(D),is_source_change(S).
Fixes:
- (https://github.com/latk/ganzua/issues/3) Normalize names of packages, extras, and dependency groups when loading
pyproject.tomlfiles, as required by the packaging specifications. - (https://github.com/latk/ganzua/issues/4) Handle packages without versions in
uv.lockfiles. The fake version0+undefinedwill be substituted instead.
Other:
- Run tests under Python 3.14.
- Added a
CHANGELOG.mdfile. - Various internal changes and testing improvements.
Full diff: https://github.com/latk/ganzua/compare/v0.2.0...v0.3.0
v0.2.0 (2025-09-11)
This release fixes some bugs that were found through real-world usage, adds convenience features like diff summaries, and implements new constraint edits.
Breaking changes:
- Renamed
ganzua constraints removetoganzua constraints reset. - Schema change for
ganzua diffJSON output: diff is nested underpackageskey. - Schema change for
ganzua inspectJSON output: data is nested underpackageskey to match the diff schema.
New features:
- New command
ganzua constraints inspectlists all constraints in apyproject.tomlfile, including extras, environment markers, and dependency groups. This is particularly helpful for debugging Ganzua. - New option
ganzua constraints reset --to=minimumedits constraints to require at least the currently locked version, while removing any previous constraints. Essentially, this makes all direct dependencies upgradeable. - (https://github.com/latk/ganzua/issues/2) Add a summary line to
ganzua diffMarkdown output that counts the number of changes. - Add a
statsection toganzua diffJSON output that counts the number of changes.
Fixes:
- Support loading lockfiles regardless of name. Previously, lockfiles had to be named
poetry.lockoruv.lock. - (https://github.com/latk/ganzua/issues/1) Support
pyproject.tomlfiles with out-of-order tables.
Other:
- Various internal changes. Improvements to
pyproject.tomlmanipulation. Fewer special cases for Poetry.
Full diff: https://github.com/latk/ganzua/compare/v0.1.0...v0.2.0
v0.1.0 (2025-08-16)
Initial release.
- add
ganzua inspect - add
ganzua diff - add
ganzua constraints bump - add
ganzua constraints remove