Releases: StackExchange/dnscontrol
v3.31.3
Another bug-fix release! At this point the major issues are fixed and I'm more confident about using this release in production.
It is now safe to use --diff2
if you use IGNORE_NAME()
/IGNORE_TARGET()
functions. However ignoring R53_ALIAS
and AZURE_ALIAS
records could use more testing. Proceed with caution and please please please file bug reports!
Please continue to test with --diff2
as it is my hope that it will become the default in releases after May 8, 2023:
How to test diff2:
$ dnscontrol preview
$ dnscontrol --diff2 preview
(check the output. It should be equivalent to the previous command.)
$ dnscontrol --diff2 push
Note-worth bugs fixed in this release:
- NS1's NS1_URLFWD records work again (#2298) (@flz)
- ROUTE53 no longer reports "No such DNS type error" on non-RFC records such as aliases (#2294) (@tlimoncelli)
- ROUTE53 was ignoring R53_ZONE() in certain situations (#2306) (@tlimoncelli)
While this is a bug-fix release, some new features did sneak in:
- BIND: A new flag lets you force a particular SOA serial number. This enable hermetic zone builds (#2275) (@tlimoncelli)
- POWERDNS: You can now set the zone "kind" (#2274) (@jpbede)
Thanks to everyone for your bug reports, PRs, and suggestions!
Tom
Changelog
Provider-specific changes:
- fba40d5: BIND: Enable hermetic zone builds (#2275) (@tlimoncelli)
- d8e167c: HETZNER: fix nameserver trailing dots (#2301) (@willpower232)
- b24e7ef: HOSTINGDE: Fix zone creation (fixes #2276) (#2297) (@Yannik)
- a0d491e: NS1: Fix NS1_URLFWD records push (#2298) (@flz)
- 18b8ce7: NS1: Improve nameserver handling (#2295) (@tlimoncelli)
- 1d252dd: POWERDNS: Add option to set the PowerDNS zone kind (#2274) (@jpbede)
- 8f4a08a: ROUTE53: Fix "No such DNS type error" on legacy or ignored records (#2294) (@tlimoncelli)
- 489be2e: ROUTE53: fix R53_ZONE() handling for domains (#2306) (@tlimoncelli)
Other changes and improvements:
- be8495c: Integration tests should test diff2's IGNORE* (#2292) (@tlimoncelli)
- 780e17a: Linting (#2308) (@tlimoncelli)
- f0ea715: TESTING: add integration test for no trailing dot in nameservers (#2311) (@das7pad)
- 49e9279: Update deps (#2309) (@tlimoncelli)
v3.31.2
This is a bugfix release. It fixes 2 bugs; (1) NS1's URLFWD was broken, (2) CLOUDNS had a similar bug with the WR record.
The CLOUDNS fix hasn't been verified but I'm confident the code wasn't working, so this change can't make it any worse (crosses fingers). If you use CLOUDNS I'd appreciate feedback.
Changelog
Provider-specific changes:
- 1690bae: CLOUDNS: Fix WR type (#2288) (@tlimoncelli)
- bede608: NS1: Fix NS1_URLFWD custom record type handling (#2289) (@flz)
Other changes and improvements:
- n/a
v3.31.1
This is purely a bug-fix release. Three bugs were found in the v3.31.0 release; only 2 have been fixed.
- BIND users should skip v3.31.0 and go directly to v.31.1.
- If you use the
IGNORE()
/IGNORE_NAME()
/IGNORE_TARGET()
functions please do not use--diff2
until further notice.
Bugs:
- BIND always writes to the same zone file. Issue #2283 fixed in #2284
- The
--diff2
flag doesn't work if it is after thepreview
orpush
subcommand. Please use the flag as a global only. #2286- GOOD: dnscontrol --diff2 preview
- BAD: dnscontrol preview --preview
- ROUTE53/AWS: IGNORE_NAME/IGNORE_TARGET doesn't seem to work with R53_ALIAS records.
- Still unfixed. See #2285
Changelog
Other changes and improvements:
- 5e9472b: BUG: diff2 flag can not work in both places (#2286) (@tlimoncelli)
- e16babb: fix: generate file name on bind zone generation (#2284) (@fritterhoff)
v3.31.0
Big news! The "diff2" algorithm is now ready for production testing. Please test your configuration by adding the --diff2
flag when running preview
or push
. It will become the default in releases on or after May 8, 2023. The old code will disappear on or after June 1, 2023. See #2262 for the details.
- April 16, 2023: v3.31.0 ships with --diff2 default off, but ready for production testing.
- May 8, 2023 (or soon after) Release ships with
--diff2=true
default, use--diff2=false
for old behavior. - June 1, 2023 (or soon after) Release ships with diff2 only; the
--diff2
flag becomes a no-op.
What's also interesting about this release?
- The LOC record type is now supported
- Previously some providers may have been downloading all DNS records twice. That has been corrected.
- Tons of cleanups and small fixes.
Thanks as always to the community for their contributions! This is a community-driven project and we couldn't do it without you!
Changelog
Provider-specific changes:
- 73623f6: CLOUDNS: fix two integration test failed (#2246) (@imlonghao)
- bded57b: DNSimple: Remove CAA Whitespace in Target restriction (#2250) (@onlyhavecans)
- ca5ef2d: HETZNER: Clean up lint warning (#2280) (@tlimoncelli)
- e230ade: HETZNER: provider maintenance (#2258) (@das7pad)
- 57f3576: HEXONET: Remove duplicate code (#2279) (@tlimoncelli)
- f17b34a: HEXONET: minor refactoring (#2255) (@KaiSchwarz-cnic)
- 61559f6: MSDNS: Document pssession options (#2273) (@shodges-vermeer)
- 2a28d81: MSDNS: be more efficient with ttl changes (#2251) (@tlimoncelli)
- f25d5fa: NS1: Handle assigned nameservers better (#2260) (@costasd)
Other changes and improvements:
- 60470a3: BUG: Some DNS zones are downloaded twice (#2120) (@tlimoncelli)
- 1db2548: Build(deps): Bump alpine from 3.17.2 to 3.17.3 (#2256) (@dependabot[bot])
- 45a5c2d: Build(deps): Bump github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/dns/armdns from 1.0.0 to 1.1.0 (#2257) (@dependabot[bot])
- 3106327: CI: BYO secrets for NS1 (#2271) (@costasd)
- 63981d3: Can use LOC (#2267) (@svernick)
- 3e0e222: DOCS: Provider requests (#2266) (@cafferata)
- 1697669: DOCS: add reference tag for TypeScript server to recognise the type definitions (#2264) (@BirkhoffLee)
- bcf590f: Enable --diff2 flag anywhere on the command line (#2281) (@tlimoncelli)
- 6ac1961: TESTING: Disable colorized output during tests (#2248) (@tlimoncelli)
- 8d79ee0: TESTING: Don't skip other tests when test failed (#2252) (@imlonghao)
- 7699a0b: Update "provider request" docs (#2269) (@tlimoncelli)
- f676c49: diff2: Add a "hints" when change is TTL-only (#2249) (@tlimoncelli)
- e0a6426: fix typos (#2270) (@tlimoncelli)
v3.30.0
Changelog
Provider-specific changes:
- a3934e7: GCLOUD: Support ALIAS record type (#2225) (@tlimoncelli)
- f51f943: Loopia: now passes test: 18:testByRecordSet (#2231) (@systemcrash)
- cafd0f3: TRANSIP: Enable CI integration tests (#2226) (@cafferata)
- 9ffec69: TRANSIP: Improve diff2 implementation (#2228) (@blackshadev)
Other changes and improvements:
- 5d8cd9f: BUILD: Fix Linux binary releases (#2237) (@tlimoncelli)
- 036c8b2: CHORE: Alphabetize various code lists (#2242) (@systemcrash)
- f700184: CHORE: Update deps (#2240) (@tlimoncelli)
- fae8eb9: DOC: Add a styleguide for developers. (#2230) (@tlimoncelli)
- c34a1a6: DOCS: GitBook styling for style guide (#2235) (@cafferata)
- d1748b5: REFACTOR: Rearrange tests and add comments (#2232) (@tlimoncelli)
- 257f9f2: TESTING: Add comments for first-timers (#2234) (@tlimoncelli)
- a8c9f9a: TESTS: comment fix (#2241) (@systemcrash)
v3.29.1
Hotfix for a few bugs that were recently noticed particularly NS1's nameserver handling and typescript (dnscontrol write-types
) not handling some numeric types properly.
Changelog
Provider-specific changes:
- 5e53c48: HEDNS: Fix support for LOC records (#2216) (@rblenkinsopp)
- edf1b9f: LOOPIA: Ban Null MX (#2215) (@systemcrash)
- b01453e: NS1: strip dots from nameservers (#2217) (@norman-zon)
- ac5006b: DOCS: Fix number type in typescript (#2219) (@systemcrash)
Other changes and improvements:
- b30e976: HEDNS: Re-enable CI integration tests (#1916) (@rblenkinsopp)
- 7de874f: DOCS: Document Loopia doesn't support Null MX (#2220) (@systemcrash)
- 3bf7847: TESTING: Fix HE.DNS BYO-Secrets (#2221) (@tlimoncelli)
- 65bfdae: TESTING: Skip slow+useless tests for HEDNS (#2222) (@tlimoncelli)
v3.29.0
This is a bug-fix release.
- Release binaries for Debian and CentOS work again! (oops! sorry!)
- Many cleanups and documentation bugs were fixed.
- We've relaxed some overly aggressive error checking introduced recently
- AutoDNSSEC validation is now a warning not an error
- TTL consistency checks were wrong (they're now ResourceSet-based)
diff2 improvements:
- Reports of NO_PURGE/IGNORE records only shows the first 5 items. Add the --full flag for the complete list.
- PowerDNS now uses the native diff2 calls, not the backwards compatibility mode.
The diff2 engine is ready for production testing. Please run dnscontrol --diff2 preview
(and push
) to verify that it operates as expected. Please report any bugs or even minor annoyances.
My hope is that diff2 will become the default in v3.31 or v3.32. When diff2 becomes the default, a flag will be added to activate the old code. I'm not sure when the old code will be removed but I'm targeting May or June.
Changelog
Major features:
- edf4c92: FEATURE: Truncate report of ignored/purged items unless --full (#2203) (@tlimoncelli)
- c72495d: BUG: AutoDNSSEC validation is too aggressive (#2196) (@tlimoncelli)
- 2162e19: CHANGE: Old SOA mbox format no longer a warning (#2191) (@tlimoncelli)
Provider-specific changes:
- 8de767b: BIND: Fix SOA tests (diff2) (#2211) (@tlimoncelli)
- 302a74b: PowerDNS: Implement diff2 differ and some cleanup (#2194) (@jpbede)
Other changes and improvements:
- 61fc663: BUG: AutoDNSSEC validation is too aggressive (@tlimoncelli)
- ad2f028: BUG: TTL consistency check should be on ResourceSet, not Label (#2200) (@tlimoncelli)
- 0178917: Build(deps): Bump actions/setup-go from 3 to 4 (#2204) (@dependabot[bot])
- 6f778cb: CHORE: Disable CGO (#2202) (@tlimoncelli)
- 2bcfe09: CHORE: Update dependencies (#2208) (@tlimoncelli)
- 80bf577: CHORE: go generate (@TomOnTime)
- 1bf6a4c: DOCS: Fixed LOC_BUILDER_STR filename (#2199) (@cafferata)
- 2796c36: DOCS: Fixes to the add rtype procedures (#2187) (@systemcrash)
- feecdd7: DOCS: LOC Link errors (#2188) (@systemcrash)
- ecb0ecb: DOCS: Make version a variable in rel eng doc (#2206) (@tlimoncelli)
- e0dadba: DOCS: Reintroduced the missing space (#2198) (@cafferata)
- 50a9b9d: Don't add extra dot after dnsimple SRV record contents (#2195) (@andrewbaxter)
- 996f187: Format provider name as a link also to its corresponding markdown file (#2182) (@systemcrash)
- ac8815e: MAINT: Use WaitGroup instead of labeled loop (#2201) (@jpbede)
- 1d768b3: REFACTOR: export models func downcase() (#2207) (@tlimoncelli)
- 9f64990: Revert "BUG: AutoDNSSEC validation is too aggressive" (@tlimoncelli)
- 1b5f9ef: Revert "CHORE: Disable CGO (#2202)" (@TomOnTime)
- c3df299: TEST: Add -diff2 integration testing (#2209) (@tlimoncelli)
- 178ab46: TESTING: Add ByLabel and ByRecordSet tests (#2210) (@tlimoncelli)
- 93e2b81: TESTING: Add TYPE field to providers.json (#2193) (@tlimoncelli)
- a08a4b3: Update goreleaser providers regexp (#2205) (@systemcrash)
v3.28.0
A great release! Two new providers, support for the DNS "LOC" record, Debian/Centos work again, and a ton of documentation fixes. Thanks to the community for all the contributions!
Release highlights:
- New provider: LuaDNS
- New provider: Loopia
- DNS LOC record support
- HETZNER now supports TLSA
- Fixed issue that broke Debian and Centos 7
- A zillion documentation improvements!
Changelog
Major features:
- bed4b15: Fix dynamic linking issue for Centos/Debian (@tlimoncelli)
- 3b6591f: NEW FEATURE: Support DNS LOC record type (#2174) (@systemcrash)
- 8e643c2: New provider: Loopia DNS service provider (#2140) (@systemcrash)
- 0bf851e: New provider: LuaDNS (#2127) (@riku22)
Provider-specific changes:
- f63ca8c: HETZNER: Don't use string.Title() (#2179) (@TomOnTime)
Other changes and improvements:
- 9beb00f: Add tlsa to hetzner provider (#2168) (@Narquadah)
- 0491aad: BUG: Fix all err scopes (#2160) (@tlimoncelli)
- f19225f: BUILD: CGO linking problems break Debian and Centos 7 (#2141) (@tlimoncelli)
- e1c6a37: Build(deps): Bump github.com/fatih/color from 1.14.1 to 1.15.0 (#2144) (@dependabot[bot])
- 0d8ab97: CHORE: Sort OWNERS (#2166) (@systemcrash)
- 4828423: CHORE: Sort documentation lists (#2170) (@TomOnTime)
- 30646a1: CHORE: go generate (#2180) (@TomOnTime)
- 8b2a38a: CHORE: go generate (#2181) (@tlimoncelli)
- 2960f0b: CHORE: go generate (#2186) (@tlimoncelli)
- 81054e7: CHORE: linting (#2176) (@TomOnTime)
- f748a7e: CHORE: some cleanup (#2167) (@systemcrash)
- cbf4f00: CHORE: update deps (#2162) (@tlimoncelli)
- af99942: DOCS: Add NAPTR doc (#2150) (@systemcrash)
- 05be3b8: DOCS: Added GitBook code blocks syntax for
dnsconfig.js
. (#2149) (@cafferata) - 28055dc: DOCS: Clarify/fix official and community support (#2172) (@TomOnTime)
- 87e22b9: DOCS: Fix typo in record.go (#2161) (@systemcrash)
- 989e7e3: DOCS: Fixed incorrect documentation directory path (#2131) (@cafferata)
- c80f8a6: DOCS: Fixed the incorrect inline anchors links (#2132) (@cafferata)
- 6e6805d: DOCS: Follow-up fix for LOC documentation (#2183) (@systemcrash)
- 26cf0fd: DOCS: Migrate from golint to staticcheck (#2142) (@tlimoncelli)
- 731181f: DOCS: Mostly styling and links (#2178) (@systemcrash)
- 11a8bf9: DOCS: Removed the SPF flattener (#2146) (@cafferata)
- fb44262: DOCS: Removed the prompt character (#2148) (@cafferata)
- 2e1333e: DOCS: Typo in the word GitLab (#2151) (@cafferata)
- 0ecae2c: DOCS: Update NAMESERVER.md (#2155) (@systemcrash)
- 0e55421: DOCS: Update NS.md (#2156) (@systemcrash)
- 28fcd26: DOCS: Update SPF_BUILDER.md (#2169) (@systemcrash)
- 613fe7a: DOCS: Update adding-new-rtypes.md (#2164) (@systemcrash)
- 04b347f: DOCS: Update desec.md (#2154) (@systemcrash)
- ed00942: DOCS: Update hedns.md (#2153) (@systemcrash)
- bfad9d6: DOCS: Update testing-txt-records.md (#2138) (@systemcrash)
- b2a8d4c: DOCS: [GitBook] Added code blocks syntax (#2136) (@cafferata)
- 4ad5641: DOCS: [GitBook] Added code blocks syntax for dnsconfig.js (#2137) (@cafferata)
- fb6a79a: Fix obscure 'go generate' crash. (#2173) (@systemcrash)
- c2c27c1: Follow up commit (#2177) (@systemcrash)
- 56161e2: KNOT is supported (#2184) (@tlimoncelli)
- 367c83a: LOC: Refine which providers support it (#2185) (@tlimoncelli)
- 31765b0: LOOPIA: Linting corrections (#2175) (@TomOnTime)
- 2be3edc: Report provider name even in skinny mode (--full=false) (#2163) (@tlimoncelli)
- e9adccd: Update DefaultTTL.md (#2133) (@systemcrash)
- 2d241b7: Update domain.go (#2135) (@systemcrash)
v3.27.2
Another bugfix release!
The bugs fixed include:
- diff2 providers that use the REPORT feature always crashes on push (#2130)
- DIGITALOCEAN's TXT record handling broke (#2128)
- Internationalized (Unicode) zone names don't with with ListZones (#2096) (#2110)
- Plus many doc improvements
- (Ok, one feature slipped in: simple CNAME and R53_ALIAS loops are detected)
Changelog
Major features:
- dde7e5d: FEATURE: Detect simple CNAME loops (#2112) (@tlimoncelli)
Provider-specific changes:
- cfb24db: AUTODNS: Convert to diff2 (#2102) (@tlimoncelli)
- eb4af05: DIGITALOCEAN: Improve TXT record handling (#2128) (@tlimoncelli)
- 4b37906: DOCS: TransIP: Fixed creds.json example (#2117) (@cafferata)
- b54c5ea: ROUTE53: Report R53_ALIAS loops as an error (#2111) (@tlimoncelli)
Other changes and improvements:
- 5d554f1: BUG: Compare zones list to ace zone name (#2096) (#2110) (@Yannik)
- ad4b8da: BUGFIX: REPORT change type always crashes on push (#2130) (@tlimoncelli)
- 1c938bb: Build(deps): Bump alpine from 3.17.1 to 3.17.2 (#2116) (@dependabot[bot])
- 91242d5: Build(deps): Bump github.com/softlayer/softlayer-go from 1.1.0 to 1.1.2 (#2113) (@dependabot[bot])
- ce714c1: Build(deps): Bump github.com/transip/gotransip/v6 from 6.19.0 to 6.19.1 (#2114) (@dependabot[bot])
- 36d6e88: Build(deps): Bump github.com/urfave/cli/v2 from 2.24.4 to 2.25.0 (#2122) (@dependabot[bot])
- e4450c7: Build(deps): Bump golang.org/x/oauth2 from 0.5.0 to 0.6.0 (#2124) (@dependabot[bot])
- 0958807: Build(deps): Bump golang.org/x/text from 0.7.0 to 0.8.0 (#2121) (@dependabot[bot])
- 9062b33: Build(deps): Bump google.golang.org/api from 0.110.0 to 0.111.0 (#2115) (@dependabot[bot])
- 93c77eb: DOCS: Added Gitbook filenames to JSON code snippets. (#2119) (@cafferata)
- 3d3f15d: DOCS: Correct flag name (#2118) (@cafferata)
- 48a5048: Doc: Fixed a bit of havoc which appears in go docs (#2105) (@systemcrash)
- 894d1a5: Update examples.md (#2109) (@systemcrash)
- 0d2a7bf: Update getting-started.md (#2108) (@systemcrash)
v3.27.1
Soon after the release of v3.27.0 some minor bugs were noticed. This fixes those bugs:
- GANDI_V5's diff2 emits an empty log message when creating record
- Colorization doesn't work on diff2 (wasn't implemented)
- CLOUDFLAREAPI emits a record-ID for deletes, but not changes
- GCLOUD emits an extra newline in logs (diff1 and diff2)
- Integration test
TestDualProviders
displays logs with wrong newline
Meanwhile more cleanups were done:
- Removed a lot of old DEBUG statements that were commented out
- analyze.go contains multiple functions doing the same thing (remove the duplicates)
- clarify comments
- Use the more concise pattern of diff.NewCompat() (CSCGLOBAL, DIGITALOCEAN, NAMEDOTCOM)
- Many minor code fixes and cleanups
At this point the diff2
engine is ready for production testing. Please run dnscontrol --diff2 preview
(and push
) to verify that it operates as expected. Please report any bugs or even minor annoyances.
My hope is that diff2 will become the default in v3.29 or v3.30. When diff2
becomes the default, a --diff1
flag will be added to activate the old code. I'm not sure when the old code will be removed but I'm targeting May or June.
Changelog
Major features:
- e129e40: FEATURE: Colorize diff2 output (#2103) (@tlimoncelli)
Other changes and improvements:
- 2586e2b: CORE: Clean up diff2 code in prep for production (#2104) (@tlimoncelli)
- 26fb0f1: DOC: Fixed a bit of havoc which appears in go docs (#2101) (@systemcrash)