dnspython 1.16.0 is now available on pypi and at www.dnspython.org
. My thanks to the many people who have contributed to this release! My apologies for the long delay between releases.
Petr Špaček and Tomáš Křížek will be helping me as co-maintainers going forward, and that should help reduce release delays in the future; my thanks to them for being willing to help.
Python 2.x support ends with this release, unless it has critical bugs. Future versions of dnspython will only support Python 3.
Version numbering of future dnspython releases will also start at 2.0, as incompatible changes will be permitted. We're not planning huge changes at this time, but we'd like to do a better job at IDNA, and there are other API improvements to be made.
New since 1.15.0:
Much of the internals of dns.query.udp() and dns.query.tcp() have been factored out into dns.query.send_udp(), dns.query.receive_udp(), dns.query.send_tcp(), and dns.query.receive_tcp(). Applications which want more control over the socket may find the new routines helpful; for example it would be easy to send multiple queries over a single TCP connection.
The OPENPGPKEY RR, and the CHAOS class A RR are now supported.
EDNS0 client-subnet is supported.
dns.resover.query() now has a lifetime timeout optional parameter.
pycryptodome and pycryptodomex are now supported and recommended for use instead of pycrypto.
dns.message.from_wire() now has an ignore_trailing option.
type signatures have been provided.
module dns.hash is now deprecated, use standard Python libraries instead.
setup.py supports Cythonization to improve performance.
DNSSEC signature validation didn't check names correctly. [Issue #295]
The NXDOMAIN exception should not use its docstring. [Issue #253]
Fixed regression where trailing zeros in APL RRs were not suppressed, and then fixed the problem where trailing zeros were not added back properly on python 3 when needed.
Masterfile TTL defaulting is now harmonized with BIND practice.
dns.query.xfr() now raises on a non-zero rcode.
Rdata module importing is now locked to avoid races.
Several Python 3 incompatibilities have been fixed.
NSEC3 bitmap parsing now works with mulitple NSEC3 windows.
dns.renderer.Render supports TSIG on DNS envelope sequences.
DNSSEC validation now checks names properly [Issue #295]