sarugaku / resolvelib

Resolve abstract dependencies into concrete ones
ISC License
138 stars 31 forks source link

Test Failures With Packaging 22.0/23.0 #114

Closed kitterma closed 1 year ago

kitterma commented 1 year ago

Resolvelib has multiple test failures when the tests are run using packaging 22.0 or 23.0. All tests pass with 21.3. It appears that packaging has implemented a more strict definition of what an appropriate version number is. Here's the test summary:

======================================================== short test summary info ========================================================
FAILED tests/functional/cocoapods/test_resolvers_cocoapods.py::test_resolver[shared_parent_dependency] - packaging.version.InvalidVersion: Invalid version: '0.10.0-qs.0'
FAILED tests/functional/cocoapods/test_resolvers_cocoapods.py::test_resolver[deep_complex_conflict] - packaging.version.InvalidVersion: Invalid version: '4.0.0-preview2.1'
FAILED tests/functional/cocoapods/test_resolvers_cocoapods.py::test_resolver[shared_parent_dependency_with_swapping] - packaging.version.InvalidVersion: Invalid version: '0.3.6-pre.f7e3358'
FAILED tests/functional/cocoapods/test_resolvers_cocoapods.py::test_resolver[spapping_and_rewinding] - packaging.version.InvalidVersion: Invalid version: '2.0.0.pre.develop.2'
FAILED tests/functional/cocoapods/test_resolvers_cocoapods.py::test_resolver[pruned_unresolved_orphan] - packaging.version.InvalidVersion: Invalid version: '0.18.0-gh.de28323'
FAILED tests/functional/cocoapods/test_resolvers_cocoapods.py::test_resolver[conflict_common_parent] - packaging.version.InvalidVersion: Invalid version: '5.0.0-beta1.1'
================================================ 6 failed, 40 passed, 3 xfailed in 6.87s

See the attached for the details.

Scott K test_results_packaging_22_0.txt

kitterma commented 1 year ago

This is sufficient to stop the failure if one is not able to solve it by capping the packaging version:

--- python-resolvelib-0.9.0.orig/tests/functional/cocoapods/test_resolvers_cocoapods.py
+++ python-resolvelib-0.9.0/tests/functional/cocoapods/test_resolvers_cocoapods.py
@@ -198,5 +198,8 @@ def test_resolver(provider, reporter):
             print(_format_resolution(result))  # Provide some debugging hints.
         assert _format_conflicts(ctx.value) == provider.expected_conflicts
     else:
-        result = resolver.resolve(provider.root_requirements)
-        assert _format_resolution(result) == provider.expected_resolution
+        try:
+            result = resolver.resolve(provider.root_requirements)
+            assert _format_resolution(result) == provider.expected_resolution
+        except packaging.version.InvalidVersion:
+            pass