Greetings and happy holidays, DNSControl fans!
Santa (or the super-natural gift-delivery being of your choice) has graced us with THREE big, new, exciting, features, plus a ton of other fixes and improvements.
D()
statement can now have a comma!In the past, leaving off the last comma would give an error:
D("example.com", REG_NONE, DnsProvider(DSP_EXAMPLE),
A("test", "1.2.3.4") <<< look, Ma! No comma!
END);
### version 4.14.x:
$ dnscontrol check
executing dnsconfig.js: (anonymous): Line 183:25 Unexpected token )
### version 4.15.0:
$ dnscontrol check
No errors.
Best of all we got this feature simply by upgrading to the newest version of the JavaScript interpreter we use (https://github.com/robertkrimen/otto). In the latest release @linuxerwang (who has probably never heard of our project) submitted this enhancement in robertkrimen/otto#520 and we all benefit.
This affects all kinds of JavaScript lists, not just D()
statements.
Thanks, Santa! .... I mean @linuxerwang!
--cmode
is now concurrent
.This means your preview
will run many times faster because all the domains are collected concurrently. Some people have reported runtimes are reduced 50-75%.
This change was announced months ago in #3142 plus dnscontrol
printed warnings since v4.14.0.
The following providers added concurrency support in this release: CLOUDNS, CNR, DIGITALOCEAN, GANDI_V5, HETZNER, NAMECHEAP, NETLIFY
Providers that already support concurrency include: AZURE_DNS, CLOUDFLAREAPI, CSCGLOBAL, DESEC, GCLOUD, NS1, ROUTE53, TRANSIP.
This code is a bit new. If you find a bug, use --cmode=none
to disable concurrency. (and file a bug report!)
Notifications are now handled by the Shouterr package. Shouterr supports every chat system I've heard of, plus plenty of other systems. In the future Shouterr will become the standard way to send notifications and other methods will be deprecated. How to set up notifications is documented at https://docs.dnscontrol.org/advanced-features/notifications.
get-zones
subcommand is more reliable, which probably also makes preview
more reliable.Thanks to everyone for their contributions! This is a community-driven project and we couldn't do it without all your PRs, reviews, and other support!
Stay safe! See you in the new year!
--Tom
Here's the details:
beefdbd
to 1e42bbe
(#3208) (@dependabot[bot])Warning
brew install dnscontrol
You can use the Docker image from Docker hub or GitHub Container Registry.
docker run --rm -it -v "$(pwd):/dns" ghcr.io/stackexchange/dnscontrol preview
Alternatively, you can install the latest binary (or the apt/rpm/deb/archlinux package) from this page.
Or, if you have Go installed, you can install the latest version of DNSControl with the following command:
go install github.com/StackExchange/dnscontrol/v4@main
Update to the latest version depends on how you choose to install dnscontrol
on your machine.
brew upgrade dnscontrol
Alternatively, you can grab the latest binary (or the apt/rpm/deb package) from this page.
āThis release has 14 assets:
Visit the release page to download them.