Greetings DNS fans!
WARNING: This release overhauled two internal systems. There should be no user-visible affects. However... please test carefully before putting it into production. What changed? (1) how DS records are managed (this doesn't affect many users), and (2) how IP addresses are managed (this affects everyone).
Highlights:
- 2 new providers! GIDINET and INFOMANIAK! Grazie to @zupolgec for contributing Gidinet (both DNS provider and registrar) (#4004), and thanks to @jbelien for adding INFOMANIAK (also both DNS provider and registrar) (#3574)
- 2 big refactoring projects: DS was rewritten to use the more modern RecordConfigV2 (#3996) and we converted net.IP to the more modern netip.Addr (#4012)
- Cloudflare gained support for record comments, tags, and CNAME flattening thanks to @allixsenos
- DESEC gained support for LOC record (#4011) thanks to @androw
- DIGITALOCEAN doccs have been updated (#4029) thanks to @chicks-net (he also contributed #4041 which fixed many broken links)
- JOKER now correctly updates TTLs on CAA and other records #4019 thanks to @grahammiln
- And many other improvements!
Thanks to all contributors involved in this release! This is a community project and we couldn't do it without all of your contributions!
Sincerely,
--Tom Limoncelli
Monthly video call!
Everyone is invited to the Monthly DNSControl Community Video Conference Call on the 2nd Tuesday of each month. Join whether you are a new user with questions or an experienced developer that wants to discuss DNSControl internals... or anything in between! Meeting details on GitHub Discussions.
Changelog
Major features:
- fa57bf0: NEW PROVIDER: Gidinet DNS provider and registrar (#4004) (@zupolgec)
- 776b666: NEW PROVIDER: INFOMANIAK (#3574) (@jbelien)
- 906495a: REFACTOR: Rewrite DS to use RecordConfigV2 (#3996) (@tlimoncelli)
- e999c7f: REFACTOR: Convert net.IP to netip.Addr (#4012) (@tlimoncelli)
Provider-specific changes:
- d0a0a02: CLOUDFLAREAPI: Add per-record CNAME flattening support (#4020) (@allixsenos)
- 5ae29a6: CLOUDFLAREAPI: Add support for record comments and tags (#4025) (@allixsenos)
- 5400286: CLOUDFLAREAPI: Reduce confusion by making CF_CNAME_FLATTEN_ON and CF_PROXY_ON mutually exclusive (#4026) (@allixsenos)
- 39be60d: DESEC: add support for LOC record (#4011) (@androw)
- 5021e61: DIGITALOCEAN: self-documenting Cannot()s for unsupported features (#4029) (@chicks-net)
- 2bb352f: JOKER: TTLs may not always be set for CAA and other records (#4019) (@grahammiln)
Documentation:
- f792c87: DOCS: Fix DKIM_BUILDER instruction typo ("note" not "notes") (#4027) (@flindeberg)
- e5e7934: DOCS: debug provider links that had underscores before 3909 (#4041) (@chicks-net)
CI/CD:
- cef3402: Build(deps): Bump alpine from 3.23.2 to 3.23.3 (#4032) (@dependabot[bot])
- 0d0ee28: CICD: Enable testing of cloudflare redirects (#4022) (@tlimoncelli)
Dependencies:
- 26cb204: CHORE: Upgrade dependencies (#4037) (@tlimoncelli)
Other changes and improvements:
- e01b174: FEATURE: Output memory statistics (--full) (#4031) (@tlimoncelli)
- b346a4c: BUGFIX: avoid collisions in context with custom type (staticcheck/SA1029) (#4014) (@grahammiln)
- 59f4da4: BUGFIX: avoid impossible comparison (staticcheck/SA4003) (#4015) (@grahammiln)
- 0e5fbef: BUGFIX: error contains advice for presentation (staticcheck/ST1005) (#4016) (@grahammiln)
- 375b150: CHORE: generate-all.sh (#4043) (@tlimoncelli)
- 566df5e: REFACTOR: Label legacy miekg/dns package as dnsv1 (#4024) (@tlimoncelli)
- a91c54b: REFACTOR: use idiomatic Go (staticcheck/S1002+S1009) (#4017) (@grahammiln)
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, OPENSRS 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 dnscontrolUsing 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 previewAnywhere 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@mainUpdate
Update to the latest version depends on how you choose to install dnscontrol on your machine.
Update with Homebrew
brew upgrade dnscontrolAlternatively, you can grab the latest binary (or the apt/rpm/deb package) from this page.