v5.0.0-rc1
Pre-releaseWelcome to a preview of the future, DNS fans!
DNSControl v5 is refactoring some of the biggest internal parts of the system. There should be zero user-facing
changes. However, I'm releasing a few "test balloons" to get feedback early.
Goals of the new release:
- No user-visible changes. Your dnsconfig.js works.
- Enable faster adoption of new DNS record types!
- Enable easier implementation of new custom DNS record types.
- Internally use the dnsv2.RDATA type to store DNS record fields. This will be more memory efficient.
And most importantly...
- Old providers "just work". Legacy data structs are bi-directionally converted to the new structures (for now).
Interested in what changed? Visit the new Developer Cookbook which explains the new features that mean less code needs to be written when creating providers.
Maintainers: Existing providers "just work". However, the backwards-compatibility code will go away by the end of 2026. Please read the conversion guide for step-by-step instructions. I've already begun the process for all the providers with automated testing. The branch names are release_candidate_v5_$PROVIDER. For example, release_candidate_v5_namedotcom.
Extra testing needed!
- BIND: SOA handling has been rewritten to be easier to debug and more reliable. Shouldn't have any user-visible changes but please be on the lookout for problems.
- CLOUDFLAREAPI: CF_WORKER_ROUTES() need extra testing. Internally they were represented sometimes as
WORKER_ROUTEand sometimes asCF_WORKER_ROUTE. It's amazing such complex code ever worked. Now we useCF_WORKER_ROUTEexclusively. The changes were core to the worker feature. Pleaes give extra attending and testing. - IMPORT_TRANSFORM() hasn't changed but related parts have.
- Any provider that implements pseudo-types such as CF_WORKER_ROUTES(), BUNNY_DNS_PZ(), etc.
If you maintain a DNS provider, please give this release extra testing!
I only have automated testing for the following providers:
AXFRDDNS_DNSSEC AZURE_DNS AZURE_PRIVATE_DNS BIND CLOUDFLAREAPI CNR
DIGITALOCEAN GANDI_V5 GCLOUD HEDNS MYTHICBEASTS NETNOD NS1 ROUTE53
SAKURACLOUD TRANSIP VERCEL
All others are at risk of being broken! Apologies in advance! I'm doing my best not to break anything, but without an ability to test my work it's difficult to not make mistakes.
Provider maintainers! Please run the integration tests on this branch and report back any problems. (This is also an excellent opportunity to add your provider to the automated testing list)
Sincerely,
--Tom Limoncelli
Using with Docker
You can use the Docker image from the GitHub Container Registry.
docker run --rm -it -v "$(pwd):/dns" ghcr.io/dnscontrol/dnscontrol:5.0.0-rc1 versionMonthly 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.