Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

dnscontrol 4.9.0 #168467

Merged
merged 2 commits into from
Apr 9, 2024
Merged

dnscontrol 4.9.0 #168467

merged 2 commits into from
Apr 9, 2024

Conversation

BrewTestBot
Copy link
Member

Created by brew bump


Created with brew bump-formula-pr.

release notes
Greetings DNS Fans!

Release v4.9.0 has many new features, a preview of a major performance improvement ('ppreview'/'ppush') and many bug fixes! Thanks to everyone for their contributions! This is a community effort and it wouldn't be a success without all your help!

Highlights:

  • ppreview/ppush are new subcommands that are a preview of significantly faster versions of preview/push. See below.
  • REV() now supports RFC4183!
  • DNAME records are now supported.
  • get-zones --format-js output follows recommended practices better.
  • @cafferata has continued to make big improvements in documentation consistency, accuracy, and completeness.
  • @cafferata has further automated and enhanced the CICD process.
  • Code cleanup: A lot of dead code and linting completed.

Preview performance experiment

Subcommands ppreview/ppush are experimental versions of preview/push that collect all data concurrently (i.e. in parallel). If this is a success, they will replace the existing preview/push subcommands. Some benchmarks show a 66% reduction in run-time! This rewrite is something we've wanted to do for 6+ years!

dnscontrol preview                # The original command
dnscontrol ppreview               # Run capable providers in parallel
dnscontrol ppreview --cmode=none  # Run each provider one at a time
dnscontrol ppreview --cmode=all   # Run all providers concurrently (unsafe!)

Here's some unscientific benchmarks based on the dnsconfig.js used at Stack Overflow:

  • 3m21.549s (preview)
  • 2m34.349s (ppreview --cmode=none)
  • 1m5.368s (ppreview)

FYI: Add the --full flag to see what it is doing.

The "Concurrency Verified" column on https://docs.dnscontrol.org/service-providers/providers indicates which providers will run concurrently. (As of this release: AZURE_DNS, CLOUDFLAREAPI, CSCGLOBAL, GCLOUD, ROUTE53). If any provider related to a DNS domain (registrar or DNS service provider(s)) are not on the list, the domain is processed one at a time.

Do you maintain a provider? Please check if your provider can run concurrently. See StackExchange/dnscontrol#2873 for instructions

Are you a golang performance guru? I need help! I thought the concurrent version would be much faster. Can you help me find the problem?

Changelog

