Skip to content

0.21.0

Compare
Choose a tag to compare
@mkniewallner mkniewallner released this 08 Nov 12:06
· 52 commits to main since this release
3557308

What's Changed

Breaking changes

Ignore files handling

Unless --exclude is used, deptry excludes files found in common ignore files (.gitignore, .ignore, $HOME/.config/git/ignore. ...), by using ignore Rust crate. The default behaviour has been changed, so that now:

  • git-related ignore rules (.gitignore, $HOME/.config/git/ignore, ...) are only used if deptry is run inside a git repository
  • .gitignore files that are in parent directories of the git repository from where deptry is run are not used (previously, deptry would traverse parent directories up to the root system)

If you were using .gitignore files for non-git repositories, you might want to switch to .ignore files, or use --extend-exclude.

Requirements files parsing

deptry now uses requirements-parser to parse dependencies from requirements files, meaning that it can now extract nested requirements files referenced in other requirements files without having to explicitly configure it in deptry.

For instance, if you have:

# requirements.txt
-r cli-requirements.txt
httpx==0.27.2
# cli-requirements.txt
click==8.1.7

With the default configuration, when parsing requirements.txt, both httpx and click will now be listed as dependencies by deptry, while previously, only httpx was, unless deptry was instructed about cli-requirements.txt by using --requirements-files. This new behaviour also impacts development requirements files, that can be overridden by using --requirements-files-dev.

Python 3.8 support dropped

Support for Python 3.8 has been dropped, as it has reached its end of life.

Features

  • deptry now detects development dependencies from [dependency-groups] section, introduced by PEP 735 (#892)
  • deptry now supports setuptools dynamic dependencies set in [tool.setuptools.dynamic] section, see https://deptry.com/supported-dependency-managers/#setuptools for more details (#894, #724)
  • Drop support for Python 3.8 (#874)
  • Improve ignore handling (#908)
  • Parse requirements files with requirements-parser, adding support for parsing nested requirements files referenced with -r <requirement_file> (#913)

Full Changelog: 0.20.0...0.21.0