← Nieuwste papers
💻 informatica

PyPI API Drift: A Release-Level Record of Public API Changes in 1,872 Popular Python Libraries, with a Checker and a Benchmark for Version-Aware Code Generation

Dit artikel introduceert PyPI API Drift, een uitgebreide statische analyse-dataset die wijzigingen in publieke API's op releaseniveau bij 1.872 populaire Python-bibliotheken bijhoudt, samen met bijbehorende tools en benchmarks die het vermogen van code-generatiemodellen om versiecompatibele code te produceren aanzienlijk verbeteren door gebruik te maken van historische API-gegevens.

Oorspronkelijke auteurs: Pushkar Devanahalli Gopalakrishna

Gepubliceerd 2026-10-27
📖 5 min leestijd🧠 Diepgaand

Oorspronkelijke auteurs: Pushkar Devanahalli Gopalakrishna

Oorspronkelijk artikel gelicentieerd onder CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). ✨ Dit is een AI-gegenereerde uitleg van het onderstaande artikel. Het is niet geschreven of goedgekeurd door de auteurs. Raadpleeg het oorspronkelijke artikel voor technische nauwkeurigheid. Lees de volledige disclaimer

In het uitgestrekte, verschuivende landschap van moderne software staat Python als een dominante taal, die alles aandrijft van wetenschappelijk onderzoek tot webapplicaties. De kracht ervan ligt in een enorme ecosystem van vooraf gebouwde hulpmiddelen, bekend als bibliotheken, die ontwikkelaars in hun projecten kunnen pluggen om complexe taken af te handelen zonder het wiel opnieuw uit te hoeven vinden. Deze hulpmiddelen zijn echter geen statische monumenten; het zijn levende entiteiten die voortdurend evolueren. Ontwikkelaars werken ze regelmatig bij om bugs op te lossen, de snelheid te verbeteren of nieuwe functies toe te voegen. Daarbij verwijderen of wijzigen ze soms stilletjes de specifieke commando's en instructies waar gebruikers op vertrouwen. Voor menselijke programmeurs is het bijhouden van deze veranderingen een beheersbare uitdaging, die vaak wordt opgelost door release notes te lezen of collega's te raadplegen. Maar voor de nieuwe generatie kunstmatige intelligentie-assistenten die code schrijven, vormt deze evolutie een uniek en hardnekkig probleem. Deze AI-modellen zijn getraind op enorme archieven van code uit vele verschillende tijdperken, waardoor ze instructies leren schrijven die jaren geleden nog correct waren, maar nu mogelijk defect zijn. Zonder een manier om precies te weten welke versie van een hulpmiddel een gebruiker heeft geïnstalleerd, kan een AI vol vertrouwen een commando suggereren dat niet meer bestaat, wat leidt tot fouten die een project doen stagneren.

Om dit op te lossen, heeft een onderzoeker genaamd Pushkar Devanahalli Gopalakrishna een enorm, gedetailleerd verslag gemaakt van hoe deze hulpmiddelen in de loop van de tijd veranderen. Het project, genaamd PyPI API Drift, fungeert als een historisch archief voor 1.872 van de meest populaire Python-bibliotheken. In plaats van te proberen elke regel code uit te voeren en te testen, wat onmogelijk traag en duur zou zijn, heeft de onderzoeker een methode ontwikkeld om direct naar de digitale bestanden te kijken die deze bibliotheken vormen. Door alleen de noodzakelijke delen van deze bestanden te onderzoeken, kan het systeem exact in kaart brengen welke commando's, functies en instellingen beschikbaar waren in elke recente release van elke bibliotheek. Dit proces beslaat meer dan 55.000 specifieke versies van software die zijn uitgebracht tussen 2021 en eind 2026. Het resultaat is een nauwkeurige grootboekregistratie die bijhoudt wanneer een specifieke functie werd toegevoegd, wanneer deze werd hernoemd en wanneer deze volledig werd verwijderd. Cruciaal is dat het systeem onderscheid maakt tussen zaken die echt verdwenen zijn en zaken die simpelweg zijn verplaatst of van naam zijn veranderd, waarbij elke vermelding wordt voorzien van een betrouwbaarheidsniveau om aan te geven hoe zeker het record is.

