Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Yet another cross platform dependency bug #9921

Closed
corby opened this issue Dec 24, 2024 · 6 comments
Closed

Yet another cross platform dependency bug #9921

corby opened this issue Dec 24, 2024 · 6 comments

Comments

@corby
Copy link

corby commented Dec 24, 2024

Description

PySide6 released a MacOS ONY patch for 6.8.1.1
I'm on a linux machine (Ubunut)
My dependency is
pyside6 = '^6.8'

When dong a poetry update the update fails because it can't find a 6.8.1.1. patch for linux when it sees the mac file.

Workarround:

pyside6 = [
    { version = "^6.8.1.1", markers = "sys_platform == 'macos'" },
    { version = "6.8.1", markers = "sys_platform == 'win32'" },
    { version = "6.8.1", markers = "sys_platform == 'linux'" },
]

Example:

[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"

[tool.poetry]
name = "test"
version = "0.1.0"
description = ""
authors = [""]
readme = ""
packages = [
    { include = "test", from = "src" }
]

[tool.poetry.dependencies]
python = ">=3.10,<3.14"
pyside6 = "^6.8"

Loading configuration file /home/****/.config/pypoetry/config.toml
Using virtualenv: /home/****/venvs/****/desktop
Updating dependencies
Resolving dependencies...
   1: fact: test is 0.1.0
   1: derived: test
   1: fact: test depends on pyside6 (^6.8)
   1: selecting test (0.1.0)
   1: derived: pyside6 (>=6.8,<7.0)
Checking if keyring is available
Backend 'null Keyring' is not suitable
No valid keyring backend was found
Creating new session for pypi.org
Source (PyPI): 5 packages found for pyside6 >=6.8,<7.0
   1: fact: pyside6 (6.8.1.1) depends on shiboken6 (6.8.1.1)
   1: fact: pyside6 (6.8.1.1) depends on PySide6-Essentials (6.8.1.1)
   1: fact: pyside6 (6.8.1.1) depends on PySide6-Addons (6.8.1.1)
   1: selecting pyside6 (6.8.1.1)
   1: derived: PySide6-Addons (==6.8.1.1)
   1: derived: PySide6-Essentials (==6.8.1.1)
   1: derived: shiboken6 (==6.8.1.1)
Source (PyPI): 1 packages found for pyside6-addons 6.8.1.1
Source (PyPI): 1 packages found for pyside6-essentials 6.8.1.1
Source (PyPI): 1 packages found for shiboken6 6.8.1.1
   1: fact: pyside6-addons (6.8.1.1) depends on shiboken6 (6.8.1.1)
   1: fact: pyside6-addons (6.8.1.1) depends on PySide6-Essentials (6.8.1.1)
   1: selecting pyside6-addons (6.8.1.1)
   1: fact: pyside6-essentials (6.8.1.1) depends on shiboken6 (6.8.1.1)
   1: selecting pyside6-essentials (6.8.1.1)
   1: selecting shiboken6 (6.8.1.1)
   1: Version solving took 0.040 seconds.
   1: Tried 1 solutions.

Finding the necessary packages for the current system
Source (PyPI): 1 packages found for pyside6 >=6.8,<7.0
Source (PyPI): 1 packages found for pyside6-addons 6.8.1.1
Source (PyPI): 1 packages found for pyside6-essentials 6.8.1.1
Source (PyPI): 1 packages found for shiboken6 6.8.1.1

Package operations: 0 installs, 4 updates, 0 removals

  - Updating shiboken6 (6.8.1 -> 6.8.1.1): Pending...
Skipping wheel shiboken6-6.8.1.1-cp39-abi3-macosx_12_0_universal2.whl as this is not supported by the current environment
  - Updating shiboken6 (6.8.1 -> 6.8.1.1): Failed

  Stack trace:

  6  ~/venvs/****/desktop/lib/python3.13/site-packages/poetry/installation/executor.py:285 in _execute_operation
      283│ 
      284│             try:
    → 285│                 result = self._do_execute_operation(operation)
      286│             except EnvCommandError as e:
      287│                 if e.e.returncode == -2:

  5  ~/venvs/****/desktop/lib/python3.13/site-packages/poetry/installation/executor.py:395 in _do_execute_operation
      393│             return 0
      394│ 
    → 395│         result: int = getattr(self, f"_execute_{method}")(operation)
      396│ 
      397│         if result != 0:

  4  ~/venvs/****/desktop/lib/python3.13/site-packages/poetry/installation/executor.py:527 in _execute_update
      525│ 
      526│     def _execute_update(self, operation: Install | Update) -> int:
    → 527│         status_code = self._update(operation)
      528│ 
      529│         self._save_url_reference(operation)

  3  ~/venvs/****/desktop/lib/python3.13/site-packages/poetry/installation/executor.py:586 in _update
      584│ 
      585│     def _update(self, operation: Install | Update) -> int:
    → 586│         return self._install(operation)
      587│ 
      588│     def _remove(self, package: Package) -> int:

  2  ~/venvs/****/desktop/lib/python3.13/site-packages/poetry/installation/executor.py:558 in _install
      556│             archive = self._download_link(operation, Link(package.source_url))
      557│         else:
    → 558│             archive = self._download(operation)
      559│ 
      560│         operation_message = self.get_operation_message(operation)

  1  ~/venvs/****/desktop/lib/python3.13/site-packages/poetry/installation/executor.py:736 in _download
      734│ 
      735│     def _download(self, operation: Install | Update) -> Path:
    → 736│         link = self._chooser.choose_for(operation.package)
      737│ 
      738│         if link.yanked:

  RuntimeError

  Unable to find installation candidates for shiboken6 (6.8.1.1)

  at ~/venvs/****/desktop/lib/python3.13/site-packages/poetry/installation/chooser.py:74 in choose_for
       70│ 
       71│             links.append(link)
       72│ 
       73│         if not links:
    →  74│             raise RuntimeError(f"Unable to find installation candidates for {package}")
       75│ 
       76│         # Get the best link
       77│         chosen = max(links, key=lambda link: self._sort_key(package, link))
       78│ 

Cannot install shiboken6.

@corby corby added kind/bug Something isn't working as expected status/triage This issue needs to be triaged labels Dec 24, 2024
@dimbleby
Copy link
Contributor

needs reporting to pyside, not here

@alexdewar
Copy link

Any luck fixing this? I'm having the same issue.

@dimbleby
Copy link
Contributor

dimbleby commented Jan 7, 2025

needs reporting to pyside, not here

@abn
Copy link
Member

abn commented Jan 7, 2025

Agreed. Poetry is working as expected here. Poetry does not try to lock a dependency on different versions based on platform availability unless explicitly told to do so. It selects the latest applicable version based on the provided constraints.

You can either do what the workaround suggests, or alternatively exclude the bad version altogether.

@abn abn removed kind/bug Something isn't working as expected status/triage This issue needs to be triaged labels Jan 7, 2025
@abn abn closed this as not planned Won't fix, can't repro, duplicate, stale Jan 7, 2025
@alexdewar
Copy link

What workaround?

@abn
Copy link
Member

abn commented Jan 7, 2025

@alexdewar please see issue description.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants