PyPI laat beheerders Python-packages als gearchiveerd aanmerken

De Python Package Index, PyPI, gaat ontwikkelaars de mogelijkheid bieden om oude projecten te archiveren. Daarmee kunnen ze duidelijk aangeven aan gebruikers dat er geen updates meer komen. Volgens PyPI is dat veiliger, nadat er recent meerdere veiligheidsincidenten waren.

De beheerders van PyPI schrijven in een blogpost over de nieuwe mogelijkheid in de distributietool. Maintainers van Python-library's en -packages kunnen een project voortaan als Gearchiveerd aanmerken. Dat betekent in de praktijk dat er geen nieuwe uploads meer kunnen worden gedaan. Beheerders kunnen het project vanuit hun instellingen aanpassen. PyPI raadt aan in dat geval een laatste versie uit te brengen en de readme daarop aan te passen. Beheerders kunnen een project altijd weer dearchiveren.

Gebruikers die via PyPI een package willen downloaden, krijgen in zo'n geval een waarschuwing te zien. Daarin staat dat het project gearchiveerd is en dat er daarom geen nieuwe releases meer worden uitgebracht.

PyPI archive

Volgens PyPI gaat het alleen om een visuele aanduiding van de status van een project. Het is niet bedoeld als indicatie dat een project in de toekomst wordt verwijderd.

Het nieuwe label is bedoeld om beheer van packages veiliger te maken. In het recente verleden zijn er veel supplychainaanvallen geweest waarbij oude library's kunnen worden overgenomen, onder andere via PyPI. Zo werd in 2023 nog malware verspreid via een dependency confusion. PyPI besloot daarop tijdelijk de aanmelding van nieuwe gebruikers en projecten stop te zetten. Door helderder aan te geven dat een project niet meer actief wordt bijgewerkt, zou het voor gebruikers duidelijker moeten zijn dat een eventuele nieuwe update daarvan problemen kan opleveren.

PyPI wil in de toekomst meer statussen uitbrengen die ontwikkelaars aan hun projecten kunnen geven. Het bedrijf noemt specifiek Deprecated en Unmaintained. Die worden dan ook in de publieke PyPI-api's verwerkt, zoals beheerders ook op basis daarvan kunnen werken. PyPI geeft daarvoor nog geen concrete tijdlijn.

Door Tijs Hofmans

Nieuwscoördinator

03-02-2025 • 19:22

9

Reacties (9)

9
9
9
1
0
0
Wijzig sortering
Jammer in de blogpost staat niets over of je ook (en hoe) een melding krijgt wanneer je een pip install uitvoerd. Anders heeft het natuurlijk ook maar voor de helft zin
En hoe gaan SCA tools om met deze vlag?
Ja maar dit levert dus helemaal niks op voor de beveiliging. Als je net zo makkelijk dat vinkje weer uit kan zetten dan heeft het ook geen zin dat in het artikel te vermelden.

Aan de ene kant is het goed om eens gepubliceerde versies voor altijd online te houden, dat zorgt er namelijk voor dat je altijd op dat pakket kan bouwen. Maar aan de andere kant, zou de development wereld niet beter af zijn als je ook gewoon pakketten weg kan halen.

Zo van ik heb er als developer geen zin meer in, dit pakket kan worden overgenomen als iemand daar wel zin in heeft.
Bij weg halen valt de build van andere projecten direct om.
Je start een mooi project, mensen zijn er blij mee, en dan wordt je student af, of ga je samen wonen, krijg je kinderen of een nieuwe baan. Dat betekent niet dat je code nutteloos is geworden, je hebt alleen ff geen tijd om je frequent genoeg te bekommeren.

Goed dat je dit nu kunt aangeven, kunnen projecten die er van afhangen kiezen om het zelf te onderhouden of om een alternatief te maken of vinden.
Vraag is natuurlijk in hoeverre iemand nog wel de tijd neemt een vinkje te zetten als hij het project al verlaten heeft.

Over een tijdje zullen we wel zien of het iets oplevert.
Klopt. Verlaten van een open source proces is meestal een passieve actie. Het overkomt je. (bij mij althans). Vaak pas maanden later realiseer je dat je al lang geen dingen hebt bijgewerkt, dan heb je nog tijden het idee dat je het toch een keer zal oppakken. En kom je er op een gegeven moment met schaamrood op je kaken er achter dat iemand maanden terug een pull request deed...

Dus ik ben ook benieuwd naar het resultaat.

[Reactie gewijzigd door djwice op 4 februari 2025 18:40]

Dat werkt bij JavaScript+NPM toch ook prima?
Ik gebruik een pakket dat al jaren niet meer onderhouden wordt. Is het daarmee waardeloos? Nee dus.

Nu het ik maar een fork gemaakt om het compatibel te maken met 3.12 (niet meer dan de max python versie ophogen, maar toch)

De developer reageert niet meer op pull requests oid. Omdat de man/vrouw, geen idee eigenlijk, uit de Oekraïne komt vreest ik het ergste….

Een deprecated flag is hiervoor ook geen oplossing. Genoeg repos waarvan de dev er domweg niet meer is.
Het probleem is eigenlijk dat je package X gebruikt en die gaat dan package Y gebruiken, die op zijn beurt package Z gebruikt. Ik raad mijn studenten (avondschool/volwassen) aan altijd eerst een in een nieuwe omgeving X te installeren en te kijken wat dat allemaal gaat gebruiken. En heb je wel eigenlijk alles nodig, want dikwijls heb je alleen maar X of Y nodig, is het dan misschien niet beter om dat even zelf te schrijven. De uitzonderingen vind ik dan zeker de security libraries en de zeer grote zoals pandas/numpy etc, tenzij je daar kaas van gegeten hebt uiteraard.

Uiteraard het wiel opnieuw uitvinden is ook niet altijd de oplossing. Maar altijd wel eens kijken is het nog actief en zijn er "recent" nog updates geweest, afgelopen jaar ofzo. Maar dat is ook per project/package te bekijken. Er zijn nu dingen waar nu eenmaal weinig beweging op hoeft te zitten uiteraard. Maar een security library bijvoorbeeld die in 5 jaar geen update gehad heeft is een dikke rode vlag uiteraard.

Op dit item kan niet meer gereageerd worden.