Repository navigation
v1.0.0
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
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 portsOutbox,HasOutbox,EventPublisher,EventSubscriber,EventConsumer.SqlOutbox, on the tableoutbox_events.OutboxRelay,LogBrokerwithInMemoryEventLogandFileEventLog,BackgroundWorkers,CommitNotifyingUnitOfWorkFactory.EventsSettings([app.events]) andbackground_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 needscore--devops-workflows1.0.2 (Poetry 2.5.1). - Docs: new pages "Events" and "Live streams".
The code comes from lib--conversations, with its behavior and tests.
- Intent: changes/03--closed/T-001--event-patterns/intent.md
- Spec and outcome: changes/03--closed/T-001--event-patterns/spec.md
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:
- Raise the project's
requires-pythonto>=3.14, <4.0. - Reference
commonsonbranch = "versions/1". - If CI uses the shared
python-check.yml/python-docs.yml, passpython-version: "3.14". Theirversions/1already 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.