Repository navigation
Provider maintainers: Please test this release! #4421
Description
Activity
I tested the release_candidate_v5 branch with the ALIDNS integration tests.
I found one issue: the IDNA “Internationalized CNAME Target” test failed because ALIDNS does not support non-Chinese IDN CNAME targets, and the provider audit was not catching the punycoded target before it reached the AliDNS API.
I opened a fix here: #4424
After applying that fix, the ALIDNS integration tests pass on my side. I did not find any other issues.
Unfortunately it seems that the v5 branch causes the
NAMECHEAP_url_redirect_records:Create_the_three_typestest to fail as follows=== RUN TestDNSProviders/willpower232testsdnscontrol.com/101:NAMECHEAP_url_redirect_records:Create_the_three_types helpers_integration_test.go:246: GENERATE_ZONE: willpower232testsdnscontrol.com (3 records)[ + CREATE FRAME masked.willpower232testsdnscontrol.com "https://example.com" ttl=300 + CREATE URL301 permanent.willpower232testsdnscontrol.com https://example.com.willpower232testsdnscontrol.com. false false ttl=300 + CREATE URL unmasked.willpower232testsdnscontrol.com "https://example.com" false false ttl=300] BUG: FixUp: Make$TYPE() failed: URL301 expects 3 arguments, got 1: [https://example.com.willpower232testsdnscontrol.com.]Do you need any more information or would you like me to attempt a fix? Namecheaps rate limits are very upset at me so I'll wait for your reply first.
Unfortunately it seems that the v5 branch causes the
NAMECHEAP_url_redirect_records:Create_the_three_typestest to fail as follows=== RUN TestDNSProviders/willpower232testsdnscontrol.com/101:NAMECHEAP_url_redirect_records:Create_the_three_types helpers_integration_test.go:246: GENERATE_ZONE: willpower232testsdnscontrol.com (3 records)[ + CREATE FRAME masked.willpower232testsdnscontrol.com "https://example.com" ttl=300 + CREATE URL301 permanent.willpower232testsdnscontrol.com https://example.com.willpower232testsdnscontrol.com. false false ttl=300 + CREATE URL unmasked.willpower232testsdnscontrol.com "https://example.com" false false ttl=300] BUG: FixUp: Make$TYPE() failed: URL301 expects 3 arguments, got 1: [https://example.com.willpower232testsdnscontrol.com.]Do you need any more information or would you like me to attempt a fix? Namecheaps rate limits are very upset at me so I'll wait for your reply first.
I'd appreciate it if you have it a try. Thanks!
Glad to see adoption of miekg's V2 library, and I'm hoping to this will fix the TXT/quoting rendering bugs.
Please run the integration tests on this branch and report back any problems. If it succeeds, please check off your provider in the list above.
(This is also an excellent opportunity to add your provider to the automated testing list)
For providers that are already on the automated testing list, are the test results on this branch published anywhere?
it gives a okay with provider huaweicloud
--- PASS: TestDualProviders (8.16s) === RUN TestNameserverDots Testing Profile="HUAWEICLOUD" (TYPE="HUAWEICLOUD") === RUN TestNameserverDots/No_trailing_dot_in_nameserver --- PASS: TestNameserverDots (2.17s) --- PASS: TestNameserverDots/No_trailing_dot_in_nameserver (0.00s) === RUN TestDuplicateNameservers Testing Profile="HUAWEICLOUD" (TYPE="HUAWEICLOUD") provider_test.go:148: Skipping. Deduplication logic is not implemented for this provider. --- SKIP: TestDuplicateNameservers (1.37s) PASS ok github.com/DNSControl/dnscontrol/v4/integrationTest 608.676s ~/w/d/integrationTest (release_candidate_v5)>Reacted by Tom Limoncelli@TomOnTime I'm guessing it is because of the two porkbun fields in pkg/privatetypes/rdata/rdata_url301.go, is there any way of that func being able to detect the provider is not porkbun and set them to false perhaps?
Provider: CNR
All Tests: PassThanks for the great job
Testing Profile="CNR" (TYPE="CNR") === RUN TestNameserverDots/No_trailing_dot_in_nameserver --- PASS: TestNameserverDots (0.16s) --- PASS: TestNameserverDots/No_trailing_dot_in_nameserver (0.00s) === RUN TestDuplicateNameservers Testing Profile="CNR" (TYPE="CNR") provider_test.go:148: Skipping. Deduplication logic is not implemented for this provider. --- SKIP: TestDuplicateNameservers (0.13s) PASS ok github.com/DNSControl/dnscontrol/v4/integrationTest 333.209s
- added a commit that references this issue
on Jul 6, 2026 DNSimple passes all tests
... === RUN TestMakeTests --- PASS: TestMakeTests (0.02s) === RUN TestDualProviders Testing Profile="DNSIMPLE" (TYPE="DNSIMPLE") provider_test.go:29: Skipping. DocDualHost == Cannot --- SKIP: TestDualProviders (0.00s) === RUN TestNameserverDots Testing Profile="DNSIMPLE" (TYPE="DNSIMPLE") provider_test.go:111: Skipping. DocDualHost == Cannot --- SKIP: TestNameserverDots (0.00s) === RUN TestDuplicateNameservers Testing Profile="DNSIMPLE" (TYPE="DNSIMPLE") provider_test.go:143: Skipping. DocDualHost == Cannot --- SKIP: TestDuplicateNameservers (0.00s) PASS ok github.com/DNSControl/dnscontrol/v4/integrationTest 281.251sReacted by Tom LimoncelliDNSimple passes all tests
... === RUN TestMakeTests --- PASS: TestMakeTests (0.02s) === RUN TestDualProviders Testing Profile="DNSIMPLE" (TYPE="DNSIMPLE") provider_test.go:29: Skipping. DocDualHost == Cannot --- SKIP: TestDualProviders (0.00s) === RUN TestNameserverDots Testing Profile="DNSIMPLE" (TYPE="DNSIMPLE") provider_test.go:111: Skipping. DocDualHost == Cannot --- SKIP: TestNameserverDots (0.00s) === RUN TestDuplicateNameservers Testing Profile="DNSIMPLE" (TYPE="DNSIMPLE") provider_test.go:143: Skipping. DocDualHost == Cannot --- SKIP: TestDuplicateNameservers (0.00s) PASS ok github.com/DNSControl/dnscontrol/v4/integrationTest 281.251sThanks for the fast response!
Reacted by Tom LimoncelliGlad to see adoption of miekg's V2 library, and I'm hoping to this will fix the TXT/quoting rendering bugs.
Yes, miekg's library is the hero here. (and, yes, it gives us a better chance of fixing TXT quoting issues).
Please run the integration tests on this branch and report back any problems. If it succeeds, please check off your provider in the list above.
(This is also an excellent opportunity to add your provider to the automated testing list)For providers that are already on the automated testing list, are the test results on this branch published anywhere?
Yes, they're in Github Actions. The most recent can be found with this query: https://github.com/DNSControl/dnscontrol/actions/workflows/pr_integration_tests.yml?query=branch%3Arelease_candidate_v5
I'm still working on the code, but that branch is stable. If a provider passes once, I'm confident it will pass in the future revisions.
PowerDNS is complaining about some tests:
=== RUN TestDNSProviders/dnscontrol-test.com/18:HTTPS-Ech:Add_an_ECH_key helpers_integration_test.go:246: ± BATCHED CHANGE/CREATEs for dnscontrol-test.com ± MODIFY dnscontrol-test.com HTTPS (3 example.com. alpn="h2,h3" port="999" ttl=300) -> (3 example.com. alpn="h2,h3" port="999" ech="some+base64+encoded+value///" ttl=300) helpers_integration_test.go:251: unexpected status code 422: http://10.12.1.132:8081/api/v1/servers/localhost/zones/dnscontrol-test.com. Record dnscontrol-test.com./HTTPS '3 example.com. alpn=h2,h3 port=999 ech=some+base64+encoded+value///': Not in expected format (parsed as '3 example.com. alpn=h2,h3 port=999 ech="some+base64+encoded+value///"') === RUN TestDNSProviders/dnscontrol-test.com/20:SVCB-Ech:Add_an_ECH_key helpers_integration_test.go:246: ± BATCHED CHANGE/CREATEs for dnscontrol-test.com ± MODIFY dnscontrol-test.com SVCB (3 example.com. alpn="h2,h3" port="999" ttl=300) -> (3 example.com. alpn="h2,h3" port="999" ech="some+base64+encoded+value///" ttl=300) helpers_integration_test.go:251: unexpected status code 422: http://10.12.1.132:8081/api/v1/servers/localhost/zones/dnscontrol-test.com. Record dnscontrol-test.com./SVCB '3 example.com. alpn=h2,h3 port=999 ech=some+base64+encoded+value///': Not in expected format (parsed as '3 example.com. alpn=h2,h3 port=999 ech="some+base64+encoded+value///"') === RUN TestDNSProviders/dnscontrol-test.com/47:DS:DS_create helpers_integration_test.go:246: ± BATCHED CHANGE/CREATEs for dnscontrol-test.com + CREATE dnscontrol-test.com DS 1 13 1 DA39A3EE5E6B4B0D3255BFEF95601890AFD80709 ttl=300 helpers_integration_test.go:251: unexpected status code 422: http://10.12.1.132:8081/api/v1/servers/localhost/zones/dnscontrol-test.com. Record dnscontrol-test.com. IN DS is not allowed at apex === RUN TestDNSProviders/dnscontrol-test.com/52:DNSKEY:Create_DNSKEY_record helpers_integration_test.go:246: ± BATCHED CHANGE/CREATEs for dnscontrol-test.com + CREATE test.dnscontrol-test.com DNSKEY 257 3 13 fRnjbeUVyKvz1bDx2lPmu3KY1k64T358t8kP6Hjveos= ttl=300 helpers_integration_test.go:251: unexpected status code 422: http://10.12.1.132:8081/api/v1/servers/localhost/zones/dnscontrol-test.com. Record test.dnscontrol-test.com. IN DNSKEY is only allowed at apexOtherwise the tests are passing
Hi Tom,
I'm off with few availability this week and next one, but was able to run the OVH provider in the release_candidate_v5 branch.
I'm seeing a few failures that seems to be all around TXT quoting back and forth (here are the two first ones):
=== RUN TestDNSProviders/dnscontroltest.ovh/09:TXT:Create_TXT helpers_integration_test.go:246: + CREATE testtxt.dnscontroltest.ovh TXT "simple" ttl=300 helpers_integration_test.go:246: REFRESH zone dnscontroltest.ovh helpers_integration_test.go:268: Expected 0 corrections on second run, but found 1. helpers_integration_test.go:270: UNEXPECTED #0: ± MODIFY testtxt.dnscontroltest.ovh TXT ("\"simple\"" ttl=300) -> ("simple" ttl=300) helpers_integration_test.go:270: UNEXPECTED #1: REFRESH zone dnscontroltest.ovh === RUN TestDNSProviders/dnscontroltest.ovh/28:TXT_backslashes:TXT_with_backslashs helpers_integration_test.go:268: Expected 0 corrections on second run, but found 4. helpers_integration_test.go:270: UNEXPECTED #0: ± MODIFY fooosbs1.dnscontroltest.ovh TXT ("\"1backslash\"" ttl=300) -> ("1backslash" ttl=300) helpers_integration_test.go:270: UNEXPECTED #1: ± MODIFY fooosbs2.dnscontroltest.ovh TXT ("\"2back\\slash\"" ttl=300) -> ("2back\\slash" ttl=300) helpers_integration_test.go:270: UNEXPECTED #2: ± MODIFY fooosbs3.dnscontroltest.ovh TXT ("\"3back\\slash\"" ttl=300) -> ("3back\\slash" ttl=300) helpers_integration_test.go:270: UNEXPECTED #3: ± MODIFY fooosbs4.dnscontroltest.ovh TXT ("\"4back\\\\slash\"" ttl=300) -> ("4back\\\\slash" ttl=300) helpers_integration_test.go:270: UNEXPECTED #4: REFRESH zone dnscontroltest.ovh(same tests are passing on
main).
I may not have the time to look at those failures this week, but will try by end of next week.18 remaining items
I confirmed that there is no problem with LuaDNS.
Reacted by Christopher Hicks- added a commit that references this issue
on Jul 17, 2026 Hello! NS1 passes on 337f115 both with the integration testsuite run locally and various manual tests against a local build.
PASS ok github.com/DNSControl/dnscontrol/v4/integrationTest 277.200sReacted by Tom LimoncelliTesting INFOMANIAK provider: 5 tests are failing (23, 24, 27, 43, and 47).
--- FAIL: TestDNSProviders (3.15s) --- FAIL: TestDNSProviders/glop.be (3.15s) --- PASS: TestDNSProviders/glop.be/Clean_Slate:Empty (0.71s) --- FAIL: TestDNSProviders/glop.be/23:NullMX:create (0.75s) - failed to create MX record for zone glop.be: invalid dns record: MX (invalid_dns_record) --- PASS: TestDNSProviders/glop.be/Clean_Slate:Empty#01 (0.69s) --- FAIL: TestDNSProviders/glop.be/24:NullMXApex:create (0.72s) - failed to create MX record for zone glop.be: invalid dns record: MX (invalid_dns_record) --- PASS: TestDNSProviders/glop.be/Clean_Slate:Empty (0.73s) --- FAIL: TestDNSProviders/glop.be/27:complex_TXT:a_0-byte_TXT (0.07s) - failed to create TXT record for zone glop.be: Validation failed (validation_failed) --- PASS: TestDNSProviders/glop.be/Clean_Slate:Empty (0.03s) --- PASS: TestDNSProviders/glop.be/43:SRV:SRV_record (0.87s) --- PASS: TestDNSProviders/glop.be/43:SRV:Second_SRV_record,_same_prio (0.91s) --- PASS: TestDNSProviders/glop.be/43:SRV:3_SRV (5.78s) --- PASS: TestDNSProviders/glop.be/43:SRV:Delete_one (0.74s) --- PASS: TestDNSProviders/glop.be/43:SRV:Change_Target (1.90s) --- PASS: TestDNSProviders/glop.be/43:SRV:Change_Priority (1.89s) --- PASS: TestDNSProviders/glop.be/43:SRV:Change_Weight (1.94s) --- PASS: TestDNSProviders/glop.be/43:SRV:Change_Port (2.27s) --- PASS: TestDNSProviders/glop.be/43:SRV:Empty (1.41s) --- FAIL: TestDNSProviders/glop.be/43:SRV:Null_Target (0.07s) - failed to create SRV record for zone glop.be: invalid dns record: SRV (invalid_dns_record) --- PASS: TestDNSProviders/glop.be/Clean_Slate:Empty (0.03s) --- FAIL: TestDNSProviders/glop.be/47:DS:DS_create (0.07s) - failed to create DS record for zone glop.be: Validation failed (validation_failed)But the exact same 5 tests are currently also failing in the default branch so I think RC Version 5 is good to go. 👍
@TomOnTime NULL records don't seem to be valid at Infomaniak, is there a way to "disabled" that feature inside a provider ?
Reacted by Tom LimoncelliBut the exact same 5 tests are currently also failing in the default branch so I think RC Version 5 is good to go. 👍
That's ok, then!
@TomOnTime NULL records don't seem to be valid at Infomaniak, is there a way to "disabled" that feature inside a provider ?
Look at
providers/infomaniak/auditrecords.go(and the equiv files on other providers). You'll see its possible to reject certain records. For example, an empty TXT record can be excluded with rejectif.TxtIsEmptyReacted by Tom LimoncelliAKAMAIEDGEDNS passes all tests at 562a904
Reacted by Tom Limoncelli---DOMAINNAMESHOP tested against release_candidate_v5.
All integration tests pass except NS_only_APEX (Single/Dual NS at apex). That one fails because the Domainnameshop API rejects NS records at the apex (HTTP 400 — apex/delegation NS are registrar-managed).
This is not a v5 regression: I ran the full suite on both release_candidate_v5 and main, and the apex-NS test fails identically on both. So v5 is behaviorally equivalent to main for this provider.
Reacted by Tom LimoncelliAll good for AzureDNS
Reacted by Tom LimoncelliVultr is good after #4609.
Reacted by Tom Limoncelli- Reacted by Tom LimoncelliReacted by Jonathan Beliën
PowerDNS is passing now:
PASS ok github.com/DNSControl/dnscontrol/v5/integrationTest 4.070s
Reacted by Tom LimoncelliI've run the test suite for desec, results here: https://gist.github.com/androw/9460b645321a13f5323e500f163c63ed
Seems to fail because of the NS records (and then because of rate limiting, but not a real problem).I've run the test suite for desec, results here: https://gist.github.com/androw/9460b645321a13f5323e500f163c63ed Seems to fail because of the NS records (and then because of rate limiting, but not a real problem).
Thanks! I've opened #4675
Issue
See https://github.com/orgs/DNSControl/discussions/4415 for more details.
#4414 (branch
release_candidate_v5) needs extra testing because it changes a lot. There should be no user-visible changes. However a lot of code was refactored.Therefore, I'm requesting that each provider maintainer test this branch by July 18, 2026 (that's 2 weeks). If all goes well, this will become DNSControl v5.0 shortly after.
Test instructions
Please run the integration tests on this branch and report back any problems. If it succeeds, please check off your provider in the list above.
(This is also an excellent opportunity to add your provider to the automated testing list)