python-poetry / python-poetry/poetry

Support for combining sources/indexes

Open
#9,156 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

kind/feature status/triage
Dominant language
Python
Stars
34.3k
Forks
2.5k
Avg merge
2d 19h
Merged PRs (30d)
30

Description

Issue Kind

Brand new capability

Description

Indexes such as piwheels exist to provide builds of python packages for additional platforms/architectures that are not provided by PyPI.

When using these with Pip, it is common to add them as an additional 'source' for wheels. Pip will search all provided indexes until it finds a wheel that it can install.

Poetry, on the other hand, will only record a single source per package when creating the lock file. This causes 2 issues:

  1. Cross-architecture installations
    • It is impossible to generate a lock file that can be used on two architectures, where one is provided for by piwheels and the other is provided for by pypi
  2. Complex single architecture installations
    • Some packages are found on one index, but happen not to be installable on that architecture - so a single architecture needs to pull from 2 indexes, but some those packages are available on both.
Impact

Poetry is largely unusable on Raspberry Pi:

https://github.com/python-poetry/poetry/issues/9145

Workarounds

Using markers and iterating

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by investigating Poetry's handling of package sources and its lock-file generation, focusing on how multiple indexes could be represented across architectures. Define expected resolution and locking behavior for packages available from different sources, then add coverage for the Raspberry Pi and cross-architecture cases described in the issue.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.