← Neueste Arbeiten
💻 Informatik

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

Dieses Paper stellt PyPI API Drift vor, einen umfassenden Datensatz zur statischen Analyse, der API-Änderungen auf Release-Ebene über 1.872 populäre Python-Bibliotheken hinweg verfolgt, zusammen mit den zugehörigen Tools und Benchmarks, welche die Fähigkeit von Code-Generierungsmodellen signifikant verbessern, versionskompatiblen Code unter Nutzung historischer API-Daten zu erzeugen.

Ursprüngliche Autoren: Pushkar Devanahalli Gopalakrishna

Veröffentlicht 2026-10-27
📖 5 Min. Lesezeit🧠 Tiefgang

Ursprüngliche Autoren: Pushkar Devanahalli Gopalakrishna

Originalarbeit lizenziert unter CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). ✨ Dies ist eine KI-generierte Erklärung des untenstehenden Papers. Sie wurde nicht von den Autoren verfasst oder gebilligt. Für technische Genauigkeit konsultieren Sie das Originalpaper. Vollständigen Haftungsausschluss lesen

In der weiten, sich ständig wandelnden Landschaft der modernen Software nimmt Python eine dominante Stellung ein und treibt alles an, von der wissenschaftlichen Forschung bis hin zu Webanwendungen. Seine Stärke liegt in einem massiven Ökosystem aus vorgefertigten Werkzeugen, den sogenannten Bibliotheken, die Entwickler in ihre Projekte einbinden können, um komplexe Aufgaben zu bewältigen, ohne das Rad neu erfinden zu müssen. Diese Werkzeuge sind jedoch keine statischen Monumente; sie sind lebendige Einheiten, die sich ständig weiterentwickeln. Entwickler aktualisieren sie regelmäßig, um Fehler zu beheben, die Geschwindigkeit zu verbessern oder neue Funktionen hinzuzufügen. Dabei entfernen oder ändern sie manchmal heimlich die spezifischen Befehle und Anweisungen, auf die Nutzer angewiesen sind. Für menschliche Programmierer ist das Verfolgen dieser Änderungen eine bewältigbare Herausforderung, die oft durch das Lesen von Versionshinweisen oder durch Rücksprache mit Kollegen gelöst wird. Doch für die neue Generation von künstlichen Intelligenz-Assistenten, die Code schreiben, stellt diese Evolution ein einzigartiges und hartnäckiges Problem dar. Diese KI-Modelle wurden auf riesigen Archiven von Code aus vielen verschiedenen Epochen trainiert und haben gelernt, Anweisungen zu schreiben, die vor Jahren noch korrekt waren, heute aber möglicherweise nicht mehr funktionieren. Ohne eine Möglichkeit zu wissen, welche Version eines Werkzeugs ein Nutzer genau installiert hat, könnte eine KI selbstbewusst einen Befehl vorschlagen, der nicht mehr existiert, was zu Fehlern führt, die ein Projekt zum Stillstand bringen.

Um dies zu lösen, hat der Forscher Pushkar Devanahalli Gopalakrishna ein massives, detailliertes Protokoll darüber erstellt, wie sich diese Werkzeuge im Laufe der Zeit verändern. Das Projekt mit dem Namen PyPI API Drift fungiert als historisches Archiv für 1.872 der populärsten Python-Bibliotheken. Anstatt zu versuchen, jeden einzelnen Code auszuführen und zu testen, was unmöglich langsam und teuer wäre, entwickelte der Forscher eine Methode, um direkt die digitalen Dateien zu untersuchen, aus denen diese Bibliotheken bestehen. Durch die Untersuchung nur der notwendigen Teile dieser Dateien kann das System exakt kartieren, welche Befehle, Funktionen und Einstellungen in jeder aktuellen Version jeder Bibliothek verfügbar waren. Dieser Prozess deckt über 55.000 spezifische Softwareversionen ab, die zwischen 2021 und Ende 2026 veröffentlicht wurden. Das Ergebnis ist ein präzises Register, das verfolgt, wann ein bestimmtes Feature hinzugefügt wurde, wann es umbenannt wurde und wann es vollständig entfernt wurde. Entscheidend ist, dass das System zwischen Dingen unterscheidet, die wirklich verschwunden sind, und solchen, die lediglich verschoben oder umbenannt wurden, wobei jeder Eintrag mit einem Konfidenzniveau versehen wird, um die Sicherheit des Datensatzes anzugeben.

