Skip to content

Releases: lukehsiao/pyproject-udeps

v0.3.7

Choose a tag to compare

@github-actions github-actions released this 30 Jul 13:49

Patch Changes

  • 1a400ab - fix: upgrade ruff_python_ast and ruff_python_parser to 0.0.6, which raises the minimum supported Rust version to 1.95. The 0.0.4 releases pulled compact_str 0.9 while deriving GetSize through get-size2, whose 0.10.2 release moved to compact_str 0.10. That combination no longer compiles, so staying on 0.0.4 would have meant pinning get-size2 to a version we do not otherwise depend on.
$ git-stats v0.3.6..v0.3.7
Author      Commits  Changed Files  Insertions  Deletions  Net Δ
Luke Hsiao        4              9        +164       -224    -60
Total             4              9        +164       -224    -60

v0.3.6

Choose a tag to compare

@github-actions github-actions released this 12 Jul 05:32

Patch Changes

  • 9c92b19 - fix: the name map was audited against the wheel contents of the 1,500 most-downloaded PyPI packages, adding roughly 190 entries (pillowPIL, pyjwtjwt, dnspythondns, opencv-pythoncv2, and many more).

  • 61844e0 - feat: declared package names are now matched case-insensitively with -, _, and . treated as equivalent (PEP 503 normalization), and imports now match packages keyed to any dotted prefix of the module path (so from airflow.providers.common.sql.hooks.sql import X marks apache-airflow-providers-common-sql as used). Together these eliminate whole classes of false positives, like declaring Flask while importing flask, or importing a deep submodule of a namespace package.

$ git-stats v0.3.5..v0.3.6
Author      Commits  Changed Files  Insertions  Deletions  Net Δ
Luke Hsiao        8             15        +613        -65   +548
Total             8             15        +613        -65   +548

v0.3.5

Choose a tag to compare

@github-actions github-actions released this 12 Jul 02:12

Patch Changes

  • bae4549 - fix: add name-map aliases for pyyaml, python-dateutil, pydocket, amplitude-analytics, opentelemetry-api, and opentelemetry-test-utils, eliminating false positives on projects that import these packages.
$ git-stats v0.3.4..v0.3.5
Author      Commits  Changed Files  Insertions  Deletions  Net Δ
Luke Hsiao        2              7        +208        -63   +145
Total             2              7        +208        -63   +145

v0.3.4

Choose a tag to compare

@github-actions github-actions released this 12 Jul 01:15

Patch Changes

  • 83aed9d - feature: pyproject-udeps and pyproject-udeps-bin are now available on the AUR.
$ git-stats v0.3.3..v0.3.4
Author      Commits  Changed Files  Insertions  Deletions  Net Δ
Luke Hsiao        2              6        +187         -6   +181
Total             2              6        +187         -6   +181

v0.3.3

Choose a tag to compare

@github-actions github-actions released this 10 Jul 21:06

Patch Changes

  • 8c2f37f - chore: add python-ulid -> ulid mapping to eliminate false positive.
$ git-stats v0.3.2..v0.3.3
Author      Commits  Changed Files  Insertions  Deletions  Net Δ
Luke Hsiao        1              3          +7         -1     +6
Total             1              3          +7         -1     +6

v0.3.2

Choose a tag to compare

@github-actions github-actions released this 10 Jul 20:19

Patch Changes

  • 406b665 - chore: add the pyserial -> serial alias to avoid a false positive.
$ git-stats v0.3.1..v0.3.2
Author      Commits  Changed Files  Insertions  Deletions  Net Δ
Luke Hsiao        1              2          +6          0     +6
Total             1              2          +6          0     +6

v0.3.1

Choose a tag to compare

@github-actions github-actions released this 10 Jul 19:42

Patch Changes

  • bb6a635 - build: fix publishing token.
$ git-stats v0.3.0..v0.3.1
Author           Commits  Changed Files  Insertions  Deletions  Net Δ
Luke Hsiao             1              1          +5          0     +5
dependabot[bot]        1              4          +6         -6      0
Total                  2              5         +11         -6     +5

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 10 Jul 19:35

Minor Changes

  • #4 e25c754 - feat: publish prebuilt binaries on GitHub releases.

    Releases now attach binaries for ten targets (Linux gnu/musl on x86_64, aarch64, and armv7; macOS x86_64 and aarch64; Windows x86_64 and aarch64) with sha256 checksums, so cargo binstall pyproject-udeps works and CI can install via taiki-e/install-action without a compile.

  • #4 e25c754 - feat: rename poetry-udeps to pyproject-udeps.

    The tool is no longer poetry-only, so the name follows the file it actually analyzes. Install it with cargo install pyproject-udeps (or cargo binstall pyproject-udeps); the binary is now pyproject-udeps. The ignorefile is .pyprojectudepsignore, and an existing .poetryudepsignore keeps working as a fallback. One last poetry-udeps release on crates.io points here.

  • #4 e25c754 - feat: parse Python with ruff's parser instead of scanning text for import statements.

    Imports are now collected from a real AST, which fixes a family of accuracy bugs: from x import a, b counted only a, from x import * counted nothing, '''-quoted docstrings were not skipped, and text like x = "import os" produced phantom imports. Imports nested in functions and try/except ImportError blocks are found, files with syntax errors still contribute whatever parses, and importlib.import_module("...") and __import__("...") calls with literal arguments now count as usage. Reports may legitimately change on upgrade: dependencies that only appeared inside strings or docstrings will newly show up as unused.

  • #4 e25c754 - feat: support uv and plain PEP 621 projects, not just poetry.

    Dependencies are now read from every place pyproject.toml can declare them: [project.dependencies], every [project.optional-dependencies] extra, [tool.poetry.dependencies], every [tool.poetry.group.*] (previously only the dev group was checked), PEP 735 [dependency-groups], and the legacy [tool.uv] dev-dependencies array. Hybrid layouts take the union, so a wrong guess about which tool manages the project can never drop a declaration. --virtualenv also stopped assuming poetry: the environment is discovered from the lockfile and tool tables, using poetry env info -p for poetry projects, $UV_PROJECT_ENVIRONMENT or .venv for uv projects, and $VIRTUAL_ENV or .venv otherwise.

Patch Changes

  • #4 e25c754 - fix: stop reporting used dev dependencies that import under a different name.

    A dev dependency imported through an alias (for example scikit-learn imported as sklearn) was still reported as unused under --dev, because the match removed the wrong bookkeeping entry.

  • #4 e25c754 - fix: stop crashing on import dbt.adapters and on non-UTF-8 Python files.

    A bare two-segment import dbt.adapters panicked the matcher, and a single .py file with non-UTF-8 bytes (latin-1 comments in legacy code, say) crashed the project scan. Both now behave: the dbt heuristic only fires with an adapter segment present, and files are read lossily everywhere.

  • #4 e25c754 - fix: honor the --no-ignore flag.

    The flag was accepted but never read, so there was no way to see the report without ignorefile filtering. It now bypasses the ignorefile as documented.

All notable changes to this project will be documented in this file. See conventional commits for commit guidelines.

$ git-stats v0.2.10..v0.3.0
Author      Commits  Changed Files  Insertions  Deletions  Net Δ
Luke Hsiao       25            101       +6233      -1906  +4327
Total            25            101       +6233      -1906  +4327