Skip to content

v1.0.0

Choose a tag to compare

@github-actions github-actions released this 31 Oct 21:20
1937ede

1.0.0 (2026-10-31)

Highlights

This release introduces two reusable event packages — commons.events (transactional outbox, at-least-once delivery) and commons.streams (short-lived live streams, at-most-once delivery) — allowing apps and libraries to share outbox, relay, background workers and live-streams backends. Event IDs are time-ordered UUIDv7 and the package now requires Python 3.14. See the Migration section for upgrade steps.

⚠ BREAKING CHANGES

  • Add event patterns and require Python 3.14 (#18)

Features

  • Add event patterns and require Python 3.14 (#18) (5c65d46)

Pull requests

#18: feat!: Add event patterns and require Python 3.14

Adds two event patterns to commons as reusable packages. Until now app--beleglotse and lib--conversations each had their own copy. An app and the libraries it uses can now share one outbox, one relay, one set of background workers and one live-streams backend. Event ids are time-ordered UUIDv7 from the standard library, so commons now requires Python 3.14.

  • commons.events: the transactional outbox, delivered at least once.
    • Event, EventEnvelope, and the ports Outbox, HasOutbox, EventPublisher, EventSubscriber, EventConsumer.
    • SqlOutbox, on the table outbox_events.
    • OutboxRelay, LogBroker with InMemoryEventLog and FileEventLog, BackgroundWorkers, CommitNotifyingUnitOfWorkFactory.
    • EventsSettings ([app.events]) and background_workers_from_settings.
  • commons.streams: short-lived live streams, delivered at most once: LiveStreams, InMemoryLiveStreams, TypedLiveStreams, Codec, PydanticCodec.
  • Python 3.14: requires-python = ">=3.14, <4.0", and the check and docs workflows run on 3.14. This needs core--devops-workflows 1.0.2 (Poetry 2.5.1).
  • Docs: new pages "Events" and "Live streams".

The code comes from lib--conversations, with its behavior and tests.

Migration

commons 1.0.0 requires Python 3.14 and is released on versions/1. versions/0 stays at 0.2.1 for projects on older Python. To move:

  1. Raise the project's requires-python to >=3.14, <4.0.
  2. Reference commons on branch = "versions/1".
  3. If CI uses the shared python-check.yml/python-docs.yml, pass python-version: "3.14". Their versions/1 already uses Poetry 2.5.1.

Nothing else in the public API changed.

After merging

Merge the Release PR (1.0.0). Then migrate lib--conversations (its T-008) and app--beleglotse to commons.events/commons.streams in their own repositories.