vorta icon indicating copy to clipboard operation
vorta copied to clipboard

Python Platform Dirs dependency issue

Open jonathanjsimon opened this issue 1 year ago • 10 comments

Description

The python platformdirs library has seen its 4.0.0 version become public release. Vorta depends on < 4.0.0 and will not run at all with 4.0.0 installed. This can create a dependency nightmare. Manually downgrading to an older platformdirs library fixes the issue.

Reproduction

  • [X] I tried to reproduce the issue.
  • [X] I was able to reproduce the issue.

OS

EndeavourOS KDE Latest

Version of Vorta

0.8.12

What did you install Vorta with?

AUR

Version of Borg

1.2.6

Logs

❯ vorta
Traceback (most recent call last):
  File "/usr/lib/python3.11/site-packages/pkg_resources/__init__.py", line 631, in _build_master
    ws.require(__requires__)
  File "/usr/lib/python3.11/site-packages/pkg_resources/__init__.py", line 968, in require
    needed = self.resolve(parse_requirements(requirements))
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/pkg_resources/__init__.py", line 829, in resolve
    dist = self._resolve_dist(
           ^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/pkg_resources/__init__.py", line 875, in _resolve_dist
    raise VersionConflict(dist, req).with_context(dependent_req)
pkg_resources.ContextualVersionConflict: (platformdirs 4.0.0 (/usr/lib/python3.11/site-packages), Requirement.parse('platformdirs<4.0.0,>=2.6.0'), {'vorta'})

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/bin/vorta", line 33, in <module>
    sys.exit(load_entry_point('vorta==0.8.12', 'gui_scripts', 'vorta')())
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/bin/vorta", line 25, in importlib_load_entry_point
    return next(matches).load()
           ^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/importlib/metadata/__init__.py", line 202, in load
    module = import_module(match.group('module'))
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1204, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1147, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 940, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/usr/lib/python3.11/site-packages/vorta/__main__.py", line 9, in <module>
    from vorta.store.connection import init_db
  File "/usr/lib/python3.11/site-packages/vorta/store/connection.py", line 6, in <module>
    from .migrations import run_migrations
  File "/usr/lib/python3.11/site-packages/vorta/store/migrations.py", line 4, in <module>
    from .models import (
  File "/usr/lib/python3.11/site-packages/vorta/store/models.py", line 11, in <module>
    from vorta.utils import slugify
  File "/usr/lib/python3.11/site-packages/vorta/utils.py", line 18, in <module>
    from vorta.borg._compatibility import BorgCompatibility
  File "/usr/lib/python3.11/site-packages/vorta/borg/_compatibility.py", line 1, in <module>
    from pkg_resources import parse_version
  File "/usr/lib/python3.11/site-packages/pkg_resources/__init__.py", line 3327, in <module>
    @_call_aside
     ^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/pkg_resources/__init__.py", line 3302, in _call_aside
    f(*args, **kwargs)
  File "/usr/lib/python3.11/site-packages/pkg_resources/__init__.py", line 3340, in _initialize_master_working_set
    working_set = WorkingSet._build_master()
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/pkg_resources/__init__.py", line 633, in _build_master
    return cls._build_from_requirements(__requires__)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/pkg_resources/__init__.py", line 646, in _build_from_requirements
    dists = ws.resolve(reqs, Environment())
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/pkg_resources/__init__.py", line 829, in resolve
    dist = self._resolve_dist(
           ^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/pkg_resources/__init__.py", line 870, in _resolve_dist
    raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'platformdirs<4.0.0,>=2.6.0' distribution was not found and is required by vorta

jonathanjsimon avatar Nov 14 '23 13:11 jonathanjsimon

Hi! Exact same issue here! After downgrading python-platformdirs from 4.0.0-1 to 3.11.0-1 vorta works fine. Added python-platformdirs to IgnorePkg until fix.

Reproduction

[x] I tried to reproduce the issue. [x] I was able to reproduce the issue.

OS

EndeavourOS KDE

Version of Vorta

0.8.12

What did you install Vorta with?

pacman from Chaotic-AUR

Version of Borg

1.2.6

Logs

orko  🏠   🕙 19:36  vorta
Traceback (most recent call last):
  File "/usr/lib/python3.11/site-packages/pkg_resources/__init__.py", line 631, in _build_master
    ws.require(__requires__)
  File "/usr/lib/python3.11/site-packages/pkg_resources/__init__.py", line 968, in require
    needed = self.resolve(parse_requirements(requirements))
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/pkg_resources/__init__.py", line 829, in resolve
    dist = self._resolve_dist(
           ^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/pkg_resources/__init__.py", line 875, in _resolve_dist
    raise VersionConflict(dist, req).with_context(dependent_req)
pkg_resources.ContextualVersionConflict: (platformdirs 4.0.0 (/usr/lib/python3.11/site-packages), Requirement.parse('platformdirs<4.0.0,>=2.6.0'), {'vorta'})

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/bin/vorta", line 33, in <module>
    sys.exit(load_entry_point('vorta==0.8.12', 'gui_scripts', 'vorta')())
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/bin/vorta", line 25, in importlib_load_entry_point
    return next(matches).load()
           ^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/importlib/metadata/__init__.py", line 202, in load
    module = import_module(match.group('module'))
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1204, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1147, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 940, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/usr/lib/python3.11/site-packages/vorta/__main__.py", line 9, in <module>
    from vorta.store.connection import init_db
  File "/usr/lib/python3.11/site-packages/vorta/store/connection.py", line 6, in <module>
    from .migrations import run_migrations
  File "/usr/lib/python3.11/site-packages/vorta/store/migrations.py", line 4, in <module>
    from .models import (
  File "/usr/lib/python3.11/site-packages/vorta/store/models.py", line 11, in <module>
    from vorta.utils import slugify
  File "/usr/lib/python3.11/site-packages/vorta/utils.py", line 18, in <module>
    from vorta.borg._compatibility import BorgCompatibility
  File "/usr/lib/python3.11/site-packages/vorta/borg/_compatibility.py", line 1, in <module>
    from pkg_resources import parse_version
  File "/usr/lib/python3.11/site-packages/pkg_resources/__init__.py", line 3327, in <module>
    @_call_aside
     ^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/pkg_resources/__init__.py", line 3302, in _call_aside
    f(*args, **kwargs)
  File "/usr/lib/python3.11/site-packages/pkg_resources/__init__.py", line 3340, in _initialize_master_working_set
    working_set = WorkingSet._build_master()
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/pkg_resources/__init__.py", line 633, in _build_master
    return cls._build_from_requirements(__requires__)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/pkg_resources/__init__.py", line 646, in _build_from_requirements
    dists = ws.resolve(reqs, Environment())
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/pkg_resources/__init__.py", line 829, in resolve
    dist = self._resolve_dist(
           ^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/pkg_resources/__init__.py", line 870, in _resolve_dist
    raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'platformdirs<4.0.0,>=2.6.0' distribution was not found and is required by vorta

Orko79 avatar Nov 14 '23 19:11 Orko79

Exact same issue here on EndeavourOS 6.6.1 Budgie (No point posting logs, it's the exact same stack trace as above) Confirmed that downgrading python-platformdirs to 3.11 fixed the issue

CPU-Blanc avatar Nov 14 '23 20:11 CPU-Blanc

Fixed earlier today in #1843?

m3nu avatar Nov 14 '23 22:11 m3nu

I use ArchLinux, too.

Quick and Dirty fix, after I checked the pull request https://github.com/borgbase/vorta/pull/1843.

edit file /usr/lib/python3.11/site-packages/vorta-0.8.12-py3.11.egg-info/requires.txt

changed the version number...start vorta again. [:sys_platform != "darwin"] platformdirs<5.0.0,>=2.6.0

nedy13 avatar Nov 15 '23 16:11 nedy13

Using pipx is also a good solution to dependency conflicts.

real-yfprojects avatar Nov 15 '23 16:11 real-yfprojects

Yes, but the app is supplied as an AUR package, which is certainly easier to manage than pipx, IMHO.

jonathanjsimon avatar Nov 15 '23 16:11 jonathanjsimon

Maybe we remove this version range altogether, if it's not needed any more. Will check why it was added in the first place.

m3nu avatar Nov 15 '23 18:11 m3nu

I use ArchLinux, too.

Quick and Dirty fix, after I checked the pull request #1843.

edit file /usr/lib/python3.11/site-packages/vorta-0.8.12-py3.11.egg-info/requires.txt

changed the version number...start vorta again. [:sys_platform != "darwin"] platformdirs<5.0.0,>=2.6.0

Works for me too!

Orko79 avatar Nov 16 '23 17:11 Orko79

This seems to have been fixed as of version 0.8.12-3

CPU-Blanc avatar Nov 23 '23 20:11 CPU-Blanc

hi, I saw that release 0.8.12-3 is now available on AUR. Has this release fixed the python-platformdirs 4.0.0 issue? For now I still put this library in the ignored packages list and downgraded to version 3.11

(0s = Endeavors)

tux-wclp avatar Nov 28 '23 11:11 tux-wclp

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

github-actions[bot] avatar Apr 08 '24 02:04 github-actions[bot]

This issue was closed because it has been stalled for 7 days with no activity.

github-actions[bot] avatar Apr 15 '24 02:04 github-actions[bot]