python-poetry / python-poetry/poetry
Support for combining sources/indexes
Nobody has claimed this yet.
- 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:
- 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
- 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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