Releases: StackExchange/dnscontrol
v4.12.0
Hello DNSControl fans!
This release includes one new provider (HUAWEICLOUD
), HTTPS
/SVCB
records are now supported on CLOUDFLAREAPI
and GCORE
, and require()
now supports JSON5 files. There are also many bugfixes and documentation improvements.
Thanks to @huihuimoe for contributing the HUAWEICLOUD
provider!
The big news of this release is that CLOUDFLAREAPI
's CF_REDIRECT
/CF_TEMP_REDIRECT
commands can now generate redirects using "rules" instead of "page rules". Page rules are going away soon. See https://docs.dnscontrol.org/provider/cloudflareapi for more info. This feature is very new and needs more testing. Please test it carefully before putting it into production, and test the changes in production right away. We're releasing this early to get it out there for early testing before Page Rules go away. (On a personal note, I haven't tested it on all my domains so I can't even promise it works in all the intended cases.) Bug reports greatfully accepted.
Thanks to everyone for their contributions! This is a community effort and it wouldn't be a success without all your help!
Changelog
Major features:
- 1f4c4c6: FEATURE: Add TTL() support to CAA_BUILDER() (#2978) (@cafferata)
- 8eb3c65: FEATURE: Enable "require()" function to accept json5 files (#3003) (@tlimoncelli)
Provider-specific changes:
- ce07c76: HUAWEICLOUD: Add support for huaweicloud dns (#3010) (@huihuimoe)
- b3787ab: AXFRDDNS: Canonicalize key name as per RFC 2845 3.4.2 (#2966) (@nemunaire)
- 7fd6a74: CLOUDFLAREAPI: CF_REDIRECT/CF_TEMP_REDIRECT should dtrt using Single Redirects (#3002) (@tlimoncelli)
- 68b0b30: CLOUDFLAREAPI: Enable DNSKEY, HTTPS, SVCB record types (#3000) (@charliez0)
- 2ccef49: CLOUDFLAREAPI: disable DNSKEY until it is fixed (#3004) (@tlimoncelli)
- df1354b: DNSIMPLE: enable Null MX records (#2960) (@philpennock)
- d55474c: GCLOUD: Fix issue on creating/deleting/updating TXT records (#3011) (@ingwarsw)
- b786b0e: GCLOUD: Fix missing length in make() (#2982) (@tlimoncelli)
- b47ac0d: GCORE: add SVCB and HTTPS support (#2983) (@xddxdd)
- 107b585: HEXONET: Adopt version 4.0.0 of the rtldev-middleware-go-sdk (#2974) (@AsifNawaz-cnic)
- 2d15884: HUAWEICLOUD: add metadata to control Intelligent Resolution (#3013) (@huihuimoe)
- 174fd7b: PORKBUN: catch error on parsing api (#3012) (@imlonghao)
Documentation:
- 9dcd8c7: DOCS: AUTODNSSEC_* improvements (#2984) (@cafferata)
- 4083641: DOCS: Fixed 404 URL's on GitHub page (#2969) (@cafferata)
- 39c08bd: DOCS: Provide domain modifiers code examples with a Top Level Function D() (#2993) (@cafferata)
- 5e68998: DOCS: Removed the double Markdown header syntax. (#2968) (@cafferata)
- f0d1319: DOCS: Several improvements and cleanups (#2972) (@cafferata)
- 2b70f24: DOCS: [REVCOMPAT] Fixed broken URL's (#2970) (@cafferata)
- 91bf56c: DOCS: [get-zones] Removed old reference to
convertzone
(#2971) (@cafferata)
CI/CD:
- 94ce7e2: BUILD: GoReleaser v2.0.0 (#2996) (@cafferata)
- cffd0bb: Build(deps): Bump alpine from 3.19.1 to 3.20.0 (#2990) (@dependabot[bot])
- 2344257: Build(deps): Bump github.com/Azure/azure-sdk-for-go/sdk/azidentity from 1.5.2 to 1.6.0 (#3006) (@dependabot[bot])
Dependencies:
- f029c9b: CHORE: update deps (#2991) (@tlimoncelli)
- 3b0e124: CHORE: update deps (#3015) (@tlimoncelli)
Other changes and improvements:
- 0a784a3: CHORE: Clean up comments in models/domain.go (#2975) (@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
Install with MacPorts
sudo port 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
Install with MacPorts
sudo port upgrade dnscontrol
Alternatively, you can grab the latest binary (or the apt/rpm/deb package) from this page.
v4.11.0
Hello DNSControl fans!
This is mostly a bug-fix and catch-up release. The most significant fix is that ppreview --expect-no-changes
now works, thus making ppreview/ppush
feature complete. Those commands will replace preview/push
in 1-2 releases, so please test them and give your feedback as soon as possible. For my configuration ppreview
reduces run-time from 4-5 minutes to 30 seconds.
- New record support: DESEC added SVCB/HTTPS; NS1 added SVCB, HTTPS, TLSA, DNAME, DHCID; BUNNY_DNS added ALIAS.
- Added support for concurrent operation (ppreview/ppush): NS1, TRANSIP
- "ppreview --expect-no-changes" now works!
- ZSH Autocomplete improved
- Welcome new maintainer for AKAMAIEDGEDNS, Ed Lynes!
Thanks to everyone for their contributions! This is a community effort and it wouldn't be a success without all your help!
Changelog
Provider-specific changes:
- 494a3f7: AKAMAIEDGEDNS: new maintainer: Ed Lynes (#2954) (@svernick)
- c679623: DESEC: Enable support for SVCB/HTTPS (#2942) (@Meroje)
- 7bd9316: NS1: Add SVCB, HTTPS, TLSA support (#2945) (@costasd)
- 4a36396: NS1: add support for DNAME and DHCID record types (#2951) (@costasd)
- 734a55c: NS1: enable concurrency (#2952) (@costasd)
- 612f16b: NS1: update ns1-go to 2.10.0 (#2941) (@costasd)
- c3152b4: TRANSIP: Completed/checked the missing capabilities (#2957) (@cafferata)
- 9815cbb: TRANSIP: Concurrency documented (#2948) (@cafferata)
Documentation:
- a679095: DOCS: Clarify RE doc (#2934) (@tlimoncelli)
- 1205ef6: DOCS: Code examples with
END
constant (#2950) (@cafferata) - e3e91cc: DOCS: [OVH] Several improvements (#2949) (@cafferata)
CI/CD:
- 39eb45b: CICD: De-conflate integration test for SVCB and HTTPS (#2938) (@tlimoncelli)
Dependencies:
- 6e4689d: CHORE: Update deps (#2953) (@tlimoncelli)
- e6885cf: CHORE: update deps (#2944) (@tlimoncelli)
Other changes and improvements:
- 6817e08: BUG: "ppreview --expect-no-changes" returns error for "informational" messages (#2936) (@tlimoncelli)
- ec241ee: BUG: ZSH Autocomplete does not work if installed as a file #2955 (#2956) (@Maetveis)
- a1fc1b1: BUNNY_DNS: Add support for
ALIAS
(#2946) (@DamianZaremba) - 1fa92de: CHORE: Linting and comment-fixing (#2937) (@tlimoncelli)
- c7975f9: CHORE: Upgrade AWS module (#2958) (@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
Install with MacPorts
sudo port 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
Install with MacPorts
sudo port upgrade dnscontrol
Alternatively, you can grab the latest binary (or the apt/rpm/deb package) from this page.
v4.10.0
This release includes 4 new DNS record types (HTTPS, SVCB, DNSKEY and DHCID), a big performance improvement for CLOUDFLAREAPI, plus many bug fixes and documentation improvements.
Highlights:
- New DNS record types SVCB and HTTPS. Supported on AXFRDDNS, BIND, GCLOUD, HEDNS, INWX, POWERDNS.
- New DNS record type DNSKEY. Supported on BIND and DESEC.
- New DNS record type DHCID. Supported on POWERDNS.
- CLOUDFLAREAPI's cache algorithm was broken, resulting in Zone Info being re-downloaded once for every domain.
ppreview
is now significantly faster as a result. - BIND: If you use BIND and the SOA() feature, your serial numbers never incremented. Fixed.
Do you maintain a provider? Please consider adding support for HTTPS, SVCB, DNSKEY, and DHCID.
Thanks to @christianbur for taking the lead on HTTPS/SVCB, to @xtexChooser for taking the lead on DNSKEY, and to @@fuero for taking the lead on DHCID! Thanks to @mraspor for reporting the BIND/SOA bug. Thanks to everyone for their contributions! This is a community effort and it wouldn't be a success without all your help!
Help wanted! We need maintainers for MSDNS, NAMEDOTCOM, and SOFTLAYER!
Changelog
Provider-specific changes:
- bb79c70: CLOUDFLAREAPI: Fix zone info cache bug (#2927) (@tlimoncelli)
- 3fd6806: BIND: BUGFIX: SOA serial number doesn't change if SOA() used (#2908) (@tlimoncelli)
- cf4cca0: INWX: Enable support for SVCB/HTTPS (#2930) (@christianbur)
- 1616348: NETLIFY: add support for listing all zones (#2933) (@SphericalKat)
- df0fa2d: POWERDNS: Change DHCID test value to valid base64 code (#2915) (@fuero)
- 0cd3c2f: POWERDNS: Enables DHCID (#2911) (@fuero)
- da6f621: POWERDNS: Value in test was too long (#2916) (@fuero)
- 3a9b413: NEW RECORD TYPE: HTTPS & SVCB (#2919) (@fritterhoff)
- 7741ef0: Enable support for SVCB/HTTPS in GCLOUD and HEDNS (#2926) (@tlimoncelli)
- 3f05482: NEW RECORD TYPE: DNSKEY (#2917) (@xtexChooser)
Documentation:
- 0b25fdb: DOCS: Add reminder to create github label after adding new provider (#2932) (@tlimoncelli)
- 6cbfb57: DOCS: Disabling colors via environment variable (#2907) (@allixsenos)
- c310647: DOCS: Documentation directory structure (#2905) (@cafferata)
- 4757a0f: DOCS: Remind devs to run go generate (#2929) (@tlimoncelli)
- 5078927: DOCS: Simplified the provider URLs (providers) (#2914) (@cafferata)
- 2f9d248: Fix typo: "cooordinate" (#2910) (@jauderho)
CI/CD:
- eae9686: Build(deps): Bump actions/upload-artifact from 4.3.1 to 4.3.3 (#2920) (@dependabot[bot])
Dependencies:
- bb79c70: CHORE: update deps (#2927) (@tlimoncelli)
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
- 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
Install with MacPorts
sudo port 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
Install with MacPorts
sudo port upgrade dnscontrol
Alternatively, you can grab the latest binary (or the apt/rpm/deb package) from this page.
v4.9.0
Greetings DNS Fans!
Release v4.9.0 has many new features, a preview of a major performance improvement ('ppreview'/'ppush') and many bug fixes! Thanks to everyone for their contributions! This is a community effort and it wouldn't be a success without all your help!
Highlights:
ppreview
/ppush
are new subcommands that are a preview of significantly faster versions ofpreview
/push
. See below.- REV() now supports RFC4183!
- DNAME records are now supported.
get-zones --format-js
output follows recommended practices better.- @cafferata has continued to make big improvements in documentation consistency, accuracy, and completeness.
- @cafferata has further automated and enhanced the CICD process.
- Code cleanup: A lot of dead code and linting completed.
Preview performance experiment
Subcommands ppreview
/ppush
are experimental versions of preview
/push
that collect all data concurrently (i.e. in parallel). If this is a success, they will replace the existing preview
/push
subcommands. Some benchmarks show a 66% reduction in run-time! This rewrite is something we've wanted to do for 6+ years!
dnscontrol preview # The original command
dnscontrol ppreview # Run capable providers in parallel
dnscontrol ppreview --cmode=none # Run each provider one at a time
dnscontrol ppreview --cmode=all # Run all providers concurrently (unsafe!)
Here's some unscientific benchmarks based on the dnsconfig.js used at Stack Overflow:
- 3m21.549s (preview)
- 2m34.349s (ppreview --cmode=none)
- 1m5.368s (ppreview)
FYI: Add the --full
flag to see what it is doing.
The "Concurrency Verified" column on https://docs.dnscontrol.org/service-providers/providers indicates which providers will run concurrently. (As of this release: AZURE_DNS, CLOUDFLAREAPI, CSCGLOBAL, GCLOUD, ROUTE53). If any provider related to a DNS domain (registrar or DNS service provider(s)) are not on the list, the domain is processed one at a time.
Do you maintain a provider? Please check if your provider can run concurrently. See #2873 for instructions
Are you a golang performance guru? I need help! I thought the concurrent version would be much faster. Can you help me find the problem?
Changelog
Major features:
- 4765f40: FEATURE: New capability: Can provider run concurrently (#2876) (@tlimoncelli)
- 1d96981: NEW FEATURE: Add RFC4183 support to REV() (#2879) (@tlimoncelli)
- 68c5e87: NEW FEATURE: Gather data for providers concurrently (#2873) (@tlimoncelli)
- a9a4725: BUG: ALIAS target not properly canonicalized (#2899) (@tlimoncelli)
- 42125b5: NEW RECORD TYPE: DNAME (#2893) (@imlonghao)
- 544d731: get-zones now outputs
END);
notation and prettier whitespace (#2849) (@tlimoncelli)
Provider-specific changes:
- 32b8863: AXFRDDNS: Avoid appending dot if TSIG key ID already has a dot suffix (#2855) (@halochou)
- 73c303b: CLOUDFLAREAPI: Permit adding NS records to apex domain (#2864) (@xtexChooser)
- eb19b31: GCORE: Allow PTR records (#2890) (@xtexChooser)
- f9cff3d: GCORE: add DNSSEC support (#2904) (@xddxdd)
- 22d96f2: deSEC: API rejects empty updates caused by IGNORE() of all records (#2830) (@tlimoncelli)
Documentation:
- 293d5cb: DOCS: Add missing docs for fmt, global flags, preview-push (#2886) (@tlimoncelli)
- 998c32e: DOCS: Broken documentation URL's (#2839) (@cafferata)
- c112e91: DOCS: Commands preview/push (#2888) (@cafferata)
- 3918c75: DOCS: Document daily update limits (#2835) (@tlimoncelli)
- 11d8e08: DOCS: Trailing commas (#2851) (@cafferata)
- 4f23b2a: DOCS: Warn that get-certs will be removed without notice (#2902) (@tlimoncelli)
- e3ea652: Docs: Fixed step number in
writing-providers
(#2820) (@riku22) - 27feced: GitHub: Added contact links (#2852) (@cafferata)
- 1ae265e: Add documentation for preview/push (#2884) (@tlimoncelli)
CI/CD:
- 3920d19: Build(deps): Bump actions/cache from 4.0.0 to 4.0.1 (#2869) (@dependabot[bot])
- 17115b6: Build(deps): Bump actions/upload-artifact from 4.3.0 to 4.3.1 (#2836) (@dependabot[bot])
- 0f4ca76: Build(deps): Bump alpine from 3.19.0 to 3.19.1 (#2823) (@dependabot[bot])
- 3beb49f: Build(deps): Bump github.com/softlayer/softlayer-go from 1.1.2 to 1.1.3 (#2827) (@dependabot[bot])
- c9e9e21: CICD: Bugfix: Changes introduced while tagging new releases cause git problems (#2818) (@tlimoncelli)
- 2cb4dcf: CICD: Bumps actions/upload-artifact from 3.1.3 to 4.3.0 (#2831) (@cafferata)
- d1b599b: CICD: GitHub Action check git status (#2817) (@cafferata)
- f010c1b: CICD: GoReleaser JSON Schema (#2816) (@cafferata)
- 558d2e8: CICD: GoReleaser release footer (#2853) (@cafferata)
- dbbc9e5: CICD: Provide the correct GitHub action contexts (#2842) (@cafferata)
- fab3172: CHORE: Refactor integration tests to support multiple tests (@tlimoncelli)
- 060e50d: CHORE: Update dependencies (@tlimoncelli)
- 46ca50e: CHORE: Update dependencies (@tlimoncelli)
- 68a00bb: DEV: Fix broken DNAME test (#2903) (@tlimoncelli)
- f5bb6e6: Revert "CHORE: Refactor integration tests to support multiple tests" (@tlimoncelli)
- 68314ee: TESTING: Bug: integration tests ignore 'type' in ignoreTarget (#2867) (@tlimoncelli)
Dependencies:
- bb3d191: CHORE: Vendor go-powershell (#2837) (@tlimoncelli)
- 5e211fc: CHORE: Update deps (#2900) (@tlimoncelli)
- 3057a0b: CHORE: Update deps (@tlimoncelli)
- 17d644c: CHORE: update deps (#2906) (@tlimoncelli)
- 139cc28: CHORE: Upgrade deps (#2829) (@tlimoncelli)
- 408a70e: DEV: Adopt go 1.22.1 as minimum compiler version (#2885) (@tlimoncelli)
- 02b0bed: DEV: Upgrade to go 1.22.x (#2882) (@tlimoncelli)
- c35e062: Revert NS1 (@tlimoncelli)
- 2e5d01e: SECURITY: Fix protobuf security issue (#2875) (@tlimoncelli)
- 3a84f6c: upgrade deps (#2881) (@tlimoncelli)
Other changes and improvements:
- dfda97b: Remove dead code in WriteTypes (@tlimoncelli)
- e52ec54: Remove unused CantUseNOPURGE capability (#2877) (@tlimoncelli)
- 18f7208: Remove unused t parameter in setupTestShellCompletionCommand (@tlimoncelli)
- e6c03c0: cleanup: Remove dead code and unused params (@tlimoncelli)
- ea71a9c: deadcode: CaaTargetHasSemicolon (@tlimoncelli)
- 798c0d6: deadcode: Change/ChangeList.String (@tlimoncelli)
- 4f32ddf: deadcode: DebugUnmanagedConfig (@tlimoncelli)
- 0576cec: deadcode: Errorf (@tlimoncelli)
- 4d13c02: deadcode: NewUTF8, utf8.Execute, utf8.Exit (@tlimoncelli)
- a3dad4d: deadcode: RRstoRCs (moved) (@tlimoncelli)
- 951b47d: deadcode: SSH.StartProcess, SSH.createCmd, SSH.quote (@tlimoncelli)
- 28ca119: deadcode: WriteZoneFileRR (@tlimoncelli)
- 2ff585d: deadcode: dump Print (@tlimoncelli)
- 80ff814: deadcode: groupbyRSet (@tlimoncelli)
- 34d6e07: deadcode: groupbyRSet (@tlimoncelli)
- ed999b9: deadcode: justMsgString (move to test) (@tlimoncelli)
- c0d8ca7: deadcode: move createTestWorker (@tlimoncelli)
- ce12d89: deadcode: move sfplib.Lookups to parse_test.go (@tlimoncelli)
- 1b16cf4: deadcode: providers/doh/auditrecords.go (not a DSP) (@tlimoncelli)
- bdad44f: deadcode: providers/internetbs/auditrecords.go (not a DSP) (@tlimoncelli)
- 15f7737: deadcode: providers/opensrs/auditrecords.go (not a DSP) (@tlimoncelli)
- e4dc7aa: deadcode: quotedList() keysWithColons() (@tlimoncelli)
- b1477d3: fix unused params in: pkg/normalize (@tlimoncelli)
- 30942ac: fix unused params in: providers/akamaiedgedns (@tlimoncelli)
- b1c6ddc: fix unused params in: providers/azuredns (@tlimoncelli)
- e98187e: fix unused param...
v4.8.2
Hello DNSControl fans!
This release is mostly bug and doc fixes. The only new feature is that GCORE now supports ALIAS records, which it always supported, but now DNSControl knows that too.
Enjoy!
Changelog
Provider-specific changes:
- da0f97d: DOCS: realtimeregister: Add security advice about creds (#2795) (@PJEilers)
- 5dfc8ca: GCORE: enable ALIAS records (#2802) (@xddxdd)
- 1db0ae2: TRANSIP: Audit records verified (#2794) (@cafferata)
- 057c921: TRANSIP: Fix description of multirecord updates to be increasing (#2791) (@blackshadev)
Documentation:
- 5d57677: DOCS: TransIP - Described API limitations (#2789) (@cafferata)
- 447db0e: DOCS: TransIP - Updated console output (#2793) (@cafferata)
- 56220fb: DOCS: Clarify PTR example (#2792) (@tlimoncelli)
- eb45102: DOCS: Clarify Windows use of --creds filename (#2812) (@tlimoncelli)
- 82d6a9b: DOCS: Fixed the broken
CAA_BUILDER()
link (#2790) (@cafferata) - 5a90eae: DOCS: [GitBook] Remove configuration file (#2807) (@cafferata)
CI/CD:
- fbd436f: Build(deps): Bump actions/cache from 3.3.2 to 3.3.3 (#2796) (@dependabot[bot])
- ba87993: Build(deps): Bump actions/cache from 3.3.3 to 4.0.0 (#2806) (@dependabot[bot])
- 513caa5: CICD: Add nullMX tests (#2801) (@tlimoncelli)
- 355c0fe: CICD: Rename the master branch to main (#2774) (@cafferata)
Dependencies:
- c1c59f7: CHORE: Update deps (#2787) (@tlimoncelli)
- d926e45: CHORE: Update deps (#2804) (@tlimoncelli)
- 881a641: CHORE: Update deps (#2811) (@tlimoncelli)
Other changes and improvements:
- f5575bb: CHORE: Missed generated content (#2803) (@cafferata)
- 916e941: Update generated files for v4.8.2 (@tlimoncelli)
v4.8.1
The first release of 2024 is packed with features! 3 new and 1 rewritten providers (!!!), improved support for unrecognized DNS records, better TXT handling and a TON of bug fixes and documentation updates.
- Three New Providers! Dynadot (thanks, @e-im!), Realtime Register (thanks, @PJEilers!), and Bunny DNS (thanks, @ppmathis!)
- GCLOUD rewrite: rewritten using
diff2.ByRecordSet
. It's about 60 lines shorter and 600% more readable (@tlimoncelli) - Unrecognized DNS record types are less likely to crash DNSControl: Anyone migrating a DNS domain will be happy to know that unknown DNS record types no longer crash
get-zones
. Providers that usePopulateFromString()
are less likely to crash too (@tlimoncelli) - The CAA_BUILDER helper now supports
issue_critical
andissuewild_critical
(@llange) - TXT records are handled more accurately in GCORE, DNSIMPLE, and TRANSIP (@xddxdd, @@weppos, @cafferata)
- AXFRDDNS can now have different servers for AXFR and DDNS (@midnightveil)
Meta issues:
dnscontrol version
now output is simplified, enabling repeatable builds (@cafferata)- The integration tests now clear the DNZ zone before each group of tests instead of after. This leaves the records of the last test in place (@tlimoncelli)
- Many improvements to how we use GoReleaser (@cafferata)
- Tons of Doc fixes! (@cafferata, @llange and @case)
NOTE: v4.8.0 was skipped because that version was used to test a CI/CD change.
Thanks to everyone for contributing! This is a community-driven project. We couldn't do it without your support!
Changelog
Major features:
- afd0d76: NEW REGISTRAR: Dynadot (DYNADOT) (#2753) (@e-im)
- 3d570ea: NEW DNS PROVIDER: Realtime Register (REALTIMEREGISTER) (#2741) (@PJEilers)
- 961eaa7: NEW PROVIDER: Bunny DNS (#2265) (#2760) (@ppmathis)
- db75e84: GCLOUD: Re-implement GetZoneRecordsCorrections using ByRecordSet (#2762) (@tlimoncelli)
- ce454c3: Unknown rtypes should not result in panic (#2775) (@tlimoncelli)
- edf0471: FEATURE: CAA_BUILDER: add
issue_critical
andissuewild_critical
(#2728) (@llange)
Provider-specific changes:
- 7ce2eb4: AKAMAIEDGEDNS: Fix AKAMAICDN add/modify. Fix integrationTest. (#2722) (@svernick)
- 36f6b19: AXFRDDNS: Support separate servers for AXFR and DDNS (#2723) (@midnightveil)
- 4cd3c78: DNSIMPLE: Add compatibility with TXT changes (#2745) (@weppos)
- 14c5a72: DYNADOT: correct example in docs (#2776) (@e-im)
- b71fd63: GCLOUD: display all correction messages affecting same label + type in a zone (#2759) (@asn-iac)
- 8ed137a: GCORE: Fix handling very long TXT records (#2744) (@xddxdd)
- 2586545: MSDNS: Fix failing DNS integration tests (#2734) (@tlimoncelli)
- c0dc049: TRANSIP: Added audit record for a maximum of 1024 TXT-record characters (#2725) (@cafferata)
Documentation:
- d4545c1: DOCS: Added GoDaddy as requested provider (#2729) (@cafferata)
- e82a95b: DOCS: Bunny DNS - Be more consistent in ENV variable example (#2772) (@cafferata)
- 1106e44: DOCS: Bunny DNS - GitBook escape the underscore (#2771) (@cafferata)
- 858c902: DOCS: Document how to view the GitBook previews created for each PR (#2780) (@cafferata)
- 3f6b93e: DOCS: Starcharts (over time) (#2781) (@cafferata)
- f46004e: DOCS: Update how to submit BYO credentials (#2767) (@tlimoncelli)
- d1a75e9: DOCS: Updates to
ovh
provider page (#2727) (@llange) - 9e4969c: Docs: Use bullet list in opinion 2 (#2746) (@case)
CI/CD:
- 6a8561f: Build(deps): Bump actions/setup-go from 4 to 5 (#2777) (@dependabot[bot])
- 0ca5581: Build(deps): Bump actions/upload-artifact from 3.1.3 to 4.0.0 (#2731) (@dependabot[bot])
- 4270259: Build(deps): Bump alpine from 3.18.5 to 3.19.0 (#2752) (@dependabot[bot])
- b5d6b06: Build(deps): Bump github/codeql-action from 2 to 3 (#2732) (@dependabot[bot])
- 393efcf: CICD: Add GHA trigger for PR workflow of master branch (#2764) (@cafferata)
- 38fa176: CICD: Clean-up old release strategy (#2773) (@cafferata)
- 94cdbc0: CICD: External PRs should not fail (#2757) (@tlimoncelli)
- 9873f9f: CICD: GoReleaser version #2 (#2761) (@cafferata)
- 17da0bc: CICD: GoReleaser version (#2737) (@cafferata)
- 742610c: CICD: GoReleaser version - part 3 (#2769) (@cafferata)
- 5daeafc: CICD: Retract v4.8.0 (#2768) (@tlimoncelli)
- 1bbf9c4: CICD: Revert actions/upload-artifact to 3.1.3 (from 4.0.0) (#2736) (@tlimoncelli)
- 9221a06: Revert "CICD: GoReleaser version" (#2756) (@tlimoncelli)
Other changes and improvements:
- 1ebe440: BUG: --full outputs an extra newline when skipping providers (#2730) (@tlimoncelli)
- e146fc5: BUG: Fix M365 Builder indexOf error (#2724) (@tlimoncelli)
- d5eedab: TESTING: clean slate at the start, not end, of each testgroup (#2738) (@tlimoncelli)
- 8f18f6e: CHORE: Bump golang.org/x/crypto from 0.16.0 to 0.17.0 (#2740) (@tlimoncelli)
- 3f27388: CHORE: Upgrade aws/aws-sdk-go-v2 urfave/cli/v2 gopkg.in/ns1/ns1-go.v2 golang.org/x/exp (@tlimoncelli)
- fe4e07b: CHORE: Upgrade deps (#2754) (@tlimoncelli)
v4.7.4
This is a test. We want to verify that the "dnscontrol version" command still has reasonable output.
This release and tag may disappear.
Tom
Changelog
Major features:
Provider-specific changes:
- 7ce2eb4: AKAMAIEDGEDNS: Fix AKAMAICDN add/modify. Fix integrationTest. (#2722) (@svernick)
- 36f6b19: AXFRDDNS: Support separate servers for AXFR and DDNS (#2723) (@midnightveil)
- 4cd3c78: DNSIMPLE: Add compatibility with TXT changes (#2745) (@weppos)
- b71fd63: GCLOUD: display all correction messages affecting same label + type in a zone (#2759) (@asn-iac)
- 8ed137a: GCORE: Fix handling very long TXT records (#2744) (@xddxdd)
- 2586545: MSDNS: Fix failing DNS integration tests (#2734) (@tlimoncelli)
- c0dc049: TRANSIP: Added audit record for a maximum of 1024 TXT-record characters (#2725) (@cafferata)
Documentation:
- d4545c1: DOCS: Added GoDaddy as requested provider (#2729) (@cafferata)
- d1a75e9: DOCS: Updates to
ovh
provider page (#2727) (@llange) - 9e4969c: Docs: Use bullet list in opinion 2 (#2746) (@case)
CI/CD:
- 0ca5581: Build(deps): Bump actions/upload-artifact from 3.1.3 to 4.0.0 (#2731) (@dependabot[bot])
- 4270259: Build(deps): Bump alpine from 3.18.5 to 3.19.0 (#2752) (@dependabot[bot])
- b5d6b06: Build(deps): Bump github/codeql-action from 2 to 3 (#2732) (@dependabot[bot])
- 94cdbc0: CICD: External PRs should not fail (#2757) (@tlimoncelli)
- 9873f9f: CICD: GoReleaser version #2 (#2761) (@cafferata)
- 17da0bc: CICD: GoReleaser version (#2737) (@cafferata)
- 1bbf9c4: CICD: Revert actions/upload-artifact to 3.1.3 (from 4.0.0) (#2736) (@tlimoncelli)
- d5eedab: CICD: clean slate at the start, not end, of each testgroup (#2738) (@tlimoncelli)
- 9221a06: Revert "CICD: GoReleaser version" (#2756) (@tlimoncelli)
Other changes and improvements:
- 1ebe440: BUG: --full outputs an extra newline when skipping providers (#2730) (@tlimoncelli)
- e146fc5: BUG: Fix M365 Builder indexOf error (#2724) (@tlimoncelli)
- 8f18f6e: CHORE: Bump golang.org/x/crypto from 0.16.0 to 0.17.0 (#2740) (@tlimoncelli)
- 3f27388: CHORE: Upgrade aws/aws-sdk-go-v2 urfave/cli/v2 gopkg.in/ns1/ns1-go.v2 golang.org/x/exp (@tlimoncelli)
- fe4e07b: CHORE: Upgrade deps (#2754) (@tlimoncelli)
- afd0d76: NEW REGISTRAR: Dynadot (DYNADOT) (#2753) (@e-im)
v4.7.3
Welcome to release v4.7.3! This is a bug-fix release.
BUGS fixed:
- TRANSIP added quotes TXT records needlessly. Thanks @blackshadev!
- AZURE_PRIVATE_DNS was disabled by default
- CLOUDFLARE didn't populate a zone if it was just created. Thanks @jpbede!
- CSCGLOBAL was noisy about minor ratelimit delays
- INWX supports Null MX but the provider didn't. Thanks @gvangool!
- DOCS had many issues fixed including many broken links and missing docs. Thanks to @cafferata for auditing the docs for errors to fix!
- CICD: unused legacy files were removed and "go generate" is now run in the pipeline. Thanks @cafferata!
- Cleanups: golint and staticcheck now run clean! A lot of dead code was removed and TXT record auditing is now clearer.
Thanks to everyone for their PRs, feedback, and testing! This is a community effort and it wouldn't be possible without all of you!
Changelog
Major features:
- 0b8bb1d: FEATURE: Add experimental --reportmax flag (#2719) (@tlimoncelli)
Provider-specific changes:
- 8541fb8: AZURE_PRIVATE_DNS: Enable building this provider by default (#2688) (@matthewmgamble)
- 3b6643b: AZURE_PRIVATE_DNS: Rename module to conform to Go styleguide (#2697) (@tlimoncelli)
- dbb724b: CLOUDFLARE: Fixed bug: Zone not populated with records if domain was created in the same run (#2690) (@jpbede)
- 4e8fb89: CSCGLOBAL: Be less noisy about rate limit delays (#2686) (@tlimoncelli)
- cd371c1: INWX: support MxNull records (#2700) (@gvangool)
- 742eaaf: MSDNS: Remove pssession from docs (it doesn't work) (#2689) (@tlimoncelli)
- a7e7643: TRANSIP: Fix TXT quoting (#2708) (@blackshadev)
Documentation:
- 724ce29: DOCS: Fix CAA_BUILDER parameter types (issuewild type should be string[]) (#2709) (@marte26)
- 7e5d088: DOCS: Providers: Fixed the broken absolute link (#2696) (@cafferata)
- 9fd65da: DOCS: Removed the (by GitBook) broken GitHub links (#2694) (@cafferata)
- 0c70048: DOCS: Removed the Zoo cross-platform environment variables package (#2693) (@cafferata)
- 3ed24a9: DOCS: Rename build filenames (#2681) (@cafferata)
- 57216f0: DOCS: Update docs related to diff2 and clean up useless mentions of diff2 (#2683) (@tlimoncelli)
- a5a1fac: DOCS: add dhcid RR docs (#2715) (@fritterhoff)
CI/CD:
- 6e90946: Build(deps): Bump actions/setup-go from 4 to 5 (#2716) (@dependabot[bot])
- 9e1cb0f: CICD: Add stringer (#2714) (@tlimoncelli)
- c29efea: CICD: Clean-up of Travis Go package dependency (#2711) (@cafferata)
- 3ad9560: CICD: Fixed
go install
command (#2712) (@cafferata) - 8f1b33a: CICD: GoReleaser generates TypeScript file (#2704) (@cafferata)
- 99e3f9f: CICD: Removed the old Azure Pipelines configurations (#2705) (@cafferata)
- 11f072b: CICD: Removed the old Chocolatey configuration (#2706) (@cafferata)
- e917568: CICD: Removed the old Travis configurations (#2707) (@cafferata)
- 0da3f75: CICD: release needs stringer (#2721) (@tlimoncelli)
Dependencies:
- 8b1739e: CHORE: Update deps and gogenerate (#2720) (@tlimoncelli)
Other changes and improvements:
- a6091f2: BUG: Register an error if EnzureZoneExists fails (#2703) (@costasd)
- 3771939: CHORE: Clarify TXT string limits (#2691) (@tlimoncelli)
- 790513a: CHORE: Fix golint and staticcheck errors/warnings (#2717) (@tlimoncelli)
- 2e4aa7a: CHORE: Fix golint warnings about stuttering (#2718) (@tlimoncelli)
- 76d93ac: CHORE: Remove dead code: txtutil.SplitSingleLongTxt() and txtutil.Segment() (#2685) (@tlimoncelli)
v4.6.2
Greetings!
This release has 1 new provider (Azure Private DNS) plus a lot of bugfixes and updates.
Thanks to @matthewmgamble for contributing AZURE_PRIVATE_DNS as the newest provider. Azure Private DNS is a different protocol than Azure DNS. Thanks, Microsoft!
- NEW PROVIDER: AZURE_PRIVATE_DNS
- OVH now supports configurable API endpoints, useful for non-EU users
- ROUTE53 now has the ability to enable target health evaluation with its R53_ALIAS records.
- The
shell-completion
subcommand is no longer hidden. - Missing docs for CLOUDNS and OPENSRS now have placeholders.
- In CI/CD news, running multiple workflows at the same time no longer clobbers each other.
NOTE: The 4.6.1 release notes wrongly stated that the DNSIMPLE provider was renamed DNSMADEEASY. That's not true. I misunderstood the description of a PR. The change simply corrected a typo in documentation. My apologies for any confusion!
Thanks to everyone for contributing! This is a community-driven project. We couldn't do it without your support!
Tom
Changelog
Major features:
- 37e2103: NEW PROVIDER: Azure Private DNS Zones (#2626) (@matthewmgamble)
Provider-specific changes:
- fd413a9: AZURE_PRIVATE_DNS: GoReleaser provider-specific changelog regexp (#2661) (@cafferata)
- bf9e48d: CLOUDFLARE: Update docs WRT domain creation (#2648) (@shodges-vermeer)
- d3112f5: HEXONET: Update GO-SDK dependency version from 3.5.5 to 3.5.6 (#2667) (@AsifNawaz-cnic)
- 1470144: NS1: Downgrade ns1-go to 2.7.11 (#2642) (@costasd)
- 69fb3b2: OVH: Allow ovh provider to connect to other endpoints than EU (#2625) (#2651) (@masterzen)
- e783d70: ROUTE53: Allow R53_ALIAS records to enable target health evaluation (#2649) (@jonathanbouvier)
- 74a9e5e: ROUTE53: add R53_EVALUATE_TARGET_HEALTH to documentation summary (#2659) (@jonathanbouvier)
- 88f007c: ROUTE53: fix parameter type for R53_EVALUATE_TARGET_HEALTH (#2658) (@jonathanbouvier)
Other changes and improvements:
- 919b19e: Build(deps): Bump github.com/go-jose/go-jose/v3 from 3.0.0 to 3.0.1 (#2646) (@dependabot[bot])
- a653499: CHORE: Update deps (#2668) (@tlimoncelli)
- 51104ce: CICD: Use GHA concurrency groups to prevent tests from clobbering each other (#2654) (@tlimoncelli)
- c7065e6: DOCS: Expand integration tests explanation (#2645) (@tlimoncelli)
- a1e70c9: DOCS: Fix
R53_
broken links (#2669) (@cafferata) - bc22690: DOCS: Fixed providers with "contributor support" table. (#2660) (@cafferata)
- 31cd4e1: DOCS: Fixed the broken provider
ClouDNS
link in the providers table (#2663) (@cafferata) - 9397eed: DOCS: Fixed the maintainer of provider
OPENSRS
(#2662) (@cafferata) - b5010e7: DOCS: Warn against common integration test mistake (#2653) (@tlimoncelli)
- 4fc88aa: RType AAAA: Add integration test for AAAA. (#2647) (@tlimoncelli)
- 2ca9c84: Unhide shell-completion flag (#2640) (@tlimoncelli)
- 5b93f94: Update docs and move Azure Private DNS to the "community support" list (#2657) (@tlimoncelli)
- df93135: Update generated files for v4.6.2 (@tlimoncelli)
v4.7.2
Welcome to v4.7.2!
This is the first production-ready release in the v4.7.x series (v4.7.0 and v4.7.1-beta should not be used in production; sorry about any confusion that may have caused... this was the first time doing a release that way).
This release implements a single change: How TXT records are stored internally. There should be no user-visible changes.
- TXT-handling code is now simplified with fewer edge-cases
- A new opinion is added ("Opinion # 8 TXT Records are one long string")
- The
get-zone
subcommand now generates TAB-separated files that are more correct for TXT records (the quotes were a bug).
TXT record handling was complex because we abstracted them at the wrong layer. Code that works with TXT records is now more simple, easier to modify, and a lot of minor bugs have been squashed. For example, diff'ing old and new TXT records is consistent across all providers.
Thanks to everyone for help testing this release!
Changelog
Other changes and improvements:
- cbccbbe: REFACTOR: Opinion: TXT records are one long string (#2631) (@tlimoncelli)