• v7.4 075c9b684b

    Release 7.4
    All checks were successful
    Main / Check vala files (push) Successful in 27s
    Main / Test Build (push) Successful in 51s
    Main / Build Nightly RPM for altlinux (push) Successful in 2m52s
    Stable

    rirusha released this 2026-04-20 19:19:05 +03:00 | 24 commits to main since this release

    Highlight

    • New send API in Session with Soup.Session compatibility.
    • Added managing multiple base URLs with automatic failover.
    • Improved serialization: case-insensitive enum parsing, UTC timezone for DateTime, INT64→DateTime conversion.

    API Changes

    Request

    • Added Request.port property for custom port specification.
    • Deprecated Request.form_message.
    • New high-level request methods: Request.simple_send, Request.simple_send_and_read, and their async variants.
    • Deprecated Request.simple_exec / Request.exec methods in favor of new API.
    • get_status_code() now returns nullable Soup.Status? if message not send yet.

    Session

    • Added add_base_url / remove_base_url for multi-endpoint support with automatic failover.
    • New methods: send, send_and_read, `send_and_splice' and async variants.
    • Built-in base URL failover: failed requests automatically retry with next URL.
    • Added diagnostic logging for request lifecycle.

    Errors

    • Deprecate SoupError.
    • BadStatusCodeError now generates at runtime, code can be obtained via Error.code.

    Serialization

    • Enum deserialization now case-insensitive.
    • DateTime parsing defaults to UTC timezone.
    • Added automatic int64DateTime conversion.
    • Serialize.get_settings() returns a copy; added Settings.copy() method.

    Diagnostic

    • API_BASE_SOUP_TRACE_FILENAME: Log libsoup trace to file or stdout.
    • SERIALIZE_UNKNOWN_PROPS: Warn on JSON fields missing in target object.
    • SERIALIZE_UNKNOWN_FIELDS: Warn on object fields missing in JSON.

    API reference documentation: https://rirusha.altlinux.team/libapi-base/