Fawltydeps

Latest version: v0.15.0

Safety actively analyzes 623274 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 4

0.15.0

This release introduce a much-requested feature to exclude parts of your directory structure when running `fawltydeps`. The new `--exclude` option takes [gitignore-style patterns](https://git-scm.com/docs/gitignore#_pattern_format) and will cause the matching paths to be skipped when traversing your project, and thus excluded from FalwtyDeps' analysis. The exclude patterns apply to all input categories discovered by FawltyDeps (Python code, dependency declarations, and Python environments used to resolve import names provided by packages).

Join Our New [Discord Channel](https://discord.com/channels/1174731094726295632/1176462512212951090). This platform is dedicated to technical discussions, knowledge sharing, and real-time collaboration within the FawltyDeps community. .

What's Changed
* Support exclude patterns by jherland in https://github.com/tweag/FawltyDeps/pull/388
* Integrate gitignore_parser into FawltyDeps by jherland in https://github.com/tweag/FawltyDeps/pull/391
* Fixes for various `--exclude` usability issues by jherland in https://github.com/tweag/FawltyDeps/pull/415

**Full Changelog**: https://github.com/tweag/FawltyDeps/compare/v0.14.0...v0.15.0

Refer to the project's [`README.md`](https://github.com/tweag/FawltyDeps/blob/main/README.md) or `fawltydeps --help` for more documentation.

0.14.0

The main feature of this release is the Windows and MacOS support.

FawltyDeps was originally developed on a Unix-based systems. MacOS support was straightforward, involving primarily an expansion of the test matrix. Support for Windows included:
- Making sure file paths are system-agnostic
- Various changes in the test suite, including the way FawltyDeps and other scripts are invoked
- The way virtual environments are discovered.

Currently, a Windows user can both develop and use FawltyDeps :tada:.


:raised_hands: Community Spotlight: Thanks to 0x26res's input (issue 408), we've relaxed version constraints in our core dependencies (resolved in 409). This sparked vital discussions (summarized in 411) about optimizing our dependency version configurations.

Join Our New [Discord Channel](https://discord.com/channels/1174731094726295632/1176462512212951090). This platform is dedicated to technical discussions, knowledge sharing, and real-time collaboration within the FawltyDeps community. .


What's Changed
* Update our Python project metadata by jherland in https://github.com/tweag/FawltyDeps/pull/396
* Added reference to the FawltyDeps Discord channel by mknorps in https://github.com/tweag/FawltyDeps/pull/400
* Loosen version constraint on core dependencies and re-pin lock file by jherland in https://github.com/tweag/FawltyDeps/pull/409
* MacOS and Windows support by mknorps in https://github.com/tweag/FawltyDeps/pull/397

**Full Changelog**: https://github.com/tweag/FawltyDeps/compare/v0.13.3...v0.14.0

Refer to the project's [`README.md`](https://github.com/tweag/FawltyDeps/blob/main/README.md) or `fawltydeps --help` for more documentation.

0.13.3

This release introduces a slight change in how FawltyDeps finds Python environments (used for resolving declared dependencies into provided import names). Specifically the change regards the use of the _current_ Python environment (i.e. the one in which FawltyDeps itself is installed and running):

Since v0.12, we would not use this environment if _any_ other Python environment was found (either via `--pyenv` or otherwise via searching inside your project). This would still be sufficient in the relatively common case where you (a) run `fawltydeps` with default settings, and (b) FawltyDeps is installed in the same environment as your project dependencies, and (c) this environment lives _outside_ your project directory (e.g. like Poetry does by default). However, if you add another complicating factor: (d) another virtualenv is found _inside_ your project and this happens to _not_ contain your project dependencies, then FawltyDeps would prefer this environment over the _current_ environment, and dependency resolution would suffer.

We have now changed the rules to _always_ include the current environment in the dependency resolution (but at a lower priority than any other Python environments given with `--pyenv` or found in your project). The result should be improved dependency resolution in the above corner case, but otherwise the observed behavior should remain unchanged.

Otherwise, in this release, and thanks to msabramo, we have revamped the `pre-commit` rules that come with FawltyDeps. These will now give more accurate results when there are _untracked_ files in your tree that would otherwise affect FawltyDeps' calculation of undeclared and unused dependencies.

What's Changed
* Reintroduce current Python environment as a separate level in our resolver stack by jherland in https://github.com/tweag/FawltyDeps/pull/394
* Separate `check-undeclared`, `check-unused` pre-commit hooks by msabramo in https://github.com/tweag/FawltyDeps/pull/386
* Preliminary refactoring before `--ignore` feature by jherland in https://github.com/tweag/FawltyDeps/pull/387

New Contributors
* msabramo made their first contribution in https://github.com/tweag/FawltyDeps/pull/386 🎉

**Full Changelog**: https://github.com/tweag/FawltyDeps/compare/v0.13.2...v0.13.3

Refer to the project's [`README.md`](https://github.com/tweag/FawltyDeps/blob/main/README.md) or `fawltydeps --help` for more documentation.

0.13.2

In this release, we've focused on fine-tuning and enhancing the compatibility and functionality of our project.

Notable updates include better recognition of `requirements.txt`, support for Python v3.12, and enhanced handling of Python code with encoding declarations, collectively enhancing the overall performance and user experience.

What's Changed
* Relax regex re. recognizing requirements.txt by jherland in https://github.com/tweag/FawltyDeps/pull/372
* Support Python v3.12 by jherland in https://github.com/tweag/FawltyDeps/pull/383
* Handle Python code with embedded encoding declarations by jherland in https://github.com/tweag/FawltyDeps/pull/384
* Bump version to 0.13.2 by zz1874 in https://github.com/tweag/FawltyDeps/pull/389


**Full Changelog**: https://github.com/tweag/FawltyDeps/compare/v0.13.1...v0.13.2

0.13.1

In this release, we've introduced several key changes and enhancements to improve the functionality and maintainability of our project.

We've implemented the functionality of recognizing and automatically ignoring developer tools and type stubs from project dependencies.
Additionally, we've enhanced the flexibility of the project by adding support for dynamic dependencies in `pyproject.toml`.

In addition to these changes, we've made several refinements to the project. We've prevented `pip install` messages from polluting our JSON output. Our project now also supports Pydantic v2, keeping up with the latest developments in the Python ecosystem. We've also introduced a dedicated contributor guide, and we've improved code organization in `tests/`.

What's Changed
* Add Support for Dynamic Dependencies in pyproject.toml by zz1874 in https://github.com/tweag/FawltyDeps/pull/351
* TemporaryPipInstallResolver: Prevent `pip install` from polluting stdout by jherland in https://github.com/tweag/FawltyDeps/pull/361
* Split the self_test part of the tests into another file by zz1874 in https://github.com/tweag/FawltyDeps/pull/363
* Detect types stubs dependencies by zz1874 in https://github.com/tweag/FawltyDeps/pull/362
* Support Pydantic v2 by Nour-Mws in https://github.com/tweag/FawltyDeps/pull/364
* Add a contributor guide by zz1874 in https://github.com/tweag/FawltyDeps/pull/366
* Add Zhihan as maintainer by jherland in https://github.com/tweag/FawltyDeps/pull/367
* Exclude development tools from unused dependencies detection by zz1874 in https://github.com/tweag/FawltyDeps/pull/365
* Bump version to 0.13.1 by zz1874 in https://github.com/tweag/FawltyDeps/pull/369


**Full Changelog**: https://github.com/tweag/FawltyDeps/compare/v0.13.0...v0.13.1

Refer to the project's [README](https://github.com/tweag/FawltyDeps/blob/main/README.md) or `fawltydeps --help` for more documentation.

0.13.0

This is a major release that marks the completion of features for our mapping strategy milestone.
In particular, identity mapping and mapping from temporarily installed dependencies are now mutually exclusive and the latter can be invoked from the CLI with the `--install-deps` option. The documentation has been updated to reflect all the changes to mapping we have made over the recent releases.

A new addition is the `--list-sources` option, which makes it possible to examine the code, deps and Python environment sources used by FawltyDeps when analyzing your project.

This release also updates the CI and the test suite.

What's Changed
* ADD CLI option for --install-deps by mknorps in https://github.com/tweag/FawltyDeps/pull/341
* Run fawltydeps against itself in CI by zz1874 in https://github.com/tweag/FawltyDeps/pull/348
* Make identity mapping and install-deps mutually exclusive by Nour-Mws in https://github.com/tweag/FawltyDeps/pull/349
* Add `--list-sources` to CLI by jherland in https://github.com/tweag/FawltyDeps/pull/346
* Add tests to verify fallback to current venv when no other env is found by jherland in https://github.com/tweag/FawltyDeps/pull/350
* Pin version of Poetry in CI to 1.5.1 to maintain support for Python 3.7 by Nour-Mws in https://github.com/tweag/FawltyDeps/pull/354
* Update the documentation to match the current state of the mapping strategy by Nour-Mws in https://github.com/tweag/FawltyDeps/pull/356

New Contributors
* zz1874 made her first contribution in https://github.com/tweag/FawltyDeps/pull/348

**Full Changelog**: https://github.com/tweag/FawltyDeps/compare/v0.12.1...v0.13.0


Refer to the project's [`README`](https://github.com/tweag/FawltyDeps/blob/main/README.md) or `fawltydeps --help` for more documentation.

Page 1 of 4

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.