Das Ausmaß dieser Veränderung ist signifikant. Die Analyse ergab, dass etwa 13,4 Prozent der kleineren Software-Updates, von denen man oft annimmt, dass sie sicher und abwärtskompatibel sind, tatsächlich mindestens eine Änderung enthalten, die bestehenden Code bricht. Noch frappierender ist, dass etwa 64 Prozent der großen Versionssprünge und fast 30 Prozent der kleineren Sprünge Änderungen beinhalten, die dazu führen würden, dass älterer Code fehlschlägt. Diese Daten stellen die verbreitete Annahme infrage, dass Software-Updates einem strengen, vorhersehbaren Muster der Sicherheit folgen. Der Forscher fand heraus, dass nur ein winziger Bruchteil der entfernten Funktionen offiziell als „deprecated“ (veraltet) oder „coming soon to be removed“ (bald zu entfernen) markiert war, auf eine Weise, die automatisierte Tools leicht erkennen könnten. Oftmals waren die Warnungen in Textdokumenten oder bedingten Meldungen versteckt, die ein Computerprogramm nicht lesen konnte, wodurch Entwickler und KI-Assistenten im Dunkeln gelassen wurden, bis der Code brach.

Um zu beweisen, dass dieser Datensatz nützlich ist, baute der Forscher eine Reihe von Werkzeugen, um dessen Genauigkeit und Nützlichkeit zu testen. Ein Werkzeug fungiert als Prüfer, der Code scannt, um zu sehen, ob er Befehle verwendet, die für eine bestimmte Softwareversion nicht mehr gültig sind. Ein anderes Werkzeug dient als Nachschlage-System für KI-Assistenten, das es ihnen ermöglicht, die Historie eines Befehls abzufragen, bevor sie ihn schreiben. Am wichtigsten war eine Reihe von Experimenten, die testeten, ob die Gabe einer KI Zugriff auf diesen historischen Datensatz tatsächlich half, besseren Code zu schreiben. In Tests, bei denen die KI Code reparieren musste, der durch ein Software-Update beschädigt wurde, schnitt die KI deutlich besser ab, wenn sie diesen Datensatz konsultieren konnte. Ohne Hilfe gelang es der KI in weniger als der Hälfte der Fälle, den Code korrekt zu reparieren. Mit dem historischen Datensatz sprang ihre Erfolgsquote auf fast 70 Prozent und übertraf damit sogar die Leistung, wenn ihr die offizielle Dokumentation der neuen Softwareversion zur Verfügung gestellt wurde. Dies deutet darauf sich hin, dass der Besitz einer präzisen, versionsspezifischen Historie der Änderungen wertvoller für eine KI ist als das Lesen allgemeiner Anweisungen.

Das Projekt produzierte auch einen Benchmark, einen standardisierten Testdatensatz aus tausenden Code-Snippets, um anderen Forschern dabei zu helfen, zu messen, wie gut ihre eigenen KI-Modelle mit diesen Versionsänderungen umgehen können. Die Ergebnisse bestätigen, dass KI-Modelle zwar leistungsstark sind, aber mit dem rasanten Tempo der Softwareentwicklung kämpfen, sofern sie nicht mit einer zuverlässigen, aktuellen Karte dessen ausgestattet sind, was existiert und was verschwunden ist. Der Datensatz zeigt, dass die Landschaft der Python-Bibliotheken weitaus fließender ist als bisher angenommen, wobei Breaking Changes selbst in kleinen Updates häufig vorkommen. Durch die Bereitstellung einer klaren, hochpräzisen Karte dieser Änderungen bietet diese Arbeit ein Fundament für den Bau smarterer Coding-Assistenten, die in der Lage sind, die sich entwickelnde Welt der Software zu navigieren, ohne sich im „Drift“ zu verlieren. Die Daten stehen nun jedem zur Verfügung, um sicherzustellen, dass die Community weiterhin Werkzeuge bauen kann, die mit der ständigen Bewegung der digitalen Welt Schritt halten.

Ertrinken Sie in Arbeiten in Ihrem Fachgebiet?

Erhalten Sie tägliche Digests der neuesten Arbeiten passend zu Ihren Forschungsbegriffen — mit technischen Zusammenfassungen, in Ihrer Sprache.

Digest testen →