Releases: DNSControl/dnscontrol
Release list
v5.0.0-rc5
Greetings DNS fans!
Version 5.0 is getting closer!
TESTERS NEEDED!
Please test this release. There should be no user-facing changes however the underlying infrastructure has been rewritten. Please help prevent "dot zero" bugs by testing this now and reporting any findings.
via Docker:
docker run --rm -it -v "$(pwd):/dns" ghcr.io/dnscontrol/dnscontrol:5.0.0-rc5 check
via Released binaries
Binaries for Linux (DEB and RPM), MacOS, FreeBSD, Windows can be downloaded from:
https://github.com/DNSControl/dnscontrol/releases/tag/untagged-37f55e8dac6404c0e434
via Source
git clone https://github.com/DNSControl/dnscontrol.git
git checkout v5.0.0-rc5 # rc5
git checkout release_candidate_v5 # Working tree
go install
Please report any problems, issues, or questions on Github: https://github.com/DNSControl/dnscontrol/issues/new/choose
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:
- c29a6f7: NEW PROVIDER: NexDNS (#4685) (@morozov-alexey)
Provider-specific changes:
- 0084086: DESEC, POWERDNS: Add audit rules for DNSKEY records (#4705) (@androw)
- d5b2424: DESEC: Update DNSSEC capabilities (#4692) (@androw)
- da6f97c: DNSMADEEASY: Cover label conversion in types_test.go (#4696) (@vojtad)
- d75427a: DOMAINNAMESHOP: Reject NS records at apex (#4702) (@SimenBai)
- f486bdc: NETCUP: fixup provider to make it pass the latest integration test suite (#4706) (@kordianbruck)
- 3661095: NEXDNS: Modernize for v5 (@TomOnTime)
CI/CD:
- 5eba216: Build(deps): Bump ip-address from 10.2.0 to 10.4.0 (#4693) (@dependabot[bot])
- b88ad6e: Build(deps): Bump js-yaml from 4.3.0 to 4.3.1 (#4722) (@dependabot[bot])
- b0583a4: CI: Add "golden" data files for most providers (@TomOnTime)
Dependencies:
- 14a70c1: CHORE: Update deps (#4721) (@TomOnTime)
Other changes and improvements:
- 4a058a0: Add provider conversion golden tests (#4716) (@TomOnTime)
- 0de7521: BENCHMARK: Compare TypeNum and RDATA type switches (#4719) (@TomOnTime)
- 5729f28: BUGFIX: rejectif.NsAtApex never matched the apex label (#4707) (@SimenBai)
- ad65eb1: REFACTOR: Convert more GetTargetField()s (#4694) (@TomOnTime)
- f38ac46: REFACTOR: Eliminate GetTargetCombined*() / modernize CF_WORKER_ROUTE (#4691) (@TomOnTime)
- c881690: REFACTOR: Eliminate legacy MxPreference field (#4701) (@TomOnTime)
- 0434d5a: REFACTOR: Optimize switch on .Type to be .TypeNum (#4718) (@TomOnTime)
- 95f4b92: REFACTOR: Reduce the use of GetTargetField() (#4714) (@TomOnTime)
- 6d96e27: REFACTOR: Reduce use of SetTarget(), GetTargetField() and .target (#4708) (@TomOnTime)
- b694126: REFACTOR: Remove legacy fields for SRV and NAPTR (#4703) (@TomOnTime)
- 25ecc21: REFACTOR: Remove more RecordConfig fields (#4711) (@TomOnTime)
- a94f7e3: REFACTOR: Switch on RDATA types where safe (#4720) (@TomOnTime)
- 48292dc: Release v4.46.0 (#4723) (@TomOnTime)
- c3d1163: Release v5.0.0-rc5 (#4726) (@TomOnTime)
- b2e068b: Revert "TEST: providergolden: Add -record and -update to specific tests (#4713)" (@TomOnTime)
- 948395e: TEST: providergolden: Add -record and -update to specific tests (#4713) (@TomOnTime)
- 06e21a7: dc copies mutex (@TomOnTime)
- d5b1176: empty (@TomOnTime)
v4.46.0
Greetings DNS fans!
Release highlights:
NEW PROVIDER: DNSControl now supports NexDNS! Thanks and welcome to @morozov-alexey who joins the project as its maintainer. We look forward to great things!
Thanks to all contributors involved in this release! This is a community project and we couldn't do it without all of your contributions!
NOTE: The v5.x release is getting near! What does it need most? You're feedback! Please test it with your configuration. There should be zero user-visible differences. However, since much of the underlying code has been rewritten, testing with real configurations is very important. Release candidate 5.0.0-rc5 is due today or tomorrow. See https://github.com/orgs/DNSControl/discussions
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:
- c29a6f7: NEW PROVIDER: NexDNS (#4685) (@morozov-alexey)
CI/CD:
- 5eba216: Build(deps): Bump ip-address from 10.2.0 to 10.4.0 (#4693) (@dependabot[bot])
- b88ad6e: Build(deps): Bump js-yaml from 4.3.0 to 4.3.1 (#4722) (@dependabot[bot])
Dependencies:
- 14a70c1: CHORE: Update deps (#4721) (@TomOnTime)
Other changes and improvements:
- 48292dc: Release v4.46.0 (#4723) (@TomOnTime)
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 trust --formula dnscontrol/tap/dnscontrol
brew install DNSControl/tap/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/dnscontrol/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/DNSControl/dnscontrol/v4@mainUpdate
Update to the latest version depends on how you choose to install dnscontrol on your machine.
Update with Homebrew
brew upgrade DNSControl/tap/dnscontrolAlternatively, you can grab the latest binary (or the apt/rpm/deb package) from this page.
v5.0.0-rc4
Greetings DNS fans!
Another release candidate! Please test and report any bugs!
We're on schedule to release 5.x before September.
Big change this time: The move from https://github.com/miekg/dns to https://codeberg.org/miekg/dns is complete! We no longer import both! I've also started removing old fields which will save significant memory!
Most providers have been tested by me or a maintainer. However some are completely untested and WE NEED VOLUNTEERS to test them:
ADGUARDHOME
AUTODNS
DESEC
DOMAINNAMESHOP
EXOSCALE
HOSTINGDE
MIKROTIK
PACKETFRAME
RWTH
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
Provider-specific changes:
- dbbba21: ALIDNS: Modernize field access (#4657) (@TomOnTime)
- f1efd81: AUTODNS: Modernize field access (#4660) (@TomOnTime)
- 7b13af9: AXFRDDNS: Modernize field access (#4661) (@TomOnTime)
- 108cf31: AXFRDDNS: convert to codeberg.org/miekg/dns (dnsv2) (#4658) (@shuvamk)
- 4ccaa21: BUNNYDNS: Modernize field access (#4662) (@TomOnTime)
- d9bbd73: CLOUDNS: Modernize field access (#4663) (@TomOnTime)
- 97cddcd: DESEC: Fix TXT records quote, disable TTL tests (#4677) (@androw)
- 698b06f: DNSCALE: Modernize field access (#4664) (@TomOnTime)
- 0af29d7: DNSIMPLE: Modernize field access (#4656) (@TomOnTime)
- 0b97c68: DNSMADEEASY: Unify how labels are made (#4679) (@TomOnTime)
- 5a0362a: DOMAINNAMESHOP: Improve label creation (@TomOnTime)
- 11f67ba: DYNU: Modernize field access (#4665) (@TomOnTime)
- ca08787: FORTIGATE: Modernize field access (#4666) (@TomOnTime)
- dbda6b2: JOKER: Modernize field access (#4673) (@TomOnTime)
- 5b761f3: NETCUP: Modernize field access (#4667) (@TomOnTime)
- b9823fb: NETLIFY: toRC should not mutate native record (#4671) (@TomOnTime)
- e755fc9: NETNOD: Modernize field access (#4668) (@TomOnTime)
- 349405a: OVH: Modernize field access (#4669) (@TomOnTime)
- a9374d8: SAKURACLOUD: Modernize field access (#4670) (@TomOnTime)
Other changes and improvements:
- 30925b1: CHORE: Modernize pkg (#4674) (@TomOnTime)
- 58cd91d: CHORE: Remove unused SetTarget*() functions, improve warnings (#4672) (@TomOnTime)
- 127e3a7: MYTHICBEATS: Convert to dnsv2 (#4682) (@TomOnTime)
- 843c6ec: REFACTOR: Modernize the "commands/" files (#4684) (@TomOnTime)
- 1668c0f: REFACTOR: Remove RC.DnsKey* .Loc* .Smimea* (#4686) (@TomOnTime)
- be51387: REFACTOR: Upgrade from dnsv1 to dnsv2 (#4683) (@TomOnTime)
- e5dc8f6: Release v5.0.0-rc4 (#4689) (@TomOnTime)
- 7a4bfbd: empty (@TomOnTime)
- e32fa9c: use dc.LabelFromShort() even when not required for safety. (#4681) (@TomOnTime)
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 trust --formula dnscontrol/tap/dnscontrol
brew install DNSControl/tap/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/dnscontrol/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/DNSControl/dnscontrol/v4@mainUpdate
Update to the latest version depends on how you choose to install dnscontrol on your machine.
Update with Homebrew
brew upgrade DNSControl/tap/dnscontrolAlternatively, you can grab the latest binary (or the apt/rpm/deb package) from this page.
v5.0.0-rc3
Greetings DNS fans!
All providers are now converted. Some "long tail" work still needed.
Most providres have been tested by me or a maintainer. However some are completely untested and WE NEED VOLUNTEERS to test them:
ADGUARDHOME
AUTODNS
DESEC
DOMAINNAMESHOP
EXOSCALE
HOSTINGDE
MIKROTIK
PACKETFRAME
RWTH
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
Provider-specific changes:
- 1826646: ADGUARDHOME: Modernize record conversion (#4536) (@TomOnTime)
- 337f115: AKAMAIEDGEDNS: Fix bugs mentioned in Issue (#4466) while running integration tests (#4421) (#4487) (@meghanakudua02)
- a9ff22f: AKAMAIEDGEDNS: Modernize record conversion (#4537) (@TomOnTime)
- 218b565: ALIDNS: Modernize record conversion (#4538) (@TomOnTime)
- 5401afe: ALIDNS: audit punycoded CNAME targets (#4424) (@bytemain)
- 8950faa: AUTODNS: Modernize record conversion (#4539) (@TomOnTime)
- fdc38db: AUTODNS: support two factor authentication via TOTP (#4626) (@leon-th)
- 93f655c: AXFRDDNS: Adopt dnsv2 (partial) (#4529) (@TomOnTime)
- cb37dcb: BIND: Refactor to use modern constructs (#4423) (@TomOnTime)
- 7128ea7: BUNNYDNS: Modernize code (#4647) (@TomOnTime)
- 4e4da9c: BUNNYDNS: Modernize record conversion (#4540) (@TomOnTime)
- 94b973e: CLOUDFLAREAPI: Modernize field access (#4625) (@TomOnTime)
- f530e0e: CLOUDFLAREAPI: Reduce use of legacy functions (#4480) (@TomOnTime)
- ab531a1: CLOUDNS: Modernize record conversion (#4541) (@TomOnTime)
- c27f98b: CNR: Modernize field access (#4620) (@TomOnTime)
- 38a2273: CNR: Use diff2.ByRecord instead of diff.NewCompat (#4604) (@TomOnTime)
- f92f03a: CSCGLOBAL: Modernize record conversion (#4542) (@TomOnTime)
- 4e7b3cc: CSCGLOBAL: Use diff2.ByRecord instead of diff.NewCompat (#4605) (@TomOnTime)
- 7d3fc44: DNSIMPLE: Modernize field access (#4648) (@TomOnTime)
- b017a1d: DNSMADEEASY: fix TXT ≥256-byte round-trip and ALIAS/ANAME diff loop; document sandbox testing (#4469) (@vojtad)
- fd4dffb: FORTIGATE: Debug failing IGNORE tests (#4621) (@TomOnTime)
- 6f0dc26: GIDINET: v5 test fixes and modernize record conversion (#4451) (@zupolgec)
- c39ac7f: INFOMANIAK: Disable tests for features that do not exist (#4613) (@TomOnTime)
- 278b963: NAMECHEAP: just skip the failing tests (#4635) (@willpower232)
- f56aafd: NAMEDOTCOM: Upgrade to diff2 (#4565) (@TomOnTime)
- cf54521: NETBIRD: Add apiurl creds argument (#4486) (@3l0w)
- 97f6a9c: NETNOD: Fix typo (#4530) (@TomOnTime)
- b3d616f: PORKBUN: Modernize field access for SVCB records (#4649) (@TomOnTime)
- 5cbd56e: POWERDNS: Update access to SVCB fields (#4639) (@TomOnTime)
- 2d57bb7: ROUTE53: Modernize (#4481) (@TomOnTime)
- 430d2c6: SOFTLAYER: Use diff2.ByRecord instead of diff.NewCompat (#4606) (@TomOnTime)
- 233e37f: TRANSIP: Fix TXT bug (#4592) (@TomOnTime)
- 5d6e508: TRANSIP: Fix TXT records (#4597) (@TomOnTime)
- c683ca3: UNIFI: new API compatibility fixes + tests (#4452) (@zupolgec)
- b56dfd3: VERCEL: Modernize fields (#4619) (@TomOnTime)
- 6259760: VULTR: convert fields (#4618) (@TomOnTime)
- 4873383: desec: Modernize record conversion (#4543) (@TomOnTime)
- a3d31ee: dnscale: Modernize record conversion (#4544) (@TomOnTime)
- 5c24a8d: dnsimple: Modernize record conversion (#4545) (@TomOnTime)
- c6af85d: dnsmadeeasy: Modernize record conversion (#4546) (@TomOnTime)
- 0f1f821: domainnameshop: Modernize record conversion (#4547) (@TomOnTime)
- 8453715: dynu: Modernize record conversion (#4548) (@TomOnTime)
- ab2e50b: exoscale: Modernize record conversion (#4549) (@TomOnTime)
- 41b6cc6: fortigate: Modernize record conversion (#4550) (@TomOnTime)
- fb07524: gcore: Modernize record conversion (#4551) (@TomOnTime)
- d076712: gidinet: Modernize record conversion (#4552) (@TomOnTime)
- 70425d2: gigahost: Modernize record conversion (#4553) (@TomOnTime)
- cecd5ea: hostingde: Modernize record conversion (#4555) (@TomOnTime)
- 33d8f21: huaweicloud: Modernize record conversion (#4556) (@TomOnTime)
- 4c07681: infomaniak: Modernize record conversion (#4557) (@TomOnTime)
- 32ecb35: inwx: Modernize record conversion (#4558) (@TomOnTime)
- 620a04f: joker: Modernize record conversion (#4559) (@TomOnTime)
- fa27836: linode: Modernize record conversion (#4560) (@TomOnTime)
- 5af75bd: loopia: Modernize record conversion (#4561) (@TomOnTime)
- a862f2b: luadns: Modernize record conversion (#4562) (@TomOnTime)
- 3ed414a: mikrotik: Modernize record conversion (#4563) (@TomOnTime)
- fe93b0b: namecheap: Modernize record conversion (#4566) (@TomOnTime)
- ff88d92: netbird: Modernize record conversion (#4567) (@TomOnTime)
- 990e72f: netcup: Modernize record conversion (#4568) (@TomOnTime)
- 259b4b7: netlify: Modernize record conversion (#4569) (@TomOnTime)
- 40ad888: ns1: Modernize record conversion (#4570) (@TomOnTime)
- a5894e8: openwrt: Modernize record conversion (#4571) (@TomOnTime)
- 348304e: oracle: Modernize record conversion (#4572) (@TomOnTime)
- 62031d9: packetframe: Modernize record conversion (#4573) (@TomOnTime)
- 7a40210: porkbun: Modernize record conversion (#4574) (@TomOnTime)
- a974a34: powerdns: exclude from DS and DNSKEY record tests (#4614) (@jpbede)
- 9a2e03b: realtimeregister: Modernize record conversion (#4575) (@TomOnTime)
- 1f7ad07: rwth: Modernize record conversion (#4577) (@TomOnTime)
- c813ead: sakuracloud: Modernize record conversion (#4578) (@TomOnTime)
- eb5b16f: scaleway: Modernize record conversion (#4579) (@TomOnTime)
- cde24d1: softlayer: Modernize record conversion (#4580) (BLIND MERGE) (@TomOnTime)
- ba1463d: tencentdns: Modernize record conversion (#4581) (@TomOnTime)
- 4a76fbf: unifi: Modernize record conversion (#4582) (@TomOnTime)
- 823586c: vultr: Modernize record conversion (#4583) (@TomOnTime)
- d66b241: websupport: Modernize record conversion (#4584) (@TomOnTime)
Documentation:
- 7f6139a: DOCS: Document RecordConfig V3 best practices (#4464) (@TomOnTime)
CI/CD:
- f8f1cae: Build(deps): Bump brace-expansion from 5.0.7 to 5.0.9 (#4629) (@dependabot[bot])
Dependencies:
- 9d334eb: CHORE: Update dependencies (#4628) (@TomOnTime)
- 9901840: Update deps (@TomOnTime)
Other changes and improvements:
- c097900: BUG: SPF flattening no longer drops the last term of an include with no "all" (#4630) (@shuvamk)
- 637fbaf: BUG: preview no longer errors when a zone will be created by push (#4612) (@lopster568)
- fcb93e9: BUGFIX: IsPrivateType has an off-by-one error (@TomOnTime)
- f365b0b: BUGFIX: PrettySort not working with PTR-like short names (#4420) (@TomOnTime)
- 68bd3d1: CHORE: "vet -fix" (#4465) (@TomOnTime)
- bfa8067: CHORE: Add Must* equivs of RecordConfig factories (#4461) (@TomOnTime)
- 0df590a: CHORE: Adopt models.Mu...
v4.45.0
Greetings DNS fans!
Release v4.45.0 highlights
ANNOUNCEMENT: SPF_BUILDER() may generate a different TXT record after upgrading to this release. A bug was found that produced incorrect results, including elements of the SPF record being unintentionally deleted. The new TXT records are more correct.
- BUG: SPF flattening no longer drops the last term of an include with no "all" (#4630)
- AUTODNS now supports two factor authentication via TOTP (#4626). Thanks, @leon-th!
- BUG: preview no longer errors when a zone will be created by push (#4612). Thanks, @lopster568
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
Provider-specific changes:
- fdc38db: AUTODNS: support two factor authentication via TOTP (#4626) (@leon-th)
- 278b963: NAMECHEAP: just skip the failing tests (#4635) (@willpower232)
CI/CD:
- f8f1cae: Build(deps): Bump brace-expansion from 5.0.7 to 5.0.9 (#4629) (@dependabot[bot])
Dependencies:
- 9d334eb: CHORE: Update dependencies (#4628) (@TomOnTime)
Other changes and improvements:
- c097900: BUG: SPF flattening no longer drops the last term of an include with no "all" (#4630) (@shuvamk)
- 637fbaf: BUG: preview no longer errors when a zone will be created by push (#4612) (@lopster568)
- c15de40: Prep release (#4643) (@TomOnTime)
- 96f64d3: Release v4.45.0 (#4644) (@TomOnTime)
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 trust --formula dnscontrol/tap/dnscontrol
brew install DNSControl/tap/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/dnscontrol/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/DNSControl/dnscontrol/v4@mainUpdate
Update to the latest version depends on how you choose to install dnscontrol on your machine.
Update with Homebrew
brew upgrade DNSControl/tap/dnscontrolAlternatively, you can grab the latest binary (or the apt/rpm/deb package) from this page.
v5.0.0-rc2
Greetings DNS fans!
This is another release candidate for v5.x. Please test in your environment and report any issues. There should be no user-visible changes. This branch is rewriting some internal systems.
There will be many more release candidates before v5.0.0 is ready to ship.
How to run:
- Build it from the branch release_candidate_v5
- Use any of the artifacts on the release page https://github.com/DNSControl/dnscontrol/releases/tag/v5.0.0-rc2
- Use the docker image:
docker run --rm -it -v "$(pwd):/dns" ghcr.io/dnscontrol/dnscontrol:5.0.0-rc2 preview
(change "preview" to any subcommand.... preview, push, version)
Details about the changes are in the rc1 release notes: https://github.com/DNSControl/dnscontrol/releases/tag/v5.0.0-rc1
Sincerely,
--Tom Limoncelli
v4.44.1
Greetings DNS fans!
Release v4.44.1 highlights:
- NAMECHEAP: Now supports SRV records, thanks to @willpower232!
- "dnscontrol init" now supports NS1, thanks to @costasd!
- Many performance optimizations in the CICD pipeline.
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
Provider-specific changes:
- ac99333: NAMECHEAP: Add SRV Record Support (#4511) (@willpower232)
- 2206db0: NS1: enable init support (#4531) (@costasd)
CI/CD:
- 717d9aa: Build(deps): Bump actions/labeler from 6 to 7 (#4564) (@dependabot[bot])
- efab312: Build(deps): Bump actions/setup-go from 6 to 7 (#4523) (@dependabot[bot])
- fc14894: Build(deps): Bump google.golang.org/grpc from 1.82.0 to 1.82.1 (#4596) (@dependabot[bot])
- 12088f3: CICD: Cancel superseded PR runs; pin tools; shallow checkout (#4587) (@TomOnTime)
- 5e3d099: CICD: Don't double-cache Go artifacts (#4585) (@TomOnTime)
- 93c7359: CICD: Fix per-provider integration-test serialization across triggers (#4598) (@TomOnTime)
- 125a284: CICD: Remove setup-go (#4586) (@TomOnTime)
- 97342a4: CICD: Translate PowerShell code to jq (#4576) (@TomOnTime)
- 3950226: CICD: go-checks don't need to be parallel, saving per-container setup cost (#4588) (@TomOnTime)
Dependencies:
- 8ce1981: CHORE: Update dependencies (#4595) (@TomOnTime)
Other changes and improvements:
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 trust --formula dnscontrol/tap/dnscontrol
brew install DNSControl/tap/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/dnscontrol/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/DNSControl/dnscontrol/v4@mainUpdate
Update to the latest version depends on how you choose to install dnscontrol on your machine.
Update with Homebrew
brew upgrade DNSControl/tap/dnscontrolAlternatively, you can grab the latest binary (or the apt/rpm/deb package) from this page.
v5.0.0-rc1
Welcome to a preview of the future, DNS fans!
DNSControl v5 is refactoring some of the biggest internal parts of the system. There should be zero user-facing
changes. However, I'm releasing a few "test balloons" to get feedback early.
Goals of the new release:
- No user-visible changes. Your dnsconfig.js works.
- Enable faster adoption of new DNS record types!
- Enable easier implementation of new custom DNS record types.
- Internally use the dnsv2.RDATA type to store DNS record fields. This will be more memory efficient.
And most importantly...
- Old providers "just work". Legacy data structs are bi-directionally converted to the new structures (for now).
Interested in what changed? Visit the new Developer Cookbook which explains the new features that mean less code needs to be written when creating providers.
Maintainers: Existing providers "just work". However, the backwards-compatibility code will go away by the end of 2026. Please read the conversion guide for step-by-step instructions. I've already begun the process for all the providers with automated testing. The branch names are release_candidate_v5_$PROVIDER. For example, release_candidate_v5_namedotcom.
Extra testing needed!
- BIND: SOA handling has been rewritten to be easier to debug and more reliable. Shouldn't have any user-visible changes but please be on the lookout for problems.
- CLOUDFLAREAPI: CF_WORKER_ROUTES() need extra testing. Internally they were represented sometimes as
WORKER_ROUTEand sometimes asCF_WORKER_ROUTE. It's amazing such complex code ever worked. Now we useCF_WORKER_ROUTEexclusively. The changes were core to the worker feature. Pleaes give extra attending and testing. - IMPORT_TRANSFORM() hasn't changed but related parts have.
- Any provider that implements pseudo-types such as CF_WORKER_ROUTES(), BUNNY_DNS_PZ(), etc.
If you maintain a DNS provider, please give this release extra testing!
I only have automated testing for the following providers:
AXFRDDNS_DNSSEC AZURE_DNS AZURE_PRIVATE_DNS BIND CLOUDFLAREAPI CNR
DIGITALOCEAN GANDI_V5 GCLOUD HEDNS MYTHICBEASTS NETNOD NS1 ROUTE53
SAKURACLOUD TRANSIP VERCEL
All others are at risk of being broken! Apologies in advance! I'm doing my best not to break anything, but without an ability to test my work it's difficult to not make mistakes.
Provider maintainers! Please run the integration tests on this branch and report back any problems. (This is also an excellent opportunity to add your provider to the automated testing list)
Sincerely,
--Tom Limoncelli
Using with Docker
You can use the Docker image from the GitHub Container Registry.
docker run --rm -it -v "$(pwd):/dns" ghcr.io/dnscontrol/dnscontrol:5.0.0-rc1 versionMonthly 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.
v4.43.3
Greetings DNS fans!
No changes. Testing the release process.
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
CI/CD:
- 142627f: Build(deps): Bump brace-expansion from 5.0.6 to 5.0.7 (#4517) (@dependabot[bot])
- 71f6794: CICD: Automate release process (#4515) (@TomOnTime)
- c8fbbd0: CICD: Compute previous non-RC tag for changelog (#4513) (@TomOnTime)
- 5b31069: CICD: Move release process to GHA (#4516) (@TomOnTime)
- 8dc6252: CICD: Tag release directly instead of via a PR (#4518) (@TomOnTime)
Other changes and improvements:
- d2073a3: CORE: Update prettier (#4519) (@TomOnTime)
- d64b5d7: Release v4.43.3 (#4514) (@TomOnTime)
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 trust --formula dnscontrol/tap/dnscontrol
brew install DNSControl/tap/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/dnscontrol/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/DNSControl/dnscontrol/v4@mainUpdate
Update to the latest version depends on how you choose to install dnscontrol on your machine.
Update with Homebrew
brew upgrade DNSControl/tap/dnscontrolAlternatively, you can grab the latest binary (or the apt/rpm/deb package) from this page.
v4.43.2
Greetings DNS fans!
No changes since the last release. We are testing the build system.
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
Other changes and improvements:
- ffa3005: Release v4.43.2 (#4510) (@TomOnTime)
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 trust --formula dnscontrol/tap/dnscontrol
brew install DNSControl/tap/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/dnscontrol/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/DNSControl/dnscontrol/v4@mainUpdate
Update to the latest version depends on how you choose to install dnscontrol on your machine.
Update with Homebrew
brew upgrade DNSControl/tap/dnscontrolAlternatively, you can grab the latest binary (or the apt/rpm/deb package) from this page.