Greetings DNS fans!
Thanks to all contributors involved in this release! This is a community project and we couldn't do it without all of your contributions!
For many years users have complained that the validation messages don't report which line contains the error... and rightfully so! It's pretty difficult to debug a problem when you don't know where to look. Sadly the JavaScript interpreter we use doesn't make it easy. I finally found a way. It isn't clean nor pretty but it works! Sadly we can't extract the filename, but at least we're moving in the right direction.
Here's an example where the error is 5 chars into line 1882:
2025/10/10 13:34:44 ERROR: [line::1882:5]: MX example.com: target (mx.sendgrid.net) must end with a (.) [https://docs.dnscontrol.org/language-reference/why-the-dot]
Changelog
Major features:
- 3eddfcd: feat(validation): Validation errors now include the line number (#3788)
- a71b89e: NEW FEATURE: Add SMIMEA support for BIND and deSEC (#3786) (@ClusterJan)
Provider-specific changes:
- 9b32a2f: NAMECHEAP: Enable get-zones (#3775) (@willpower232)
Documentation:
- 2122390: DOCS: Fill some question marks for cloudns (#3767) (@louis-lau)
CI/CD:
- 2be2b0f: Build(deps): Bump actions/cache from 4.2.4 to 4.3.0 (#3776) (@dependabot[bot])
- 68edb2e: Build(deps): Bump tar-fs from 3.0.9 to 3.1.1 (#3783) (@dependabot[bot])
Dependencies:
- 30d91d5: CHORE: Update deps (#3782) (@tlimoncelli)
- db21e30: Update deps (#3790) (@tlimoncelli)
Other changes and improvements:
- 5f4e1ef: NS1: Fix NAPTR special case (#3785) (@tlimoncelli)
- 589cb77: CAA: Support issuemail / issuevmc tag in CAA builder (#3774) (@psuet)
(@tlimoncelli)
Deprecation warnings
Warning
- REV() will switch from RFC2317 to RFC4183 in v5.0. This is a breaking change. Warnings are output if your configuration is affected. No date has been announced for v5.0. See https://docs.dnscontrol.org/language-reference/top-level-functions/revcompat
- NAMEDOTCOM and SOFTLAYER need maintainers! These providers have no maintainer. Maintainers respond to PRs and fix bugs in a timely manner, and try to stay on top of protocol changes.
Install
macOS and Linux
Install with Homebrew (recommended)
brew install dnscontrol
Using with Docker
You can use the Docker image from Docker hub or GitHub Container Registry.
docker run --rm -it -v "$(pwd):/dns" ghcr.io/stackexchange/dnscontrol preview
Anywhere else
Alternatively, you can install the latest binary (or the apt/rpm/deb/archlinux package) from this page.
Or, if you have Go installed, you can install the latest version of DNSControl with the following command:
go install github.com/StackExchange/dnscontrol/v4@main
Update
Update to the latest version depends on how you choose to install dnscontrol
on your machine.
Update with Homebrew
brew upgrade dnscontrol
Alternatively, you can grab the latest binary (or the apt/rpm/deb package) from this page.