pylock.toml export drops wheels when the sdist sorts between wheels
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 35/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Ferma
- Stack tecnologico
- python
- Ambito
- backend, build-system
Direzione di ricerca
Inspect Exporter._export_pylock_toml and the grouping of package.files; the report identifies itertools.groupby and the dict comprehension as the failure path. Reproduce with ruamel.yaml.clib 0.2.14 and confirm the exported wheels array includes all 56 wheels. Check the issue’s linked pull request #379 for work already underway.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
poetry export --format pylock.toml can leave wheels out of packages.wheels.
Exporter._export_pylock_toml splits package.files into sdists and wheels with itertools.groupby. groupby only groups consecutive items, and the lock file sorts files by file name. If the sdist file name sorts between wheel file names, groupby returns two "wheel" groups. The dict comprehension keeps only the last group, so every wheel before the sdist is missing from the exported file.
This happens with real packages whose wheel file names use different name normalizations. For example, ruamel.yaml.clib 0.2.14 has these files on PyPI, in lock file order:
ruamel.yaml.clib-0.2.14-cp310-cp310-macosx_10_9_universal2.whl
... (54 wheels named ruamel.yaml.clib-*)
ruamel.yaml.clib-0.2.14.tar.gz
ruamel_yaml_clib-0.2.14-cp314-cp314-win_amd64.whl
... (2 wheels named ruamel_yaml_clib-*)
The exported pylock.toml lists only the last 2 wheels. Installers that use the file then fall back to building the sdist on every platform that the 54 dropped wheels cover.
Steps to reproduce
- Lock a project that depends on
ruamel.yaml.clib==0.2.14with lock file format 2.1. - Run
poetry export --format pylock.toml --output pylock.toml. - Check the
wheelsarray of theruamel-yaml-clibpackage.
Expected: all 56 wheels from the lock file.
Actual: only the 2 ruamel_yaml_clib-* wheels.
Environment
- poetry-plugin-export: main (cc06037), 1.10.1
- Poetry: 2.5.1
- Lingua principale
- Python
- Stelle
- 336
- Fork
- 60
- Merge medio
- 10m
- PR unite (30g)
- 1
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di python-poetry/poetry-plugin-export
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 48/100
-
Does not installAperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
python-poetry/poetry-plugin-export#341 · 5 commenti · 1 reazione ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 42/100
python-poetry/poetry-plugin-export#340 · 1 commento ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 52/100
Tutte le issue di python-poetry/poetry-plugin-export
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
didi/helixharness#18 ·
-
[MOVIE]: Airport '77 (1977)Apertarequest-theme
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 78/100
LizardByte/ThemerrDB#9883 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
NousResearch/hermes-agent#149885 ·
I maintainer di solito rispondono entro 1 giorno
-
Set cache_ok = True on GUID TypeDecorator to enable SQLAlchemy query cachingForse già presa @patelshivani2283-lab l’ha presa oggi. Aperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 91/100
fedora-infra/anitya#2157 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
Project-MONAI/MONAI#9258 ·
I maintainer di solito rispondono entro 3 giorni