Dev News Daily ENDE

Vier Patch-Releases dieser Woche, die Verhalten ändern – nicht nur Fehler

Eine Patch-Version verspricht stillschweigend: Nichts, worauf man sich verlässt, ändert sich; repariert wird nur, was kaputt war. Vier Releases der vergangenen Tage lohnen den Abgleich mit diesem Versprechen, denn jedes enthält mindestens eine Änderung, die eine Testsuite, ein Bundle oder eine Deployment-Pipeline bemerken kann.

NumPy 2.5.4 (10. Oktober): Fehler statt Ergebnis. numpy.linalg.svd und numpy.linalg.lstsq werfen jetzt einen Fehler, wenn die Eingabe Unendlich-Werte enthält; bisher kam Unsinn heraus oder – mit einigen neueren LAPACK-Builds – hingen die Aufrufe. Eine Pipeline, die nicht-endliche Daten durch diese Funktionen schob und das Ergebnis nie ansah, bricht nun mit einer Ausnahme ab. Dasselbe Release setzt bei MaskedArray einen fill_value zurück, der nach einem Dtype-Wechsel nicht darstellbar ist; dabei kann eine ComplexWarning auftreten, die es vorher nicht gab. Beides sind Korrekturen, beides ist sichtbar.

Bun 1.4.3 (10. Oktober): ein Promise, das jetzt ablehnt. Verweigert ein Proxy eine CONNECT-Anfrage, wird fetch() jetzt mit ERR_PROXY_TUNNEL abgelehnt, samt Status und Headern des Proxys. Bisher wurde die Antwort des Proxys aufgelöst, als stamme sie vom Zielserver. Code, der diese Antwort als die des Ziels behandelte – oder anhand ihres Statuscodes wiederholte –, landet nun im Fehlerpfad. Dasselbe Release bringt einen kompletten Typprüfer, bun check; die leisere Änderung ist die, die bestehendes Verhalten verändert.

Vier Patch-Releases dieser Woche, die Verhalten ändern – nicht nur Fehler
Vier Patch-Releases dieser Woche, die Verhalten ändern – nicht nur Fehler — Dev News Daily

Angular 22.2.2 (8. Oktober): Zeitpunkte. afterRenderEffect-Sequenzen, die während laufender Render-Hooks registriert werden, werden jetzt aufgeschoben statt mitten im Durchlauf abgearbeitet. Code, der bewusst oder unbewusst von der alten Reihenfolge abhing – etwa ein Test, der den DOM-Zustand direkt nach einem Hook prüft –, kann eine andere Abfolge sehen. Zudem entfernt der Compiler script-Elemente in jedem Namespace und erkennt Direktiven in SVG und MathML genauer, was ändern kann, was ein Template rendert.

Ubuntu USN-8911-1 (9. Oktober): ein ABI-Bruch im Sicherheitsupdate. Der OEM-Kernel für 24.04 springt mit geänderter ABI auf 6.17.0-1033.33. Von Hand installierte Out-of-Tree-Module müssen neu gebaut werden, und die Fixes greifen erst nach einem Neustart. Eine Maschine kann das Update als installiert melden und weiter den alten Kernel ausführen.

Was daraus folgt. Nichts davon spricht dagegen, Patch-Releases zügig einzuspielen – jede der Änderungen behebt etwas. Es spricht dafür, die Notes nach den Wörtern zu lesen, die Verhalten ankündigen: raise, now, defer, ABI, no longer. Exakte Patch-Versionen festzuschreiben und sie bewusst, mit offenem Changelog, anzuheben, kostet wenig. Einen Caret-Bereich ein Release hereinziehen zu lassen, das eine stille falsche Antwort in eine laute Ausnahme verwandelt, kostet einen Produktionsvorfall zur unpassenden Zeit. Die laute Ausnahme ist das bessere Ergebnis – nur besser, wenn man sie erwartet hat.

Quellen: NumPy 2.5.4 — https://github.com/numpy/numpy/releases/tag/v2.5.4 ; Bun 1.4.3 — https://bun.com/blog/bun-v1.4.3 ; Angular 22.2.2 — https://github.com/angular/angular/releases/tag/v22.2.2 ; USN-8911-1 — https://ubuntu.com/security/notices/USN-8911-1