Skip to content

HydraCache 0.61.0

Choose a tag to compare

@github-actions github-actions released this 13 Jul 09:04
· 1026 commits to main since this release

HydraCache 0.61.0

0.61.0 completes the cluster-elasticity and quality slice over the
0.60.0 networked grid hardening release. It closes the remaining TD-0011
late-start daemon join gap, proves the operator replica-to-voter claim in the
kind-gated live path, narrows the chaos-injector claim to honest prerequisites,
and turns the TD-0009 coverage ratchet into a scheduled gate with a clean
post-release baseline.

The release does not introduce a new consensus algorithm. It reuses the shipped
raft-rs runtime and the 0.60.0 dynamic membership path; local/client modes
remain modeled, the embedded fast path stays unchanged, and autoscaling policy,
joint consensus/learners, log compaction, and snapshot catch-up remain outside
this release.

Highlights

  • Added explicit daemon start intent with cluster_start = bootstrap|join,
    restart-safe durable-log precedence, configurable join timeout, and routable
    advertised cluster endpoints for non-loopback deployments.
  • Added a fallible joining runtime path that never fabricates itself into the
    initial voter set. A late-start daemon now announces itself before cache
    startup, folds gossip endpoint hints into raft routing, waits until a leader
    is known and the node is present in the voter set, and fails loud if the
    cluster cannot be joined.
  • Reused the 0.60.0 leader-side voter synchronization for promotion/removal
    instead of adding a second membership mechanism.
  • Hardened the Kubernetes operator scale path: bootstrap replica count is
    preserved once, pod identity is ordinal-aware, advertised endpoints are
    routable, later StatefulSet pods start in join mode, and scale 3->4->3
    moves raft voters through deployed daemons.
  • Added the falsifiable operator contrast that a pod crash does not shrink the
    raft voter set.
  • Narrowed the kind chaos injector honestly: NetworkPolicy partition tests
    require a CNI enforcement probe, and slow-disk IOChaos requires the
    Chaos Mesh CRD. Unsupported local environments skip loud instead of passing
    wrong-but-green.
  • Closed TD-0009 with targeted fast tests, thin-entrypoint documentation, and a
    scheduled cargo llvm-cov --workspace --all-targets --locked --summary-only --fail-under-lines 88 ratchet. The floor is a mechanical CI gate, not a
    numeric self-score.
  • Marked TD-0011 and TD-0009 resolved only after their release gates had
    evidence.

Verification

Focused release gates:

cargo test -p hydracache-cluster-raft --locked
cargo test -p hydracache-server --locked grid_host
cargo test -p hydracache-operator --locked
cargo xtask doc-check
cargo xtask verify

Networked daemon join proof recorded for TD-0011:

$env:HYDRACACHE_RUN_NETWORKED_DAEMON_E2E='1'
cargo test -p hydracache-server --test grid_host multi_node --locked -- --nocapture

Live operator scale proof recorded for TD-0011:

$env:PATH="$env:USERPROFILE\go\bin;$env:PATH"
$env:CARGO_TARGET_DIR='target\td0011-cargo-target'
$env:HYDRACACHE_OPERATOR_KIND='1'
$env:HYDRACACHE_OPERATOR_IMAGE='hydracache-server:td0011-0.61'
$env:HYDRACACHE_OPERATOR_NAMESPACE='default'
$env:HYDRACACHE_OPERATOR_CLUSTER='hydracache-td0011'
cargo test -p hydracache-operator --test e2e kind_ --locked -- --nocapture

Result recorded in TD-0011: 3 passed; 0 failed; finished in 41.08s.

Coverage ratchet gate:

cargo llvm-cov --workspace --all-targets --locked --summary-only --fail-under-lines 88

Clean post-release baseline:

  • Regions: 87.07%
  • Functions: 85.36%
  • Lines: 88.14%

Final release checks:

cargo xtask verify
cargo test --workspace --locked -j 1
powershell -NoProfile -ExecutionPolicy Bypass -File .\scripts\verify-release-readiness.ps1 -Version 0.61.0
powershell -NoProfile -ExecutionPolicy Bypass -File .\scripts\verify-crates-io-consumer.ps1 -Version 0.61.0

cargo xtask verify passed with the management console step skipped because
npm was not available in the local environment.

Scope Boundary

0.61.0 makes the networked grid growable through explicit daemon join and the
operator scale path. It is not an autoscaler, not a replacement for Kubernetes
network policy, and not a claim that all chaos modes are available on every kind
cluster. Network partition evidence requires a NetworkPolicy-enforcing CNI, and
slow-disk evidence requires Chaos Mesh IOChaos.

Release Status

Published as 0.61.0; the workspace crates were released to crates.io in the
documented publish order and the post-publish external consumer check passed
against the crates.io artifacts.