Update dependency ubi:dnscontrol/dnscontrol to v5 - #19
Merged
Merged
Conversation
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
4.46.0→5.0.0Release Notes
dnscontrol/dnscontrol (ubi:dnscontrol/dnscontrol)
v5.0.0Compare Source
Greetings DNS fans!
v5.0.0 is released! This was a big community effort!
Thanks to all the people that helped test and fix bugs including @labrown @fm @cafferata @chicks @androw @AsifNawaz-cnic @blackshadev @bytemain @chicks-net @cylonchau @das7pad @dnscale-ops @DustyRah @eliheady @haylinmoore @huihuimoe @huskyistaken @imlonghao @jbelien @jochristian @kallsyms @KlettIT @kordianbruck @labrown @masterzen @meghanakudua02 @morozov-alexey @mtmn @patschi @pgaskin @ppmathis @rblenkinsopp @riku22 @riyadhalnur @SimenBai @SukkaW @ttkzw @vojtad @willpower232 @xddxdd @yzqzss @zupolgec (it's impossible to make such a list without forgetting someone. Apologies in advance to anyone I missed!) A special thanks to my new employer, CoreWeave, for their support!
v5.0.0 is all about EXTENSIBILITY!
dnsconfig.jsshould “just work”.How did this happen? We upgraded from github.com/miekg/dns to codeberg.org/miekg/dns (a.k.a. “DNS version 2”) and took advantage of the new features. Specifically,
models.RecordConfigno longer contains fields for each record type, most of which go unused. Instead it stores a DNS version 2RDATAinterface that contains the fields needed for that specific record type. This also allowed us to create new factories (NewRecordConfig() and NewRecordConfigParse()) which replace many lines of code in providers. As a result, every file that touchesmodels.RecordConfighad to change. Thanks to @miekg for collaborating on the RDATA features which make much of this possible.What does this mean to you?
IGNORE()is now reliable for all providers!SOArecords are no longer special. They work like all other records.DSordering works: A DS record is created after its target NS exists, and deleted only after its target NS is removeddnscontrol foonow errors “command not found” instead of carping that no help for “foo” exists.ADGUARDHOME,AKAMAIDNS,AZURE_DNS,ROUTE52,BUNNYDNS,CLOUDFLAREAPI,CLOUDNS,LUADNS,MIKROTIK,NETLIFY, andPORKBUNhave been converted to the new custom record type system. They are no longer special and even appear in zonefile backups.Some potential regressions: (These record types may not have worked previously.)
Dev notes:
Developers might be interested in the code changes, which are described here in modernizingproviders.md
models/record_astype.go) and custom types (pkg/privatetypes/) are generated.There is a new “cookbook” which explains common code patterns: Cookbook.
RecordConfigwere supported with a very slick bidirectional conversion process. As the legacy fields were eliminated, the conversionn process got closer and closer to being a no-op until suddenly the and nStats:
Testing notes
The following providers received extensive testing:
AKAMAIEDGEDNS ALIDNS AXFRDDNS AZUREDNS AZUREPRIVATEDNS BIND CLOUDFLARE CLOUDNS
CNR DESEC DIGITALOCEAN DNSCALE DNSIMPLE DOMAINNAMESHOP DYNU GANDIV5 GCLOUD
GIDINET HEDNS HUAWEICLOUD INFOMANIAK INWX LINODE LUADNS MYTHICBEASTS NAMECHEAP
NAMEDOTCOM NETBIRD NETLIFY NETNOD NEXDNS NS1 OPENWRT ORACLE OVH PORKBUN POWERDNS
ROUTE53 SAKURACLOUD TRANSIP UNIFI VERCEL VULTR WEBSUPPORT
The following providers lacked testing. Please use with caution:
ADGUARDHOME AUTODNS BUNNYDNS CSCGLOBAL DNSMADEEASY EXOSCALE FORTIGATE GCORE
GIGAHOST HETZNERV2 HOSTINGDE JOKER LOOPIA MIKROTIK NETCUP PACKETFRAME
REALTIMEREGISTER RWTH SCALEWAY SOFTLAYER TENCENTDNS
Users of the
IMPORT_TRANSFORM()andIMPORT_TRANSFORM_STRIP()functions should test carefully before using in production.Changes
The list is too long to include all commits, but here are the highlights:
models.NewDomainConfig(zone).pkg/normalize/validate.gostill exists and is used, but is slowly being deprecated.rtypecontrolmodule. In the few places it was used, replace with the new RDATA functionality.RPandDSwere reimplemented using the new RDATA system.models.RegisterBuilder()pkg/dnsrr/dnsrr.goto help migrate away from dnsv1pkg/js/helpers.js: Improved rawRecordBuilder() to be feature-compatible with recordBuilder()pkg/js/helpers.js: Convert to "the new way" for all record types.pkg/js/parse_testsupdate fixtures due to new JSON fields. .json files no longer have Unicode chars.mustbefor converting raw data to the types we need.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:
6fcc3de: FEATURE: updated DMARC_BUILDER for RFC 9989 (#4794) (@ElliottCepin)Provider-specific changes:
1826646: ADGUARDHOME: Modernize record conversion (#4536) (@TomOnTime)7950089: AKAMAIEDGEDNS: Add Akamai Edge DNS golden tests (#4717) (@TomOnTime)337f115: AKAMAIEDGEDNS: Fix bugs mentioned in Issue (#4466) while running integration tests (#4421) (#4487) (@meghanakudua02)a9ff22f: AKAMAIEDGEDNS: Modernize record conversion (#4537) (@TomOnTime)3da2033: AKAMAIEDGEDNS: Move AnswerType out of RecordConfig (#4709) (@TomOnTime)dbbba21: ALIDNS: Modernize field access (#4657) (@TomOnTime)218b565: ALIDNS: Modernize record conversion (#4538) (@TomOnTime)5401afe: ALIDNS: audit punycoded CNAME targets (#4424) (@bytemain)9899adb: ALIDNS: decode punycode labels before IDNA validation (#4787) (@bytemain)f1efd81: AUTODNS: Modernize field access (#4660) (@TomOnTime)8950faa: AUTODNS: Modernize record conversion (#4539) (@TomOnTime)93f655c: AXFRDDNS: Adopt dnsv2 (partial) (#4529) (@TomOnTime)7b13af9: AXFRDDNS: Modernize field access (#4661) (@TomOnTime)108cf31: AXFRDDNS: convert to codeberg.org/miekg/dns (dnsv2) (#4658) (@shuvamk)cb37dcb: BIND: Refactor to use modern constructs (#4423) (@TomOnTime)7128ea7: BUNNYDNS: Modernize code (#4647) (@TomOnTime)4ccaa21: BUNNYDNS: Modernize field access (#4662) (@TomOnTime)4e4da9c: BUNNYDNS: Modernize record conversion (#4540) (@TomOnTime)94b973e: CLOUDFLAREAPI: Modernize field access (#4625) (@TomOnTime)f530e0e: CLOUDFLAREAPI: Reduce use of legacy functions (#4480) (@TomOnTime)d9bbd73: CLOUDNS: Modernize field access (#4663) (@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)0084086: DESEC, POWERDNS: Add audit rules for DNSKEY records (#4705) (@androw)97cddcd: DESEC: Fix TXT records quote, disable TTL tests (#4677) (@androw)d5b2424: DESEC: Update DNSSEC capabilities (#4692) (@androw)698b06f: DNSCALE: Modernize field access (#4664) (@TomOnTime)8f694d8: DNSCALE: fix regression in PR#4664 (#4763) (@dnscale-ops)7d3fc44: DNSIMPLE: Modernize field access (#4648) (@TomOnTime)0af29d7: DNSIMPLE: Modernize field access (#4656) (@TomOnTime)da6f97c: DNSMADEEASY: Cover label conversion in types_test.go (#4696) (@vojtad)0b97c68: DNSMADEEASY: Unify how labels are made (#4679) (@TomOnTime)b017a1d: DNSMADEEASY: fix TXT ≥256-byte round-trip and ALIAS/ANAME diff loop; document sandbox testing (#4469) (@vojtad)5a0362a: DOMAINNAMESHOP: Improve label creation (@TomOnTime)d75427a: DOMAINNAMESHOP: Reject NS records at apex (#4702) (@SimenBai)851a7bc: DYNU: Fix NAPTR replacement field, and RP trailing dot (#4785) (@DustyRah)11f67ba: DYNU: Modernize field access (#4665) (@TomOnTime)3b254c4: EXOSCALE: Document that PTR records not supported (#4779) (@TomOnTime)fd4dffb: FORTIGATE: Debug failing IGNORE tests (#4621) (@TomOnTime)ca08787: FORTIGATE: Modernize field access (#4666) (@TomOnTime)5d41d71: FORTIGATE: Skip TXT test (#4766) (@TomOnTime)6f0dc26: GIDINET: v5 test fixes and modernize record conversion (#4451) (@zupolgec)c39ac7f: INFOMANIAK: Disable tests for features that do not exist (#4613) (@TomOnTime)abf7228: INFOMANIAK: Fix TXT records (#4800) (@TomOnTime)dbda6b2: JOKER: Modernize field access (#4673) (@TomOnTime)c73196c: NAMEDOTCOM: Fix ALIAS regression (#4746) (@TomOnTime)f56aafd: NAMEDOTCOM: Upgrade to diff2 (#4565) (@TomOnTime)cf54521: NETBIRD: Add apiurl creds argument (#4486) (@3l0w)5b761f3: NETCUP: Modernize field access (#4667) (@TomOnTime)f486bdc: NETCUP: fixup provider to make it pass the latest integration test suite (#4706) (@kordianbruck)b9823fb: NETLIFY: toRC should not mutate native record (#4671) (@TomOnTime)97f6a9c: NETNOD: Fix typo (#4530) (@TomOnTime)e755fc9: NETNOD: Modernize field access (#4668) (@TomOnTime)3661095: NEXDNS: Modernize for v5 (@TomOnTime)69d4d88: OVH: Add the ability to disable ListZones() for testing / Fix TXT record handling (#4791) (@TomOnTime)349405a: OVH: Modernize field access (#4669) (@TomOnTime)ed58476: PACKETFRAME: No longer has maintainer (#4788) (@TomOnTime)b3d616f: PORKBUN: Modernize field access for SVCB records (#4649) (@TomOnTime)07058de: POWERDNS: Fix SVCB bug (#4778) (@TomOnTime)5cbd56e: POWERDNS: Update access to SVCB fields (#4639) (@TomOnTime)c571cc8: ROUTE53: Fix R53_ALIAS and R53_EVALUATE_TARGET_HEALTH bugs (#4797) (@TomOnTime)2d57bb7: ROUTE53: Modernize (#4481) (@TomOnTime)a9374d8: SAKURACLOUD: Modernize field access (#4670) (@TomOnTime)430d2c6: SOFTLAYER: Use diff2.ByRecord instead of diff.NewCompat (#4606) (@TomOnTime)e55b628: TENCENTDNS: integration tests fix (#4775) (@cylonchau)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)92c9530: VERCEL: Skip NullMX tests (#4773) (@SukkaW)6259760: VULTR: convert fields (#4618) (@TomOnTime)25e4f81: WEBSUPPORT: fix MX/SRV empty priority and v5 preparation (#4732) (@mtmn)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)91a0428: DOCS: Fix many comments (#4783) (@TomOnTime)62a6b52: DOCS: Update link to the official GHA (#4764) (@TomOnTime)f9aa09a: DOCS: Verify parameters match across code, docs, and dnscontrol.d.ts (#4805) (@TomOnTime)2765ef1: docs(README): Add GHA, update RFC4183 change, etc. (#4774) (@TomOnTime)CI/CD:
f56dd36: BUILD: Upgrade to Go 1.27 (#4803) (@TomOnTime)b0583a4: CI: Add "golden" data files for most providers (@TomOnTime)95c47d7: CI: Lint, add all env variables, improve gotestsum usage (#4727) (@TomOnTime)957f17c: CI: Optimize cache use for faster builds (#4733) (@TomOnTime)b7c1605: ci(cache): Cache go modules (#4731) (@TomOnTime)243ed15: ci(codeql): Enable CodeQL advanced mode (@TomOnTime)Dependencies:
bf2efad: CHORE: Update dependencies (#4813) (@TomOnTime)9901840: Update deps (@TomOnTime)Other changes and improvements:
1007860: AKAMAI: Refactor how to change .Type (#4755) (@TomOnTime)4a058a0: Add provider conversion golden tests (#4716) (@TomOnTime)0de7521: BENCHMARK: Compare TypeNum and RDATA type switches (#4719) (@TomOnTime)5134406: BUGFIX: Activate single-dot policy (#4739) (@TomOnTime)ce21768: BUGFIX: Fix dnssort issue not resolving all records in certain edge cases (#4786) (@blackshadev)fcb93e9: BUGFIX: IsPrivateType has an off-by-one error (@TomOnTime)f365b0b: BUGFIX: PrettySort not working with PTR-like short names (#4420) (@TomOnTime)9c8625b: BUGFIX: Unknown commands should print better error (#4769) (@TomOnTime)cd0c9f6: BUGFIX: integration tests audited the harness's own delegation NS records (#4758) (@SimenBai)5729f28: BUGFIX: rejectif.NsAtApex never matched the apex label (#4707) (@SimenBai)68bd3d1: CHORE: "vet -fix" (#4465) (@TomOnTime)bfa8067: CHORE: Add Must* equivs of RecordConfig factories (#4461) (@TomOnTime)0df590a: CHORE: Adopt models.MustNewDomainConfig where appropriate (@TomOnTime)5bb24d3: CHORE: ChangeType() -> ChangeTypeToCNAME() (#4754) (@TomOnTime)d38ac06: CHORE: Cleanups to make merging with v5 easier (#4444) (@TomOnTime)51c0dc7: CHORE: Delete obsolete comments (#4455) (@TomOnTime)cb6e7ae: CHORE: Eliminate legacy SOA fields (#4615) (@TomOnTime)641d744: CHORE: Fix ALIAS and modernize BIND, CLOUDFLAREAPI, GANDI_V5 (#4468) (@TomOnTime)fa6403c: CHORE: Fix GoReleaser to skip release candidates (#4485) (@TomOnTime)b3f12e6: CHORE: Fix comments (#4483) (@TomOnTime)a52926c: CHORE: Fix comments (#4756) (@TomOnTime)4227b12: CHORE: Fix merge error (#4528) (@TomOnTime)50000e0: CHORE: Generated files should have a comment indicating so (#4476) (@TomOnTime)5ddee18: CHORE: Merge from base (#4527) (@TomOnTime)30925b1: CHORE: Modernize pkg (#4674) (@TomOnTime)58cd91d: CHORE: Remove unused SetTarget*() functions, improve warnings ([#4672](https://redirect.github.com/dnscontrConfiguration
📅 Schedule: (UTC)
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.