Skip to content

Provider maintainers: Please test this release! #4421

Description

@TomOnTime

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

git clone https://github.com/DNSControl/dnscontrol.git
cd dnscontrol
git checkout release_candidate_v5
go build

cd integrationTest

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)

Activity

  1. bytemain commented on Jul 5, 2026

    @bytemain
    Member

    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.

    alidns-integration-output.txt

  2. willpower232 commented on Jul 5, 2026

    @willpower232
    Contributor

    Unfortunately it seems that the v5 branch causes the NAMECHEAP_url_redirect_records:Create_the_three_types test 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.

  3. TomOnTime commented on Jul 5, 2026

    @TomOnTime
    CollaboratorAuthor

    Unfortunately it seems that the v5 branch causes the NAMECHEAP_url_redirect_records:Create_the_three_types test 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!

  4. tomfitzhenry commented on Jul 6, 2026

    @tomfitzhenry
    Contributor

    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?

  5. huihuimoe commented on Jul 6, 2026

    @huihuimoe
    Member

    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)>
    
  6. willpower232 commented on Jul 6, 2026

    @willpower232
    Contributor

    @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?

  7. AsifNawaz-cnic commented on Jul 6, 2026

    @AsifNawaz-cnic
    Contributor

    Provider: CNR
    All Tests: Pass

    Thanks 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
  8. onlyhavecans commented on Jul 6, 2026

    @onlyhavecans
    Contributor

    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.251s
    
  9. TomOnTime commented on Jul 7, 2026

    @TomOnTime
    CollaboratorAuthor

    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.251s
    

    Thanks for the fast response!

  10. TomOnTime commented on Jul 7, 2026

    @TomOnTime
    CollaboratorAuthor

    Glad 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.

  11. jpbede commented on Jul 7, 2026

    @jpbede
    Member

    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 apex
    

    Otherwise the tests are passing

  12. masterzen commented on Jul 7, 2026

    @masterzen
    Contributor

    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.

  13. 18 remaining items

  14. riku22 commented on Jul 14, 2026

    @riku22
    Contributor

    I confirmed that there is no problem with LuaDNS.

  15. vojtad commented on Jul 14, 2026

    @vojtad
    Contributor

    All good for DNSMADEEASY after #4469 has been merged. Tested on ac46efd.

  16. added a commit that references this issue on Jul 17, 2026
  17. costasd commented on Jul 17, 2026

    @costasd
    Contributor

    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.200s
    
  18. jbelien commented on Jul 19, 2026

    @jbelien
    Contributor

    Testing 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 ?

  19. TomOnTime commented on Jul 19, 2026

    @TomOnTime
    CollaboratorAuthor

    But 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.TxtIsEmpty

  20. meghanakudua02 commented on Jul 20, 2026

    @meghanakudua02
    Collaborator

    AKAMAIEDGEDNS passes all tests at 562a904

  21. SimenBai commented on Jul 20, 2026

    @SimenBai
    Contributor

    ---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.

  22. vatsalyagoel commented on Jul 24, 2026

    @vatsalyagoel
    Contributor

    All good for AzureDNS

  23. pgaskin commented on Jul 26, 2026

    @pgaskin
    Member

    Vultr is good after #4609.

  24. TomOnTime commented on Jul 27, 2026

    @TomOnTime
    CollaboratorAuthor

    jbelien

    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.TxtIsEmpty

    I've made this change in #4613

  25. jpbede commented on Jul 27, 2026

    @jpbede
    Member

    PowerDNS is passing now:

    PASS
    ok  	github.com/DNSControl/dnscontrol/v5/integrationTest	4.070s
  26. androw commented on Aug 2, 2026

    @androw
    Collaborator

    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).

  27. TomOnTime commented on Aug 2, 2026

    @TomOnTime
    CollaboratorAuthor

    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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions