Resolvelib

Latest version: v1.1.0

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

Scan your dependencies

Page 1 of 4

1.1.0

==================

No significant changes.

1.1.0b1

====================

Features
--------

- Declare supported Python version support ">= 3.7" in dist meta `129 <https://github.com/sarugaku/resolvelib/issues/129>`_

- Improve exception chaining when ResolutionImpossible raises during backjumping `133 <https://github.com/sarugaku/resolvelib/issues/133>`_

- Switch from pyi files to modern annotations based type hinting `135 <https://github.com/sarugaku/resolvelib/issues/135>`_

- In tests the commentjson test dependency with re.sub `141 <https://github.com/sarugaku/resolvelib/issues/141>`_

- Deduplicate failure causes to save memory and reduce backtracking overhead `143 <https://github.com/sarugaku/resolvelib/issues/143>`_

- New `narrow_requirement_selection` provider method giving option for
providers to reduce the number of times sort key `get_preference` is
called in long running backtrack `145 <https://github.com/sarugaku/resolvelib/issues/145>`_

- Run tests against Python 3.12, 3.13, and use latest version of CI dependencies `153 <https://github.com/sarugaku/resolvelib/issues/153>`_

- Update py2ndex script to use metadata files, skip 404, and support PEP 723 `156 <https://github.com/sarugaku/resolvelib/issues/156>`_

- Replace setuptools.cfg and mypy.ini with pyproject.toml `157 <https://github.com/sarugaku/resolvelib/issues/157>`_

- Add tests type "unvisited" to functional Python tests to ensure backjumping
is correctly skipping candidates `158 <https://github.com/sarugaku/resolvelib/issues/158>`_

- Switch from flake8 to ruff for linting `160 <https://github.com/sarugaku/resolvelib/issues/160>`_

- Enable automatic TYPE_CHECK guarding for imports only used for type hinting
via ruff rules TCH and FA `166 <https://github.com/sarugaku/resolvelib/issues/166>`_


Bug Fixes
---------

- Fix example reporter_demo `get_preference` method which requires arg `backtrack_causes` `136 <https://github.com/sarugaku/resolvelib/issues/136>`_

- Clarify the docstrings for `providers.py` `138 <https://github.com/sarugaku/resolvelib/issues/138>`_

- Pin Black version for linting to prevent CI failures `150 <https://github.com/sarugaku/resolvelib/issues/150>`_

- In unexpected situation where broken_state.mapping is empty, stop backtracking,
and continue resolution (rather than throwing ResolutionImpossible) `152 <https://github.com/sarugaku/resolvelib/issues/152>`_

- During backtracking check if the current broken state is an incompatible dependency,
if not stop backtracking and continue resolution. `155 <https://github.com/sarugaku/resolvelib/issues/155>`_

- Separate AbstractResolver and Resolver into different modules `162 <https://github.com/sarugaku/resolvelib/issues/162>`_

- Separate resolvers into different modules `163 <https://github.com/sarugaku/resolvelib/issues/163>`_

- Export criterion in resolvers to keep compatibility `164 <https://github.com/sarugaku/resolvelib/issues/164>`_

- Enable isorting via ruff `165 <https://github.com/sarugaku/resolvelib/issues/165>`_

1.0.1

==================

Bug Fixes
---------

- Fix calls to opaque objects and use provider interface calls instead. `126 <https://github.com/sarugaku/resolvelib/issues/126>`_

1.0.0

==================

Features
--------

- Implement backjumping to significantly speed up the resolution process by skipping over irrelevant parts of the resolution search space. `113 <https://github.com/sarugaku/resolvelib/issues/113>`_

0.9.0

==================

Features
--------

- A new reporter hook ``rejecting_candidate`` is added, replacing ``backtracking``.
The hook is called every time the resolver rejects a conflicting candidate before
trying out the next one in line. `101 <https://github.com/sarugaku/resolvelib/issues/101>`_


Bug Fixes
---------

- Some valid states that were previously rejected are now accepted. This affects
states where multiple candidates for the same dependency conflict with each
other. The ``information`` argument passed to
``AbstractProvider.get_preference`` may now contain empty iterators. This has
always been allowed by the method definition but it was previously not possible
in practice. `91 <https://github.com/sarugaku/resolvelib/issues/91>`_

0.8.1

==================

Features
--------

- A new reporter hook ``resolving_conflicts`` is added. The resolver triggers
this hook when it detects conflicts in the dependency tree, and before it
attempts to fix them. The hook accepts one single argument ``causes``, which
is a list of ``(requirement, parent)`` 2-tuples that represents all the
edges that lead to the detected conflicts. `81 <https://github.com/sarugaku/resolvelib/issues/81>`_

Page 1 of 4

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.