Releases: ArchiveBox/abxbus
Releases · ArchiveBox/abxbus
2.5.17
2.5.16
Full Changelog: 2.5.15...2.5.16
2.5.15
Full Changelog: 2.5.14...2.5.15
2.5.14
Full Changelog: 2.5.13...2.5.14
2.5.13
Full Changelog: 2.5.12...2.5.13
2.5.12
Full Changelog: 2.5.11...2.5.12
2.5.11
v2.5.5
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/uitree. - 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-filescargo 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
mainfor Release State, pre-commit-hooks, test-py, test-go, test-ts, and test-rust
v2.5.4
Highlights
- Re-rooted the Go module at
github.com/ArchiveBox/abxbus/v2so Go consumers can use the normal repository tags instead of Go-onlyabxbus-go/...tags. - Kept the Go package import path as
github.com/ArchiveBox/abxbus/v2/abxbus-goand 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-filesgo test ./...uv buildpnpm --dir abxbus-ts buildcargo build --manifest-path abxbus-rust/Cargo.toml --all-features
v2.5.3
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. retrynow 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
retrynow supports decorator and closure usage. The same retry implementation works asretry(...)(fn), as a standard TypeScript method decorator, and as a legacyexperimentalDecoratorsmethod 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
EventBusor 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 isabxbuswhile the repository directory remainsabxbus-rust; docs and examples were updated accordingly. - Retry docs were refreshed. The docs now show Python decorators, TypeScript closure wrappers, TypeScript
@retry(...)decorators, Rustabxbus::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-> passeduv run ruff check tests/test_eventbus_locking.py abxbus/retry.py abxbus/__init__.py-> passeduv run pytest-> 573 passed, 5 warningspnpm --dir abxbus-ts run typecheck-> passedpnpm --dir abxbus-ts exec eslint src/retry.ts tests/EventBus_locking.test.ts-> passedpnpm --dir abxbus-ts test-> 563 passed- TypeScript legacy decorator compile check with
--experimentalDecorators-> passed cargo fmt --all --check && cargo test-> passedpnpm --dir abxbus-ts run build-> passeduv build-> builtabxbus-2.5.3sdist and wheelcargo 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