Hello and happy new year, DNS fans!
This is mostly a bugfix release but 2 of the bugfixes are very important. It is strongly recommended that you upgrade immediately if you use NAMEDOTCOM at all, and if you use IGNORE*()
features on AUTODNS, BIND, MYTHICBEASTS, REALTIMEREGISTER, or SAKURACLOUD
Major bugs:
-
(#3259) NAMEDOTCOM: TXT records were not generated properly. Quotes were added around the text. This went unnoticed for months (years?). Thanks to @tkurki for reporting this! (FYI: This provider needs a volunteer maintainer. See below!)
-
(#3227) IGNORE() deletes ignored records when used with providers that use the
diff2.ByZone()
function: This affects AUTODNS, BIND, MYTHICBEASTS, REALTIMEREGISTER, SAKURACLOUD only. This was extremely difficult to find but thanks to some smart detective work by @rmc47 we not only found the problem, but developed an entirely new technique for testing IGNORE(). I now have greater confidence in IGNORE() and believe it is bug-free for all cases except when a third-party is updating the zone at the same time (something that can't be fixed because DNS doesn't have transactional locking).
Other news:
-
AXFRDDNS got a long-needed update from (@gucci-on-fleek) who fixed a number of small problems, enabled LOC records, and added it to The List of AutoTested Providers!
-
MYTHICBEASTS is now on The List of AutoTested Providers thanks to @tomfitzhenry!
Speaking of The List of AutoTested Providers: These are the providers that get fully tested with each release:
- AXFRDNS, AZURE_DNS, BIND, CLOUDFLAREAPI, CNR
- DIGITALOCEAN, GANDI_V5, GCLOUD, HEDNS, HEXONET
- MYTHICBEASTS, NAMEDOTCOM, NS1, ROUTE53
- SAKURACLOUD, TRANSIP
All other providers are not tested as often. Want your provider added to this list? Here's how: https://docs.dnscontrol.org/developer-info/byo-secrets
Changelog
Provider-specific changes:
- d0d9926: AXFRDDNS: Add support for LOC records (#3269) (@gucci-on-fleek)
- 9c3a161: AXFRDDNS: Enable automated testing (#3290) (@tlimoncelli)
- e664dae: AXFRDDNS: Modernize, Update supported capabilities (#3294) (@gucci-on-fleek)
- 76bbdc1: GANDI_V5: Increase error verbosity (#3267) (@tlimoncelli)
- fb3adf9: MYTHICBEASTS: Add MYTHICBEASTS to automated tests (#3277) (@tomfitzhenry)
- 43bb75e: MYTHICBEASTS: CHORE: fix code formatting (#3281) (@tlimoncelli)
- a8990ae: NAMEDOTCOM: BUGFIX: TXT records add unneeded quotes (#3260) (@tlimoncelli)
Documentation:
- 35ac9a9: DOCS: Add dep updates steps to rel-eng (#3265) (@tlimoncelli)
- aa93615: DOCS: Add fmtjson and "get co main" to releng docs (@tlimoncelli)
- 2f55b6c: DOCS: How to test a branch (feedback) (#3268) (@cafferata)
- 71539d4: DOCS: Shoutrrr added list of notification services (#3242) (@cafferata)
CI/CD:
- 6d5bfe9: Build(deps): Bump actions/upload-artifact from 4.4.3 to 4.5.0 (#3270) (@dependabot[bot])
- f265dba: Build(deps): Bump alpine from 3.20.3 to 3.21.0 (#3289) (@dependabot[bot])
- ea5e571: CICD: Update docs/comments after file renames (#3278) (@tomfitzhenry)
- 513b8be: CICD: json files should be strictly formatted (#3282) (@tlimoncelli)
Other changes and improvements:
- dd26354: Add .git-blame-ignore-revs (@tlimoncelli)
- a341022: BUGFIX: IGNORE() deletes ignored records on ByZone() platforms (#3263) (@tlimoncelli)
- f202433: CHORE: Remove debug statements (#3293) (@tlimoncelli)
- 1ffd38f: CHORE: Update dependencies (#3266) (@tlimoncelli)
- 2c2d7a1: CHORE: Update dependencies (#3288) (@tlimoncelli)
- 4489295: CHORE: Update dependencies (@tlimoncelli)
- af9e214: CI/CD: Make titles easier to read (#3274) (@tlimoncelli)
- 7f477d8: CI/CD: Run integration tests and GoReleaser concurrently (#3258) (@tlimoncelli)
- 1a1e592: DOC: NEW: How to test a branch (#3264) (@tlimoncelli)
- e232501: TESTING: parse_tests: Generate post-processed json files (@tlimoncelli)
- e9ff430: TESTING: parse_tests: reformat/regenerate .js .json files (@tlimoncelli)
- 876451b: empty (@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
- MSDNS maintainer needed! Without a new volunteer, this DNS provider will lose support after April 2025. See #2878
- 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.
- get-certs/ACME support is frozen and will be removed without notice between now and July 2025. It has been unsupported since December 2022. If you don't use this feature, do not start. If you do use this feature, migrate ASAP. See discussion in issues/1400
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.