Skip to content

Releases: oxia-db/oxia-client-python

v0.2.1

16 Apr 04:08
ff5d731

Choose a tag to compare

What's changed

  • PyPI metadata — the full README now renders on the PyPI page, with classifiers, license, and project URLs (#28)
  • Docs publishing — switched from expired personal token to SSH deploy key, matching the Java SDK (#27)

Full Changelog: v0.2.0...v0.2.1

v0.2.0

16 Apr 03:39
f332fbd

Choose a tag to compare

What's new

Session management

  • Keepalives and safe session recreation — sessions now send periodic heartbeats and automatically recreate if expired (#7)

Correctness fixes

  • Notifications reconnect after stream failure — rewrote the Notifications subsystem with a coordinator thread that detects worker failures and reconnects from the last-seen offset (#14)
  • Notifications.close() deadlock — close no longer joins worker threads while holding the lock (#13)
  • ConnectionPool thread-safety — concurrent get() calls no longer create duplicate gRPC channels (#15)
  • SequenceUpdatesImpl inherits SequenceUpdates ABC — fixes the broken type contract (#16)
  • _check_status raises on unknown statuses — previously fell through silently, risking silent data loss (#17)
  • ServiceDiscovery init timeout — raises RuntimeError with context instead of a confusing BrokenBarrierError (#18)
  • put() value type validation — rejects non-str/non-bytes values with a clear TypeError instead of erroring deep in protobuf (#19)
  • raise KeyNotFound() consistency — class-raise changed to instance-raise (#19)

Quality improvements

  • Client is now a context managerwith oxia.Client(...) as c: (#23)
  • Return type annotations fixed-> (str, Version) corrected to -> tuple[str, Version]; value type corrected from str to bytes (#21)
  • put() type hint — parameter changed from object to str | bytes (#22)
  • print() replaced with logging in service_discovery and sequence_updates (#20)
  • Authors field — pyproject.toml now says "The Oxia Authors" matching all source headers (#24)
  • Docstrings — comprehensive pass over all public API docs: fixed incorrect @raises, wrong types, typos, added context manager example (#26)

Testing

  • 13 new tests covering compare edge cases, hierarchical sort consistency, SessionNotFound, ephemeral lifecycle, secondary-index EQUAL lookups, session timeout boundaries, and more (#8)
  • Code coverage — added pytest-cov to CI with XML artifact upload, 90% fail-under threshold (#9)
  • Test warnings eliminated — fixed logging format bug in notifications, filtered testcontainers deprecation (#10)

CI & compatibility

  • Python 3.10 through 3.14 — CI matrix now tests all five versions; requires-python lowered from >=3.13 to >=3.10 (#11)

Documentation

  • README rewritten — install instructions, quick-start snippet, feature list, fixed badges and broken links (#25)
  • CONTRIBUTING rewritten — Python-specific dev setup (uv, Docker, pytest), DCO sign-off docs, fixed "golang project" references (#25)

Full Changelog: v0.1.1...v0.2.0

v0.1.1

05 Oct 16:36

Choose a tag to compare

Full Changelog: v0.1.0...v0.1.1

v0.1.0 - First test release

04 Oct 19:46

Choose a tag to compare

Added workflow to publish on PyPI