Skip to content

v5.0.0-rc1

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 21 Jul 02:08
8dc6252

Welcome 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_ROUTE and sometimes as CF_WORKER_ROUTE. It's amazing such complex code ever worked. Now we use CF_WORKER_ROUTE exclusively. 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 version

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.