What's Changed
This is a bugfix release that resolves a packaging issue affecting v2.9.0 installations from PyPI. Users experiencing ModuleNotFoundError when installing via pip or uvx should upgrade to this version immediately.
Critical Fix
Package Distribution Issue Resolved: The v2.9.0 release had a packaging configuration error that prevented root-level Python modules (dnsping, dnstraceroute, dnseval) from being included in the PyPI distribution. This caused ModuleNotFoundError when users attempted to install or run the tools via pip, uvx, or pipx. The package configuration has been corrected to ensure all modules are properly distributed.
Additional Improvements
Multithreaded DNS Evaluation: dnseval now uses concurrent evaluation when testing multiple DNS resolvers, improving evaluation times. The tool employs ThreadPoolExecutor with up to 10 worker threads for parallel testing while maintaining thread-safe output handling. Results continue to be displayed in the same order as the input file.
Cookie Display Enhancement: DNS COOKIE output in dnsping is now truncated to 8 hex characters followed by "..." in normal mode, keeping output compact and readable. Full cookie details remain available when using verbose mode.
Build & Infrastructure
- Constrained cryptography dependency to version <46 to avoid Rust compiler requirement during installation
- Updated Docker image to Python 3.14-alpine with improved ENV format
Full Changelog: v2.9.0...v2.9.1
Installation
# Using pip
pip install --upgrade dnsdiag
# Using uvx (now fixed!)
uvx --from dnsdiag dnsping
# Using pipx
pipx install dnsdiagDocker
docker pull farrokhi/dnsdiag:2.9.1Note: If you installed v2.9.0 from PyPI and experienced import errors, please upgrade to v2.9.1 to resolve the issue.