Skip to content

v0.3.1

Choose a tag to compare

@github-actions github-actions released this 21 Sep 13:37

A same-day follow-up to 0.3.0, fixing three defects that release introduced or
exposed. No documented contract changes: the resolve() fix restores one.

Added

  • resolve(..., strict=True) -- raise the last backend's
    ResolutionError when no backend could ask, instead of returning [].
    Off by default. It distinguishes a resolver outage from a name that does
    not exist; it does not turn an empty answer into an error, so a name
    that genuinely does not resolve still returns [] at any strictness.

Fixed

  • resolve() returns [] on a resolver outage again, restoring the
    pre-0.3.0 contract. 0.3.0 made the chain re-raise the last backend's
    ResolutionError when every applicable backend failed to attempt the
    query, which turned if not resolve(host): into an uncaught exception
    wherever DNS was unreachable. The documented contract -- "always a list,
    empty on a lookup failure, never None" -- stands, and callers that need
    the distinction opt in with strict=True.
  • bind_error_hint no longer reports a Windows WSAEACCES as a privilege
    problem.
    Windows has no privileged ports -- any user may bind port 80 --
    and WSAEACCES (WinError 10013) on a bind means the address is held
    exclusively by another socket, or refused by a firewall or an excluded port
    range. Python maps it to PermissionError/EACCES, so the POSIX branch
    matched first and produced "permission denied binding port 64514" for an
    unprivileged port, plus the "ports below 1024 need root/Administrator" rider
    on a low port. The POSIX EACCES reading is unchanged, where that advice is
    correct.
  • A release publishes its documentation again. docs.yml was triggered by
    release: published, which never fires: the release is created with
    GITHUB_TOKEN, and GitHub does not start workflow runs from token-created
    events. It now keys off the Release workflow completing successfully. The
    0.3.0 site was published anyway, by the push-to-main trigger.

Full Changelog: v0.3.0...v0.3.1