Files
cloudflare_ddns/RELEASE_NOTES_2.1.1.md
Timothy Miller 22320bea79 Release v2.1.1
Fix rand 0.10 compile error (RngExt trait import) and ship version
bump alongside DELETE_ON_FAILURE, proportional jitter, and dependency
refresh changes already merged on master.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-29 18:57:53 -04:00

2.1 KiB

cloudflare-ddns v2.1.1

Maintenance release. Bug fix for rand 0.10 API change, plus opt-in failure-safe deletion behavior contributed in the v2.1.0 → v2.1.1 window, dependency refresh, and proportional jitter for IP detection.

Highlights

  • Fix: Restore the build under rand 0.10 — random_range moved to the RngExt trait, and the unconditional jitter sleep in --repeat mode no longer fails to compile.
  • New: DELETE_ON_FAILURE (env-var mode) controls whether DNS records are removed when an IP detection or update fails. Defaults to true to preserve existing behavior; set DELETE_ON_FAILURE=false to keep stale records on transient failures instead of yanking them.
  • Improvement: Proportional jitter (up to 20% of the update interval) is added before each scheduled update to spread requests across clients and reduce synchronized spikes against the Cloudflare API.

Changes since v2.1.0

Features

  • DELETE_ON_FAILURE env var to prevent DNS record deletion on failed updates (#263, thanks @DMaxter)
  • Proportional jitter on update intervals to desynchronize API traffic (#253, thanks @jhutchings1)

Fixes

  • Compile fix for rand 0.10: import RngExt so random_range resolves
  • delete_on_failure regression test coverage added

Dependencies

  • rustls 0.23.37 → 0.23.40
  • rustls-webpki 0.103.10 → 0.103.13
  • tokio 1.50.0 → 1.52.1
  • reqwest 0.13.2 → 0.13.3
  • rand 0.9.2 → 0.10.1

Docs

  • Document DELETE_ON_FAILURE in the README

Upgrade notes

  • Default behavior unchanged. DELETE_ON_FAILURE defaults to true, matching pre-2.1.1 behavior. Set it to false if you want stale records preserved during outages.
  • No config file schema changes. Existing config.json deployments continue to work without edits.

Docker

docker pull timothyjmiller/cloudflare-ddns:2.1.1
docker pull timothyjmiller/cloudflare-ddns:latest

Multi-arch: linux/amd64, linux/arm64, linux/ppc64le.

Verification

  • cargo test — 352 tests pass
  • Release build succeeds, binary size ~1.7 MiB (pre-UPX)
  • Smoke tested in both legacy config.json mode and env-var mode against the live Cloudflare API