Skip to content

Releases: ArchiveBox/abxbus

2.5.17

18 Jun 00:23

Choose a tag to compare

2.5.16

18 Jun 00:13

Choose a tag to compare

Full Changelog: 2.5.15...2.5.16

2.5.15

18 Jun 00:07
fad4072

Choose a tag to compare

Full Changelog: 2.5.14...2.5.15

2.5.14

15 Jun 04:04

Choose a tag to compare

Full Changelog: 2.5.13...2.5.14

2.5.13

15 Jun 02:30

Choose a tag to compare

Full Changelog: 2.5.12...2.5.13

2.5.12

14 Jun 19:11

Choose a tag to compare

Full Changelog: 2.5.11...2.5.12

2.5.11

14 Jun 18:57
1f4f624

Choose a tag to compare

What's Changed

  • Expose typed event schema fields by @pirate in #27

Full Changelog: v2.5.5...2.5.11

v2.5.5

17 May 03:22
6985ac6

Choose a tag to compare

Highlights

  • Bumped Python, TypeScript, Rust, and Go package versions together to 2.5.5.
  • Kept core dependencies lean: removed aiofiles, anyio, and FastAPI/Starlette hard dependency paths from the Python package, leaving bridge/middleware integrations optional.
  • Removed the stale examples/ui tree.
  • Fixed Rust handler-context scheduling so awaited global-serial cross-bus children deterministically queue-jump ahead of queued events without blocking independent bus-serial queues.
  • Tightened Rust tests that were relying on scheduler timing so the suite does not pass by luck.

Validation

  • uv run prek run --all-files
  • cargo test --locked --manifest-path abxbus-rust/Cargo.toml --all-features
  • 200x cargo test --locked --manifest-path abxbus-rust/Cargo.toml --all-features --test test_eventbus_locking test_global_serial_awaited_child_jumps_ahead_of_queued_events_across_buses
  • GitHub Actions green on main for Release State, pre-commit-hooks, test-py, test-go, test-ts, and test-rust

v2.5.4

16 May 21:59
66c2ece

Choose a tag to compare

Highlights

  • Re-rooted the Go module at github.com/ArchiveBox/abxbus/v2 so Go consumers can use the normal repository tags instead of Go-only abxbus-go/... tags.
  • Kept the Go package import path as github.com/ArchiveBox/abxbus/v2/abxbus-go and updated Go tests, workflows, and docs to match.
  • Bumped Python, TypeScript, Rust, and Go versions together to 2.5.4.
  • Preserved the optional-integration dependency boundary: the Go core module still requires only github.com/google/uuid, and OTEL/bridge dependencies remain outside required deps.

Validation

  • uv run prek run --all-files
  • go test ./...
  • uv build
  • pnpm --dir abxbus-ts build
  • cargo build --manifest-path abxbus-rust/Cargo.toml --all-features

v2.5.3

16 May 21:32
13ed2c1

Choose a tag to compare

Highlights

This release brings the Python, TypeScript, Rust, and Go package version metadata into sync at 2.5.3 and rolls up the retry parity work that landed since v2.5.0. It also fixes the release packaging so optional middleware and bridge integrations do not become hard dependencies.

  • Optional integration packages are not hard dependencies. OpenTelemetry and bridge-specific packages stay out of required package dependencies. The Go core module now depends only on github.com/google/uuid; OTEL is not required by default. TypeScript keeps OTEL/bridge packages as optional peers, and Python keeps bridge packages in extras/lazy imports.
  • retry now preserves sync functions instead of forcing async wrappers. Python and TypeScript retry wrappers auto-detect sync callables, return synchronously, and block synchronously for retry sleeps and semaphore waits while preserving the existing async behavior.
  • TypeScript retry now supports decorator and closure usage. The same retry implementation works as retry(...)(fn), as a standard TypeScript method decorator, and as a legacy experimentalDecorators method decorator while keeping the wrapped method signature and return type intact.
  • Rust now has first-class retry support. abxbus::retry! supports sync and async free functions and methods with retry/backoff, per-attempt timeout, retry predicates, semaphore limits, semaphore scopes, and multiprocess semaphore coordination.
  • Retry remains standalone across runtimes. The retry modules are documented and tested as usable without creating an EventBus or depending on bus state.
  • Sync and async retry coverage was expanded across languages. Python, TypeScript, and Rust now have mirrored sync/async tests for retry attempts, backoff, error filtering, timeouts, semaphore behavior, reentrancy, multiprocess locking, standalone usage, and method/function wrapping.
  • Rust crate imports now use abxbus. The Rust crate package name is abxbus while the repository directory remains abxbus-rust; docs and examples were updated accordingly.
  • Retry docs were refreshed. The docs now show Python decorators, TypeScript closure wrappers, TypeScript @retry(...) decorators, Rust abxbus::retry!, and the supported sync/async callable forms for functions, methods, lambdas, and arrow functions where each language supports them.

Validation

Local checks run before publishing:

  • uv run pyright tests/test_eventbus_locking.py abxbus/retry.py -> passed
  • uv run ruff check tests/test_eventbus_locking.py abxbus/retry.py abxbus/__init__.py -> passed
  • uv run pytest -> 573 passed, 5 warnings
  • pnpm --dir abxbus-ts run typecheck -> passed
  • pnpm --dir abxbus-ts exec eslint src/retry.ts tests/EventBus_locking.test.ts -> passed
  • pnpm --dir abxbus-ts test -> 563 passed
  • TypeScript legacy decorator compile check with --experimentalDecorators -> passed
  • cargo fmt --all --check && cargo test -> passed
  • pnpm --dir abxbus-ts run build -> passed
  • uv build -> built abxbus-2.5.3 sdist and wheel
  • cargo build --manifest-path abxbus-rust/Cargo.toml -> passed
  • (cd abxbus-go && go test ./...) -> passed after removing OTEL from hard deps
  • Dependency manifest checks confirm no OTEL/bridge packages in Python, TypeScript, Rust, or Go required dependencies

Compare

Full compare: v2.5.0...v2.5.3