Major features:

  • 4765f402bd368d71f1db7c43b44b5ed67ff975e8: FEATURE: New capability: Can provider run concurrently (#2876) (@tlimoncelli)
  • 1d96981e117e23419b04d5a15d3aa7da733d51ce: NEW FEATURE: Add RFC4183 support to REV() (#2879) (@tlimoncelli)
  • 68c5e87c8908c5bee27ec4fe068ebc1cc69c5c13: NEW FEATURE: Gather data for providers concurrently (#2873) (@tlimoncelli)
  • a9a4725356e5dde69e3080ab00bf6ada95834b54: BUG: ALIAS target not properly canonicalized (#2899) (@tlimoncelli)
  • 42125b5248bad9d580c7c8e1540938c07bb87075: NEW RECORD TYPE: DNAME (#2893) (@imlonghao)
  • 544d731decfb2c4e10a8d3550648d8a0f2dd3414: get-zones now outputs END); notation and prettier whitespace (#2849) (@tlimoncelli)

Provider-specific changes:

  • 32b8863a93225a3c773011b6a8c4bdca271b8e35: AXFRDDNS: Avoid appending dot if TSIG key ID already has a dot suffix (#2855) (@halochou)
  • 73c303bf7686c0dd432c26668b6c58156f5538e3: CLOUDFLAREAPI: Permit adding NS records to apex domain (#2864) (@xtexChooser)
  • eb19b31371f845ffac9a90ec534435164ee310ac: GCORE: Allow PTR records (#2890) (@xtexChooser)
  • f9cff3d5e65bb6e0dd5f8aa5141dce3b80aebb7d: GCORE: add DNSSEC support (#2904) (@xddxdd)
  • 22d96f2c269dfd36e7171f4a8396061b30bb9981: deSEC: API rejects empty updates caused by IGNORE() of all records (#2830) (@tlimoncelli)

Documentation:

  • 293d5cb54754d9d2303a420e7c9215f44b81a00e: DOCS: Add missing docs for fmt, global flags, preview-push (#2886) (@tlimoncelli)
  • 998c32ec5c9604101c635e7a63269da4e724c4ec: DOCS: Broken documentation URL's (#2839) (@cafferata)
  • c112e91ed8797a9ca82c0ebf16c8df3ef5971419: DOCS: Commands preview/push (#2888) (@cafferata)
  • 3918c755faad5dd92e243a9793f7883c43e4d07e: DOCS: Document daily update limits (#2835) (@tlimoncelli)
  • 11d8e08ca0978782c7e5527cad00c4501fc8f3ee: DOCS: Trailing commas (#2851) (@cafferata)
  • 4f23b2aff5e867c22adba2c9593db64564ca0e3d: DOCS: Warn that get-certs will be removed without notice (#2902) (@tlimoncelli)
  • e3ea652af3496c9acc95a3102f95aa3f71a73526: Docs: Fixed step number in writing-providers (#2820) (@riku22)
  • 27fecedfe42d3793a3f8c2de55733f6c952e46a1: GitHub: Added contact links (#2852) (@cafferata)
  • 1ae265e5f6a87931434e099ac81b4f27ed78caae: Add documentation for preview/push (#2884) (@tlimoncelli)

CI/CD:

  • 3920d19ad4a5364324bce0355c72291feeb82af1: Build(deps): Bump actions/cache from 4.0.0 to 4.0.1 (#2869) (@dependabot[bot])
  • 17115b6b59d84dd3f8aa2cf46e1f53033a7421e8: Build(deps): Bump actions/upload-artifact from 4.3.0 to 4.3.1 (#2836) (@dependabot[bot])
  • 0f4ca76ad43e6b10114ca0480836fdf26a714536: Build(deps): Bump alpine from 3.19.0 to 3.19.1 (#2823) (@dependabot[bot])
  • 3beb49f267e26dd35a07b5cdeda8a9c65ed54992: Build(deps): Bump github.com/softlayer/softlayer-go from 1.1.2 to 1.1.3 (#2827) (@dependabot[bot])
  • c9e9e21b303578fe01cdc14ab05694786f887cb7: CICD: Bugfix: Changes introduced while tagging new releases cause git problems (#2818) (@tlimoncelli)
  • 2cb4dcfc5a44966aa993cbc3bb510dc6b7b6572f: CICD: Bumps actions/upload-artifact from 3.1.3 to 4.3.0 (#2831) (@cafferata)
  • d1b599b7954ec17957da48a84642d1ad32c62eeb: CICD: GitHub Action check git status (#2817) (@cafferata)
  • f010c1b62644d0b0d7de9aedd1ca55803ff9fc01: CICD: GoReleaser JSON Schema (#2816) (@cafferata)
  • 558d2e8c9ce35d354799f37f752651a38528b9bc: CICD: GoReleaser release footer (#2853) (@cafferata)
  • dbbc9e52a9b1cf35e390882a3f5dd37e755f3f64: CICD: Provide the correct GitHub action contexts (#2842) (@cafferata)
  • fab3172fee1880b7df316706fb76eacd669a60e8: CHORE: Refactor integration tests to support multiple tests (@tlimoncelli)
  • 060e50de4d73f29da308f5ccdc58fe717c9051c8: CHORE: Update dependencies (@tlimoncelli)
  • 46ca50ed16defd1e72b2e5b523dd5d4acf31de63: CHORE: Update dependencies (@tlimoncelli)
  • 68a00bbc2bdba88b1f407cd0a44c0f884fdd2195: DEV: Fix broken DNAME test (#2903) (@tlimoncelli)
  • f5bb6e658b3917d5052e6c96aea11a9cdfa2d5b2: Revert "CHORE: Refactor integration tests to support multiple tests" (@tlimoncelli)
  • 68314ee034f4bb6cac1c47015a87b0e847fd3a69: TESTING: Bug: integration tests ignore 'type' in ignoreTarget (#2867) (@tlimoncelli)

Dependencies:

  • bb3d191efb616b799037828c86c7a2da23772c6f: CHORE: Vendor go-powershell (#2837) (@tlimoncelli)
  • 5e211fcade10d9ecae5013b3545c23396b06f34c: CHORE: Update deps (#2900) (@tlimoncelli)
  • 3057a0b6c498090869dfdaae8013a0f7100cfeba: CHORE: Update deps (@tlimoncelli)
  • 17d644cfc626f9cb4706f877064e673c0c759cef: CHORE: update deps (#2906) (@tlimoncelli)
  • 139cc2826fe2dc27df28c5f32c3aa827fa121d8c: CHORE: Upgrade deps (#2829) (@tlimoncelli)
  • 408a70ec76274e6e69c9e7112ef0d4688aa50a5c: DEV: Adopt go 1.22.1 as minimum compiler version (#2885) (@tlimoncelli)
  • 02b0bedb853de6834420f304a1cefe2e707f4f56: DEV: Upgrade to go 1.22.x (#2882) (@tlimoncelli)
  • c35e0627557bf8b92ac14ad174a9500e914fc05d: Revert NS1 (@tlimoncelli)
  • 2e5d01e66fc14b5ea85121782b0b7be056a5fd82: SECURITY: Fix protobuf security issue (#2875) (@tlimoncelli)
  • 3a84f6cde397f141bdf2b846cd94843a2644a8ff: upgrade deps (#2881) (@tlimoncelli)

Other changes and improvements:

  • dfda97b593df6b97b7fdfc063795a992fa9be009: Remove dead code in WriteTypes (@tlimoncelli)
  • e52ec54453dd2e1689fe0036cfc3feac703503a9: Remove unused CantUseNOPURGE capability (#2877) (@tlimoncelli)
  • 18f7208044d6062d2c573fde0c64383117f488b9: Remove unused t parameter in setupTestShellCompletionCommand (@tlimoncelli)
  • e6c03c098a3a257760232d111316848360ec9764: cleanup: Remove dead code and unused params (@tlimoncelli)
  • ea71a9c3c97c86f0a79ea4bcdfc8e06cf19f62dc: deadcode: CaaTargetHasSemicolon (@tlimoncelli)
  • 798c0d6b9e04079f6e24cfccc3a6524641b106b6: deadcode: Change/ChangeList.String (@tlimoncelli)
  • 4f32ddf132829b58b7cd020fc73b07ea8cc981f8: deadcode: DebugUnmanagedConfig (@tlimoncelli)
  • 0576cec7d83a9ec1c5787beafb98ee8fa1d396c6: deadcode: Errorf (@tlimoncelli)
  • 4d13c0251a5468342079c6a089d4e81c7dcb55b5: deadcode: NewUTF8, utf8.Execute, utf8.Exit (@tlimoncelli)
  • a3dad4d382bc12c64d818f2f8bb861d5d9721f76: deadcode: RRstoRCs (moved) (@tlimoncelli)
  • 951b47d58383874a093018de8d38daf0628a3278: deadcode: SSH.StartProcess, SSH.createCmd, SSH.quote (@tlimoncelli)
  • 28ca119b184bce93785328d37d7720f2b3ccb5e1: deadcode: WriteZoneFileRR (@tlimoncelli)
  • 2ff585d4c5a969178f963b68578171302d79f091: deadcode: dump Print (@tlimoncelli)
  • 80ff81498823d993b07b8b188f56dc9cbfbd40ce: deadcode: groupbyRSet (@tlimoncelli)
  • 34d6e079b2031ddbde035bb820ebb76f194fabf7: deadcode: groupbyRSet (@tlimoncelli)
  • ed999b99bd59b06cae1b660f50fc71cd2147c69d: deadcode: justMsgString (move to test) (@tlimoncelli)
  • c0d8ca7a1840d1d853412cec7dffb00fc36593ff: deadcode: move createTestWorker (@tlimoncelli)
  • ce12d892dfeebb8fd7479cbe06ac93edc56c22f8: deadcode: move sfplib.Lookups to parse_test.go (@tlimoncelli)
  • 1b16cf455f53e3aaa46dc41892101c037a09b19b: deadcode: providers/doh/auditrecords.go (not a DSP) (@tlimoncelli)
  • bdad44f2e8ffd856337aaf4450faa4e6b769835c: deadcode: providers/internetbs/auditrecords.go (not a DSP) (@tlimoncelli)
  • 15f773701719584c6469f6abcc798a18c12f2982: deadcode: providers/opensrs/auditrecords.go (not a DSP) (@tlimoncelli)
  • e4dc7aaf386eb8c1c4d7294a18b1303f268180c1: deadcode: quotedList() keysWithColons() (@tlimoncelli)
  • b1477d35e4c86dbb907416f4c1b262f74546f18e: fix unused params in: pkg/normalize (@tlimoncelli)
  • 30942acee27abdca3315be05d501b7e0798fd6e6: fix unused params in: providers/akamaiedgedns (@tlimoncelli)
  • b1c6ddc5baad5cc7eaed9c386d7bdbf20a841189: fix unused params in: providers/azuredns (@tlimoncelli)
  • e98187e4d74cfc4c65367f30db1e113f4d3db704: fix unused params in: providers/azureprivatedns (@tlimoncelli)
  • e9f119df6e1f69118da602a737ceda76727d0a52: fix unused params in: providers/cscglobal (@tlimoncelli)
  • ad2fb7eb1175edcda868ea3fab7e6ba68563f72e: fix unused params in: providers/desec (@tlimoncelli)
  • 9d9219ea1475bef0b9555031b910cb0327f4bd70: fix unused params in: providers/digitalocean (@tlimoncelli)
  • 4059ef1572fb79328a63b8da2a0baa710e21cd37: fix unused params in: providers/dnsmadeeasy (@tlimoncelli)
  • a2b0970dee6968f82bd64f57e080434d37fd8b14: fix unused params in: providers/doh (@tlimoncelli)
  • 4a1340b97c9296d4fa05f0d395db666f74dc511d: fix unused params in: providers/hexonet (@tlimoncelli)
  • 004dc4d15a177a7d414b71f13b3c8d2200f8c4a5: fix unused params in: providers/hostingde (@tlimoncelli)
  • a51a9f907655d46a4c7fe8bb04034eb7c19d1d57: fix unused params in: providers/oracle (@tlimoncelli)
  • 570ce5e3c07d7e997b35a19eff7f8b7e74dd8164: fix unused params in: providers/packetframe (@tlimoncelli)
  • 454f59f3d6b597d5e457d87e2830741242638bc1: fix unused params in: providers/rwth (@tlimoncelli)
  • e589a8e1fc19a701c36e296a618afa3c18b68f1f: fix unused params in: providers/vultr (@tlimoncelli)
  • dd87f01560d3e7b78fe9b37f779157157d0073bd: gofmt (@tlimoncelli)
  • 51d1c57a8d7397cbc2e6e59793035069fc83f421: remove unused parameters (@tlimoncelli)
  • 3b01dc8b3f4f1e7dd488eb01058fff97194d87d0: unused param t in testPermitted() (@tlimoncelli)
  • c3580b1d1297fa7141c4ff1b25e87e594bdc8b64: unused parameter knownFailures in cfg[], getProvider, runTests (@tlimoncelli)
  • 822a40c4e4b84cd267fceb08690c6fa4cb654fcd: unused params in makeUknown() and formatDsl() (@tlimoncelli)

Deprecation warnings

[!WARNING]

  • REV() will switch from RFC2317 to RFC4183 in v5.0. This is a breaking change. Warnings are output if your configuration is affected. No date has been announced for v5.0. See https://docs.dnscontrol.org/language-reference/top-level-functions/revcompat
  • MSDNS maintainer needed! Without a new volunteer, this DNS provider will lose support after April 2025. See New maintainer for MSDNS needed! StackExchange/dnscontrol#2878
  • NAMEDOTCOM and SOFTLAYER need maintainers! These providers have no maintainer. Maintainers respond to PRs and fix bugs in a timely manner, and try to stay on top of protocol changes.
  • get-certs/ACME support is frozen and will be removed without notice between now and July 2025. It has been unsupported since December 2022. If you don't use this feature, do not start. If you do use this feature, migrate ASAP. See discussion in issues/1400

Install

macOS and Linux

Install with Homebrew (recommended)
brew install dnscontrol
Install with MacPorts
sudo port install dnscontrol
Using with Docker

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

Anywhere else

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

Update to the latest version depends on how you choose to install dnscontrol on your machine.

Update with Homebrew

brew upgrade dnscontrol
Install with MacPorts
sudo port upgrade dnscontrol

Alternatively, you can grab the latest binary (or the apt/rpm/deb package) from this page.

@github-actions github-actions bot added go Go use is a significant feature of the PR or issue bump-formula-pr PR was created using `brew bump-formula-pr` labels Apr 9, 2024
Copy link
Contributor

github-actions bot commented Apr 9, 2024

🤖 An automated task has requested bottles to be published to this PR.

@github-actions github-actions bot added the CI-published-bottle-commits The commits for the built bottles have been pushed to the PR branch. label Apr 9, 2024
@BrewTestBot BrewTestBot added this pull request to the merge queue Apr 9, 2024
Merged via the queue into master with commit a9637d4 Apr 9, 2024
14 checks passed
@BrewTestBot BrewTestBot deleted the bump-dnscontrol-4.9.0 branch April 9, 2024 19:33
@github-actions github-actions bot added the outdated PR was locked due to age label May 9, 2024
@github-actions github-actions bot locked as resolved and limited conversation to collaborators May 9, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
bump-formula-pr PR was created using `brew bump-formula-pr` CI-published-bottle-commits The commits for the built bottles have been pushed to the PR branch. go Go use is a significant feature of the PR or issue outdated PR was locked due to age
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants