Releases: aio-libs/aiohttp-asyncmdnsresolver
0.2.0
Bug fixes
-
Matched the
.localmDNS suffix case-insensitively so hostnames such asMyHost.LOCALare routed through mDNS as required by :rfc:6762-- by :user:aiolibsbot.Related issues and pull requests on GitHub:
:issue:65. -
Cancelled the in-flight mDNS and DNS lookup tasks when
AsyncDualMDNSResolver.resolve()is itself cancelled, so a cancelled lookup no longer orphans tasks that keep running against the sharedzeroconfinstance -- by :user:bdraco.Related issues and pull requests on GitHub:
:issue:69. -
Made resolver
close()idempotent -- a second call on a resolver that owns
its :class:~zeroconf.asyncio.AsyncZeroconfno longer raises
:exc:AttributeError-- by :user:aiolibsbot.Related issues and pull requests on GitHub:
:issue:74. -
Stopped :class:
~aiohttp_asyncmdnsresolver.api.AsyncDualMDNSResolverfrom returning the same address twice when the mDNS and DNS resolvers agree on a.localname -- by :user:aiolibsbot.Related issues and pull requests on GitHub:
:issue:87.
Features
-
Added async context manager support to :class:
~aiohttp_asyncmdnsresolver.api.AsyncMDNSResolverand :class:~aiohttp_asyncmdnsresolver.api.AsyncDualMDNSResolver, soasync withcloses the resolver automatically -- by :user:aiolibsbot.Related issues and pull requests on GitHub:
:issue:90.
Removals and backward incompatible breaking changes
-
Dropped Python 3.9 support; the minimum supported Python version is now 3.10 -- by :user:
bdraco.Related issues and pull requests on GitHub:
:issue:62.
Improved documentation
-
Corrected the public API module docstring (it described an unrelated project), fixed a grammar error in the package docstring, and normalized the indentation of the class directives in the API reference so the parameter lists render correctly, and added an intersphinx mapping to
python-zeroconfso theasync_zeroconfparameter cross-references resolve under the nitpicky docs build -- by :user:aiolibsbot.Related issues and pull requests on GitHub:
:issue:67. -
Fixed the README quick-start example leaking the resolver: a resolver passed to
aiohttp.TCPConnectoris owned by the caller, so it is now closed in afinallyblock -- by :user:aiolibsbot.Related issues and pull requests on GitHub:
:issue:80. -
Completed the documentation landing page: filled the empty Introduction section, added an installation snippet, and added a runnable usage example that closes the resolver in a
finallyblock. Also fixed the same resolver leak in theAsyncMDNSResolverreference example -- by :user:aiolibsbot.Related issues and pull requests on GitHub:
:issue:84. -
Documented the :meth:
~aiohttp_asyncmdnsresolver.api.AsyncMDNSResolver.resolveand :meth:~aiohttp_asyncmdnsresolver.api.AsyncMDNSResolver.closemethods of :class:~aiohttp_asyncmdnsresolver.api.AsyncMDNSResolverand :class:~aiohttp_asyncmdnsresolver.api.AsyncDualMDNSResolverin the API reference, including the.localrouting behaviour and the :class:~zeroconf.asyncio.AsyncZeroconfownership semantics of :meth:~aiohttp_asyncmdnsresolver.api.AsyncMDNSResolver.close-- by :user:aiolibsbot.Related issues and pull requests on GitHub:
:issue:85. -
Added a usage example for :class:
~aiohttp_asyncmdnsresolver.api.AsyncDualMDNSResolverin the API reference and documented thefamilyparameter of :meth:~aiohttp_asyncmdnsresolver.api.AsyncMDNSResolver.resolve(socket.AF_INET,socket.AF_INET6andsocket.AF_UNSPEC). Also clarified thatmdns_timeout=Noneis cache-only, the same as0-- by :user:aiolibsbot.Related issues and pull requests on GitHub:
:issue:86. -
Documented :class:
~aiohttp_asyncmdnsresolver.api.AsyncDualMDNSResolverin the README quick start so the landing page covers the full public API, not just :class:~aiohttp_asyncmdnsresolver.api.AsyncMDNSResolver-- by :user:aiolibsbot.Related issues and pull requests on GitHub:
:issue:89.
Packaging updates and notes for downstreams
-
The packaging metadata switched to including an SPDX license identifier introduced in :pep:
639-- by :user:cdce8p.As a side effect, the minimum required version of
setuptoolsincreased to v77.Related issues and pull requests on GitHub:
:issue:36. -
Fixed
MANIFEST.into graft thesrc/tree and dropped references to the non-existentpackaging/directory andNOTICEfile, removing spurious build warnings. Thepy.typedmarker is now shipped explicitly viapackage-data, and the distribution advertises the Python 3.10--3.13, CPython, PyPy, andTyping :: Typedclassifiers -- by :user:aiolibsbot.Related issues and pull requests on GitHub:
:issue:68. -
Added support for Python 3.14: the test matrix now runs against 3.14 and the distribution advertises the
Programming Language :: Python :: 3.14classifier -- by :user:aiolibsbot.Related issues and pull requests on GitHub:
:issue:81.
Contributor-facing changes
-
Expanded the public-API regression test to cover
AsyncDualMDNSResolver,
api.__all__, and theaiohttp.resolver.AsyncResolverdrop-in subclass
guarantee for both resolvers.Related issues and pull requests on GitHub:
:issue:71. -
Hardened the CI workflow: the default
GITHUB_TOKENis now restricted to
contents: read, and a concurrency group cancels superseded in-progress
pull request runs to conserve CI resources -- by :user:aiolibsbot.Related issues and pull requests on GitHub:
:issue:72. -
Enabled the mypy
disallow_untyped_defs,disallow_incomplete_defs, and
check_untyped_defschecks so that newly added functions insrc/and
tests/must carry complete type annotations -- by :user:aiolibsbot.Related issues and pull requests on GitHub:
:issue:73. -
Migrated CI runners from
actions/setup-pythontoastral-sh/setup-uv
so dependencies and Python interpreters are provisioned viauvinstead
of systempip-- by :user:aiolibsbot.Related issues and pull requests on GitHub:
:issue:76. -
Replaced the
pyupgradepre-commit hook with Ruff'sUPrule set so a
single linter handles syntax modernization, targeting Python 3.10+
-- by :user:aiolibsbot.Related issues and pull requests on GitHub:
:issue:78.
0.1.1
Miscellaneous internal changes
-
Improved MDNS resolver performance when the name is already in the cache -- by :user:
bdraco.Related issues and pull requests on GitHub:
:issue:27.
0.1.0
Features
-
Created the :class:
aiohttp_asyncmdnsresolver.api.AsyncDualMDNSResolverclass to resolve.localnames using both mDNS and DNS -- by :user:bdraco.Related issues and pull requests on GitHub:
:issue:23.
0.0.3
Bug fixes
-
Fixed imports not being properly sorted -- by :user:
bdraco.Related issues and pull requests on GitHub:
:issue:21.
0.0.2
Miscellaneous internal changes
-
Migrated to using zeroconf's built-in resolver classes -- by :user:
bdraco.Related issues and pull requests on GitHub:
:issue:19.
0.0.1
Initial release