Skip to content

v2.4.29

Choose a tag to compare

@pirate pirate released this 01 May 20:57
3ad9fd0

Highlights

This release rolls up everything shipped on main since the last published GitHub release, v2.4.15, through v2.4.29.

  • OpenTelemetry tracing is now much more complete across runtimes. The OTEL middleware work tightened root span parenting, preserved nanosecond timing, aligned Python/TypeScript tracing behavior, added stronger TypeScript coverage, and documented the integration path for both runtimes.
  • Optional integrations and package exports are cleaner. Root imports stay lightweight, peer-backed integrations stay opt-in, TypeScript now supports direct source imports via abxbus/source and abxbus/source/*, and the runtime export surface is better aligned across Python and TypeScript.
  • Cross-runtime metadata/serialization got tighter. Event result serialization, handler naming, handler metadata, and optional export behavior were aligned so forwarded/rehydrated events behave more consistently between Python and TypeScript.
  • Immediate execution docs now cover parallel fan-out. The RPC-style immediate execution page now shows how to combine event_concurrency='parallel' with racing child events in both TypeScript and Python, and the pattern is covered by mirrored regression tests.
  • Python and TypeScript package versions are both bumped to 2.4.29.

Example Snippets

OTEL middleware setup

import { EventBus } from 'abxbus'
import { OtelTracingMiddleware } from 'abxbus/OtelTracingMiddleware'

const bus = new EventBus('AppBus', {
  middlewares: [new OtelTracingMiddleware()],
})

Immediate-execution parallel fan-out

const settled = await Promise.allSettled([
  event.emit(SomeChildEvent1({})).done(),
  event.emit(SomeChildEvent2({})).done(),
  event.emit(SomeChildEvent3({})).done(),
])

The Python equivalent is documented with asyncio.gather(..., return_exceptions=True) in the immediate-execution guide.

Resources

Validation

  • main CI for 3ad9fd0 completed successfully:
    • Dependency Graph
    • Release State
    • pre-commit-hooks
    • test-py
    • test-ts
  • Local packaging/build verification:
    • uv build
    • pnpm run build