Skip to content

chore: missing 0.4.9 changelog, de-flake timing tests, small cleanups - #357

Merged
kacy merged 1 commit into
mainfrom
cleanup/changelog-deflake
Jul 3, 2026
Merged

chore: missing 0.4.9 changelog, de-flake timing tests, small cleanups#357
kacy merged 1 commit into
mainfrom
cleanup/changelog-deflake

Conversation

@kacy

@kacy kacy commented Jul 3, 2026

Copy link
Copy Markdown
Owner

Part 3 of a 5-PR cleanup series from a full-codebase audit.

What

  • CHANGELOG: adds the missing 0.4.9 entry (the tag shipped with no changelog; the release spanned 58 commits) and corrects the 0.4.8 line claiming concurrent mode was removed — it wasn't; the mode still exists behind --concurrent (a follow-up PR deprecates it explicitly).
  • De-flake blocking tests (shard/blocking.rs): two tests slept 50ms then asserted try_recv() succeeded — a starved CI runner fails that. They now recv() under a 5s timeout: event-driven, faster in the common case, and only fails on a genuine hang. The other timing tests in core were audited and left alone deliberately — they assert in the flake-safe direction (extra delay only makes an expired key more expired).
  • Persistence shutdown-flush test: the 50ms wait raced the asynchronous final AOF sync after handle drop; widened to 500ms.
  • Small cleanups: MSETNX's defensive arity error now uses the parser's canonical message format; sorted set mutations debug_assert the score-map/sorted-vec invariant that its internal unwrap()s rely on.

Verification

  • cargo test -p emberkv-core (597) and -p ember-server --features protobuf,grpc (143) pass; clippy -D warnings clean; cargo fmt applied.
  • Grepped for tests depending on the old MSETNX message: none.

…at cleanup

- CHANGELOG: add the missing 0.4.9 entry (v0.4.8..v0.4.9 spanned 58
  commits including bitmap commands, LMPOP/ZMPOP, keyspace
  notifications, the ts client, and 39 new grpc rpcs but was never
  recorded); correct the 0.4.8 claim that concurrent mode was removed —
  the mode still exists behind --concurrent
- blocking tests: replace sleep-then-try_recv with recv under a
  generous timeout so a starved runner can't flake blpop/brpop tests
- persistence test: widen the post-shutdown flush wait (the final AOF
  sync runs asynchronously in the shard task after the handle drops)
- MSETNX defensive arity error now matches the parser's canonical
  WrongArity format
- sorted set: debug_assert that the score map and sorted vec stay in
  lockstep at mutation entry points
@kacy
kacy merged commit 1adc952 into main Jul 3, 2026
11 of 12 checks passed
@kacy
kacy deleted the cleanup/changelog-deflake branch July 3, 2026 16:51
kacy added a commit that referenced this pull request Jul 3, 2026
…at cleanup (#357)

- CHANGELOG: add the missing 0.4.9 entry (v0.4.8..v0.4.9 spanned 58
  commits including bitmap commands, LMPOP/ZMPOP, keyspace
  notifications, the ts client, and 39 new grpc rpcs but was never
  recorded); correct the 0.4.8 claim that concurrent mode was removed —
  the mode still exists behind --concurrent
- blocking tests: replace sleep-then-try_recv with recv under a
  generous timeout so a starved runner can't flake blpop/brpop tests
- persistence test: widen the post-shutdown flush wait (the final AOF
  sync runs asynchronously in the shard task after the handle drops)
- MSETNX defensive arity error now matches the parser's canonical
  WrongArity format
- sorted set: debug_assert that the score map and sorted vec stay in
  lockstep at mutation entry points
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant