• v2.0.0 8e563ccdb2

    v2.0.0 Stable

    michael released this 2026-07-20 07:13:22 +02:00 | 4 commits to main since this release

    daw-lua-common 2.0.0

    Erstes größeres Major-Release seit Beginn der Bibliothek – durchgängige Umstellung der Fehlerbehandlung auf nil, err, mehrere Modul-Splits, ein vollständiger Team-Review-Durchlauf über alle Module, und eine repo-weite Vereinheitlichung der Fehlermeldungen.

    Breaking Changes

    • uuid.lua: validate()is_valid(), get_short_code()short_code(), is_version_4() entfernt (war redundant zu is_valid())
    • config_parser.lua: convert() erkennt keine wissenschaftliche Notation (1e5) oder Hex-Literale (0x10) mehr als Zahlen – bleiben jetzt bewusst String
    • yaml.dump(): nicht serialisierbare Typen (Funktionen, Coroutines) liefern jetzt nil, err statt eines Platzhalter-Strings
    • json.encode(): NaN/Infinity werden jetzt abgelehnt statt als ungültiges JSON ausgegeben
    • crypto.hmac_*: Keys mit NUL-Bytes oder abschließendem Zeilenumbruch werden jetzt aktiv abgelehnt statt still fehlinterpretiert
    • Fehlermeldungen: einheitlich [ERROR] modul.funktion: ... im ganzen Repository (vorher mehrere uneinheitliche Varianten)

    Neu

    • base64.lua: jetzt vollständig ohne externe Abhängigkeit (kein openssl mehr nötig)
    • fs.remove_dir_recursive(), yaml.dump(), vollständige fs/-, json/- und yaml/-Modulaufteilung
    • crypto/ in hash.lua + hmac.lua + Fassade aufgeteilt (fragjan 250-Zeilen-Limit)

    Robustheit

    • Kalender- und Zeitzonen-Validierung in time.lua
    • Vollständiges RFC-8259-Escaping in json/encode.lua, passende \uXXXX-Dekodierung in json/decode.lua
    • Shell-Quoting-Fixes, Typprüfungen an praktisch jeder öffentlichen Funktion
    • decimal.is_valid() garantiert jetzt, dass parse() danach nicht mehr scheitert

    Zahlen

    • 391 Tests (vorher ~220), grün unter Lua 5.1 und 5.4
    • fragjan: 34 Dateien, 711 Checks, clean

    Bekannte offene Punkte (nicht release-blockierend)

    • fs-Shell-Fallback ohne lfs verschoben auf 2.1 (#7, #3)
    • Laufzeit-Versionsauskunft blockiert durch merkwerk.lua-Bugs (#18)
    Downloads