Releases: StackExchange/dnscontrol
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)
v4.6.3
Welcome to release v4.6.3!
Due to Git weirdness (probably my fault), the ChangeLog below include everything from both v4.6.2 and v4.6.3. Since v4.6.2's tag had a problem (See #2674) people may choose to ignore v4.6.2.
What's new in v4.6.3 (that wasn't already announced in v4.6.2):
- CICD: GoReleaser now generates a ChangeLog with more specific headings (#2661) (@cafferata)
- TRANSIP: Fixed integration tests: Edge cases and TXT records fixed (#2673) (@blackshadev)
Thanks for all the contributions!
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)
- ef081da: TRANSIP: Fixed integration tests: Edge cases and TXT records fixed (#2673) (@blackshadev)
Documentation:
- c1f5a8c: DOCS: Added the missing provider
Exoscale
page (#2664) (@cafferata) - 609de61: DOCS: Added the missing provider
OpenSRS
page (#2665) (@cafferata) - 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)
CI/CD:
- 811fa54: Build(deps): Bump alpine from 3.18.4 to 3.18.5 (#2671) (@dependabot[bot])
- 919b19e: Build(deps): Bump github.com/go-jose/go-jose/v3 from 3.0.0 to 3.0.1 (#2646) (@dependabot[bot])
- e364d04: CICD: Fix YAML (#2677) (@tlimoncelli)
- 51104ce: CICD: Use GHA concurrency groups to prevent tests from clobbering each other (#2654) (@tlimoncelli)
Dependencies:
- a653499: CHORE: Update deps (#2668) (@tlimoncelli)
- 88d26c3: CHORE: Update deps (#2678) (@tlimoncelli)
Other changes and improvements:
- a366e4b: CI/CD: Release changelog sections (#2674) (@cafferata)
- 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)
- c29a648: Update generated files for v4.6.2 (@tlimoncelli)
v4.7.1-beta
THIS IS A PRE-RELEASE. DO NOT USE IN PRODUCTION. PLEASE DO TEST AND GIVE FEEDBACK ON PR #2631
The only change in this release is that TXT records are stored a new way. Instead of storing the individual segments, they are stored as one big string. The providers are now responsible for any joining, splitting, escaping, or quoting. There should be no user-visible effects.
NOTE TO MAINTAINERS OF PROVIDERS: Please test your provider. A lot changed in how TXT records are handled. Please re-run the integration tests like:
export PROVIDER_FOO=foo # Set your ENV variables. See providers.json for the list.
cd integrationTest/
go test -v -verbose -provider NAME_OF_PROVIDER
# This next line just runs the TXT tests.
go test -v -verbose -provider NAME_OF_PROVIDER -start 16 -end 17
Fix any broken tests. Post a comment if you need help or to let me know the test results.
The branch is tlim_newtxt_minimal.
PR is #2631
v4.7.0
This is a pre-release (our first time doing one!)
THIS IS A PRE-RELEASE. DO NOT USE IN PRODUCTION. PLEASE DO TEST AND GIVE FEEDBACK ON PR #2631
The only change in this release is that TXT records are stored a new way. Instead of storing the individual segments, they are stored as one big string. The providers are now responsible for any joining, splitting, escaping, or quoting. There should be no user-visible effects.
NOTE TO MAINTAINERS OF PROVIDERS: Please test your provider. A lot changed in how TXT records are handled. Please re-run the integration tests like:
cd integrationTest/
export PROVIDER_FOO=foo # Set your ENV variables. See providers.json for the list.
go test -v -verbose -provider NAME_OF_PROVIDER
# This next line just runs the TXT tests.
go test -v -verbose -provider NAME_OF_PROVIDER -start 16 -end 17
Fix any broken tests. Post a comment if you need help or to let me know the test results.
The branch is tlim_newtxt_minimal.
PR is #2631
There are a number of "helper" functions with the suffix Func
. I'll document those more soon.
Changelog
Provider-specific changes:
- 378e114: AZURE_DNS: Fix TXT escaping (@tlimoncelli)
- 7c27318: BIND: fix TXT records with backslashes (@tlimoncelli)
- 130fbc4: GCLOUD: remove extra blank line (@tlimoncelli)
- b2dbc35: GCLOUD: support more TXT exceptions (@tlimoncelli)
- 71ef7dd: HEXONET: TXT with backslashes now work. (@tlimoncelli)
- 18b1921: ROUTE53: Improve TXT handling (@tlimoncelli)
- d25ab05: TRANSIP: Update to newer TXT code/decode funcs (@tlimoncelli)
Other changes and improvements:
- f255c18: Add backwards-compatible parser. (@tlimoncelli)
- 4f935be: Add debug printfs (@tlimoncelli)
- 3c632ea: BIND and prettyzone fixed (@tlimoncelli)
- a4b8670: Clean up GANDI_V5 txt handling (@tlimoncelli)
- 7cd01ff: Clean up rc.SetTarget error handling. (@tlimoncelli)
- 32de0f9: Comment out impossible test (@tlimoncelli)
- 99f808b: Don't test 0-length TXT records. (@tlimoncelli)
- 0a727cc: Eliminated GetTargetCombined in GANDI_V5 (@tlimoncelli)
- 891719b: Fix DO (@tlimoncelli)
- 4c2ca71: Fix GCLOUD txt records (@tlimoncelli)
- bc21df1: Fix TXT tests (@tlimoncelli)
- a2a6857: Fix backslash in TXT processing where possible (@tlimoncelli)
- 6c8ad84: Fix parse tests (@tlimoncelli)
- d16bbf5: Fixing tests (@tlimoncelli)
- 675a446: GCLOUD works (@tlimoncelli)
- b522d11: GetTargetCombined should zoneFileQuote txt data so-as not to break old code (@tlimoncelli)
- 2d4709f: Good (@tlimoncelli)
- d689795: HEDNS fix TXT records with special chars (@tlimoncelli)
- 3046eea: HETZNER Handle all TXT records better (@tlimoncelli)
- be04aa4: Harden against odd TXT chars (@tlimoncelli)
- b6acb59: More rigor in TXT testing (@tlimoncelli)
- 7812abd: NAMEDOTCOM works for all but backslash (@tlimoncelli)
- e97a48b: NEW: rfc1035.go (@tlimoncelli)
- 654fcfd: PopulateFromString is back to the original txt parser (@tlimoncelli)
- f181fc1: REFACTOR: js/djs formats should use double quotes (@tlimoncelli)
- c7ed607: REFACTOR: providers should not directly access .TxtStrings (@tlimoncelli)
- 4940628: ROUTE53 cleanups (@tlimoncelli)
- 367bb6a: ROUTE53 cleanups (@tlimoncelli)
- 0958248: ROUTE53 works on all tests (@tlimoncelli)
- 6565a96: Remove txtutil.SplitSingleLongTxt (@tlimoncelli)
- 0511f32: Simplify getZones.go (@tlimoncelli)
- 1d590a4: Update generated files for v4.7.0 (@tlimoncelli)
- 54d51dd: Update models/dnsrr.go (@tlimoncelli)
- 8e4de5c: Update pkg/diff2/compareconfig.go (@tlimoncelli)
- 0097303: Update pkg/diff2/compareconfig.go (@tlimoncelli)
- b5148b4: Update pkg/normalize/flatten.go (@tlimoncelli)
- 7064411: Update pkg/prettyzone/prettyzone.go (@tlimoncelli)
- d1a6347: cleanups (@tlimoncelli)
- 5d6f6ec: comments (@tlimoncelli)
- c7791dc: dead code elimination (@tlimoncelli)
- 1c2c207: draft! (@tlimoncelli)
- 10f06c2: fix helpers.js for txt (@tlimoncelli)
- a3c0740: fix test (@tlimoncelli)
- d27d8e4: fix tests (@tlimoncelli)
- e1abebd: fix tests (@tlimoncelli)
- fb164b4: fixed (@tlimoncelli)
- d41503f: fixup! (@tlimoncelli)
- fa097b4: fixup! (@tlimoncelli)
- f204247: fixup! (@tlimoncelli)
- f209a0a: fixup! (@tlimoncelli)
- e89922d: fixup! (@tlimoncelli)
- 2cfe33b: fixup! (@tlimoncelli)
- 746ff9a: fixup! (@tlimoncelli)
- 863db83: gandi works (@tlimoncelli)
- e112e37: gandi works (@tlimoncelli)
- 546cb60: improve encoding/decoding (@tlimoncelli)
- f0d0eb6: m (@tlimoncelli)
- 6d0cff5: merge (@tlimoncelli)
- a726ad9: more cleanups (@tlimoncelli)
- 8f4595f: more deadcode (@tlimoncelli)
- 6448fc5: move txt encode/decode to txtutil (@tlimoncelli)
- 0e8d24c: no backslash (@tlimoncelli)
- 02888d0: no txt-0 (@tlimoncelli)
- b034c66: prettyzone: add tests (@tlimoncelli)
- e4dfe52: reduce the integration tests to just the common txt values (@tlimoncelli)
- 1f15e24: reject empty txt (@tlimoncelli)
- c5b2ee1: revert to plain providers (@tlimoncelli)
- 2ec046f: sigh (@tlimoncelli)
- 544cbc4: test (@tlimoncelli)
- 3b17df6: test (@tlimoncelli)
- 7ce90fc: tmp (@tlimoncelli)
- 0c43c03: txtEncode did not handle empty or 2nd string quotes (@tlimoncelli)
- 5f7c994: update deps (@tlimoncelli)
- e462bfc: wip! (@tlimoncelli)
- f3dd7bb: wip! (@tlimoncelli)