De omvang van deze verandering is aanzienlijk. De analyse toonde aan dat ongeveer 13,4 procent van de minder belangrijke software-updates, die vaak als veilig en achterwaarts compatibel worden beschouwd, daadwerkelijk ten minste één wijziging bevat die bestaande code breekt. Nog opmerkelijker is dat ongeveer 64 procent van de grote versie-sprongen en bijna 30 procent van de minder belangrijke updates wijzigingen bevatten die ervoor zorgen dat oudere code faalt. Deze data dagen de algemene aanname uit dat software-updates een strikt, voorspelbaar patroon van veiligheid volgen. De onderzoeker vond dat slechts een klein deel van de verwijderde functies officieel werd gemarkeerd als "deprecated" (verouderd) of "coming soon to be removed" (binnenkort te verwijderen) op een manier die automatische tools gemakkelijk konden detecteren. Vaak waren de waarschuwingen verborgen in tekstdocumenten of voorwaardelijke berichten die een computerprogramma niet kon lezen, waardoor ontwikkelaars en AI-assistenten in het duister werden gelaten totdat de code brak.

Om te bewijzen dat dit record nuttig is, heeft de onderzoeker een reeks hulpmiddelen gebouwd om de nauwkeurigheid en bruikbaarheid ervan te testen. Eén hulpmiddel werkt als een controleur die code scant om te zien of deze commando's gebruikt die niet langer geldig zijn voor een specifieke softwareversie. Een ander hulpmiddel dient als een opzoaksysteem voor AI-assistenten, waardoor zij de geschiedenis van een commando kunnen opvragen voordat ze het schrijven. Het belangrijkste is dat een reeks experimenten testte of het geven van toegang tot dit historische record een AI daadwerkelijk hielp om betere code te schrijven. In tests waarbij de AI code moest repareren die door een software-update was gebroken, presteerde de AI aanzienlijk beter wanneer deze het record kon raadplegen. Zonder hulp slaagde de AI er minder dan de helft van de tijd in om de code correct te repareren. Wanneer de AI werd voorzien van het historische record, steeg het succespercentage naar bijna 70 procent, waarmee het zelfs beter presteerde dan wanneer het de officiële documentatie van de nieuwe softwareversie kreeg. Dit suggereert dat het hebben van een precieze, versiespecifieke geschiedenis van wijzigingen waardevoller is voor een AI dan het lezen van algemene instructies.

Het project produceerde ook een benchmark, een gestandaardiseerde testset van duizenden codefragmenten, om andere onderzoekers te helpen meten hoe goed hun eigen AI-modellen deze versiewijzigingen afhandelen. De bevindingen bevestigen dat, hoewel AI-modellen krachtig zijn, ze worstelen met het snelle tempo van software-evolutie, tenzij ze zijn uitgerust met een betrouwbare, actuele kaart van wat bestaat en wat is verdwenen. Het record laat zien dat het landschap van Python-bibliotheken veel vloeibaarder is dan voorheen werd aangenomen, met brekende wijzigingen die zelfs in kleine updates frequent voorkomen. Door een heldere, hoog-precieze kaart van deze wijzigingen te bieden, vormt dit werk een fundament voor het bouwen van slimmere programmeerassistenten die de evoluerende wereld van software kunnen navigeren zonder de weg kwijt te raken in de drift. De data is nu open voor iedereen om te gebruiken, zodat de gemeenschap kan blijven bouwen aan tools die het tempo van de constante beweging in de digitale wereld bijhouden.

Verdrinkt u in papers in uw vakgebied?

Ontvang dagelijkse digests van de nieuwste papers die bij uw onderzoekswoorden passen — met technische samenvattingen, in uw taal.

Probeer Digest →