Skip to content

Releases: cokeSchlumpf/lib--python-commons

v1.6.1

Choose a tag to compare

@github-actions github-actions released this 03 Nov 13:46
9b6b983

1.6.1 (2026-11-03)

Highlights

Pluralization of words ending in -is was fixed so they now form correct plurals (e.g. analysis → analyses), which prevents incorrectly derived table names for ORM classes. Tests were added for the pluralize function and for derived entity/history table names. Known apps are unaffected because the only ORM classes ending in -is set tablename explicitly; apps that relied on the old incorrect derived names should pin the name with tablename.

Bug Fixes

  • Fix pluralization of words ending in -is so they become -es (analysis → analyses), preventing derived table names like case_analysises; tests added for pluralize and for derived entity/history table names. (#43) (c147f4b)

v1.6.0

Choose a tag to compare

@github-actions github-actions released this 02 Nov 19:27
0357c26

1.6.0 (2026-11-02)

Features

  • users: user access period and listing users (T-009) (#41) (4cd086a)

v1.5.0

Choose a tag to compare

@github-actions github-actions released this 01 Nov 20:56
e5e76a0

1.5.0 (2026-11-01)

Highlights

Adds NVARCHAR-based Unicode column types used for name and display-name fields on Azure SQL to prevent non-Latin characters being stored as question marks. Existing tables remain VARCHAR until you convert them (no breakage), and the docs include guidance and an ALTER TABLE recipe; tests covering SQL Server, SQLite DDL and a non-Latin-1 round trip were added.

Features

  • database: Unicode text columns on Azure SQL (T-008) (#39) (0efe2cc)

v1.4.0

Choose a tag to compare

@github-actions github-actions released this 01 Nov 19:31
81c7d54

1.4.0 (2026-11-01)

Features

  • storage: list directories and file metadata in Files (5918749)
  • store the user's language and send login mails in it (T-007) (73eebc3)

v1.3.0

Choose a tag to compare

@github-actions github-actions released this 01 Nov 17:01
ce660d0

1.3.0 (2026-11-01)

Features

  • add SMTP sender for login tokens (#32) (6241d29)

v1.2.0

Choose a tag to compare

@github-actions github-actions released this 01 Nov 15:13
e9e6d53

1.2.0 (2026-11-01)

Features

  • Add public_url to AppSettings (T-007) (#27) (ac2391d)
  • Allow hashed passwords and harden scoped role checks (#25) (905f379)

v1.1.0

Choose a tag to compare

@github-actions github-actions released this 01 Nov 09:30
f346318

1.1.0 (2026-11-01)

Highlights

IDs created by commons now use time-ordered UUIDv7 strings via a new public function, new_id(), so primary keys are appended to indexes and carry their creation time. There are no schema or data changes and existing IDs remain valid, but UUIDv7 has fewer random bits so treat IDs-as-secrets with caution before upgrading.

Features

  • Generate time-ordered UUIDv7 ids (#20) (91f7c79)

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.

v0.2.1

Choose a tag to compare

@github-actions github-actions released this 25 Oct 15:24
c997166

0.2.1 (2026-10-25)

Highlights

LoginTokenService gains request_id_for_link(link_token), which returns the request id a login link belongs to without redeeming the link. This lets web apps auto-login when the requesting browser opens the link while keeping single-use links safe from mail scanners; the lookup is read-only and returns None for unknown, redeemed, or expired links.

Bug Fixes

  • Let web apps look up a login link's request without redeeming it (#13) (5b8fe6d)

v0.2.0

Choose a tag to compare

@github-actions github-actions released this 25 Oct 11:17
8891219

0.2.0 (2026-10-25)

Features

  • Add find_user_by_email and get_user_by_email to UsersRepository (#10) (a7a5a31)
  • Add passwordless login with link or code (commons.users.login_tokens) (#12) (4c072b9)