Vydání LiteLLM 1.96.1 vyčerpalo místo na PyPI a zbyly z něj na indexu čtyři soubory z 36
Nahrávání vydání 1.96.1 se 11. srpna zastavilo po čtyřech souborech z 36, protože projektu došlo místo na PyPI. Názvy souborů jsou na indexu neměnné, takže ta verze zůstane torzem bez zdrojového archivu a bez balíčků pro novější Python. Následující vydání 1.96.2 je díky jinému balení o čtyři pětiny menší.
LiteLLM je knihovna a brána, přes kterou se dají volat rozhraní jazykových modelů od různých poskytovatelů jedním způsobem. V balíčkovém indexu Pythonu, tedy na PyPI, má dnes 1 189 verzí a 2 915 souborů. Kolik místa smí projekt na indexu zabrat, je ale omezené – a LiteLLM na to 11. srpna 2026 narazil uprostřed vydávání verze 1.96.1.

Čtyři soubory z 36 a pátý už se nevešel
Nahrávání začalo v 02:31:57 UTC a poslední soubor, který prošel, dorazil o jedenáct vteřin později. Na indexu tak stojí verze, kterou tvoří čtyři instalační balíčky ve formátu wheel (koncovka .whl) pro Python 3.10 – pro macOS na Intelu, macOS na ARM a pro Linux s knihovnou glibc na aarch64 a x86-64. Dohromady 104,6 MB.
Předchozí vydání 1.96.0 z 9. srpna jich má 36 a 933,6 MB: pětatřicet wheelů, tedy pět verzí Pythonu krát sedm platforem, a jeden zdrojový archiv. Nahrávalo se ve stejném pořadí, takže je z něj vidět, který soubor by byl v řadě pátý – wheel pro musllinux na aarch64. Přesně tam se to o dva dny později zastavilo.
Sto megabajtů na soubor, deset gigabajtů na projekt
PyPI hlídá dvě čísla: velikost jednoho souboru a součet všech souborů projektu. Výchozí meze jsou podle dokumentace indexu 100,0 MB na soubor a 10,0 GB na projekt. Kolik má projekt povoleno doopravdy a kolik už spotřeboval, vidí podle téhož textu jen jeho správce v nastavení; veřejně ta čísla nejsou.
Že má LiteLLM strop zvednutý, se dá dopočítat. Sečtou-li se pole s velikostí u všech 2 915 souborů, které o projektu vypisuje JSON rozhraní PyPI, vyjde 26,56 GB. Výchozích deset gigabajtů by nestačilo ani na polovinu.
Uklidit se to snadno nedá. Stažení verze, kterému se říká yank, podle dokumentace místo neuvolní – soubory na indexu zůstanou –, uvolní ho až smazání. To je nevratné a rozbije instalaci každému, kdo má takovou verzi připnutou.
Šest a půl gigabajtu za tři dny
Kdy se místo protočilo, je ze záznamů PyPI vidět docela přesně. Do 6. srpna mělo vydání LiteLLM šestnáct souborů a kolem 406 MB: pět verzí Pythonu krát tři platformy plus zdrojový archiv. Vývojová verze 1.97.0.dev1 z 5. srpna má ještě tenhle tvar, o dva dny mladší 1.97.0.dev2 už 36 souborů a 937,4 MB. Přibyly wheely pro macOS a pro musllinux, tedy pro Linux s knihovnou musl.
Pak přišla vlna dovydání starších řad. Osmého a devátého srpna vyšly vedle sebe verze 1.88.6, 1.89.7, 1.90.7, 1.91.5, 1.92.2, 1.93.2, 1.94.2, 1.94.3 a 1.95.1. Pět z nich má široké balení po 29 až 36 souborech. Šest jich vyšlo devátého srpna mezi 02:00 a 02:31 UTC. Od 7. do 9. srpna tak v projektu přibylo 6,6 GB, opět podle součtu týchž polí. O dva dny později došlo místo.
Nové balení ubralo čtyři pětiny
Verze 1.96.2 vyšla 11. srpna ve 21:12 UTC a má osm souborů: sedm wheelů a zdrojový archiv. Sedm místo pětatřiceti proto, že jsou označené cp310-abi3. Zkratka abi3 znamená stabilní binární rozhraní Pythonu – knihovna z něj používá jen tu část, která se mezi verzemi jazyka nemění, takže jeden soubor platí pro Python 3.10 i pro všechny novější. Pět wheelů na platformu se tím smrskne na jeden.
Vydání kleslo z 933,6 MB na 186,2 MB, tedy o 80,1 % (podíl obou součtů). Ve velikosti 1.96.0 by se do výchozí desetigigabajtové kvóty vešlo necelých jedenáct vydání, ve velikosti 1.96.2 skoro čtyřiapadesát.
Odkud se ta změna vzala, se z repozitáře nedozvíte. Na větvi stable/1.96.x, ze které se 1.96.2 vydávala, stojí mezi oběma verzemi dva commity a jejich sloučení – zvýšení čísla verze a obnovení zámkového souboru –, a návrh #36570 o sobě sám píše, že mění čtyři řádky ve dvou souborech. Nastavení sestavení, tedy maturin nad pyo3, v té větvi zůstalo beze změny. Rozdíl mezi tím, co je vydané, a tím, co je ve větvi, přitom umí být i opačný: u nástroje Aider je novější kód právě v té nevydané. Vývojové verze 1.98.0.dev1 a 1.98.0.dev2 z 12. a 13. srpna už drží nový tvar dál: osm souborů, kolem 186 MB.
Verzi 1.96.1 už nikdo nedostaví
Chybějící soubory by pod číslem 1.96.1 doplnit šlo – publikační krok existující soubory přeskakuje, místo aby skončil chybou, a popis návrhu to sám připouští. Zamítá to ale s tím, že by stabilní vydání vzniklo ze dvou různých sestavení s odstupem dnů a nikdo neručí za to, že by se dodatečné wheely s těmi čtyřmi shodovaly. Přepsat ty čtyři nejde vůbec, protože názvy souborů jsou na PyPI neměnné.
Verze proto na indexu zůstává tak, jak je: nestažená, bez zdrojového archivu a bez wheelů pro Python 3.11 až 3.14. Kdo si ji vyžádá jménem, nainstaluje ji jedině na Pythonu 3.10 a jen na čtyřech ze sedmi platforem; jinde není z čeho. Značka v1.96.1 v repozitáři není, rozhraní GitHubu na ni odpovídá kódem 404, kdežto na v1.96.2 vydá záznam. Podle popisu návrhu nevznikly ani obrazy kontejneru na Docker Hubu a v GHCR.
Popis návrhu zároveň upozorňoval, že kvótu neřeší a že se 1.96.2 může spálit stejně. Nespálila se. Jeho nadpis přitom mluví o „PyPI storage failure“, tedy o poruše indexu; z jeho vlastního textu plyne něco jiného – místo došlo jednomu projektu.
Zdroje
- JSON rozhraní PyPI k projektu litellm – počty souborů, velikosti a časy nahrání, ze kterých vycházejí všechny součty v textu
- Návrh #36570 a poznámky k vydání 1.96.2
- Storage Limits v dokumentaci PyPI
- Historie větve stable/1.96.x a seznam verzí na PyPI