Skip to content

v0.8.1-alpha

This alpha patch release packages the fixes landed in PR #37 after v0.8.0-alpha.

Use it if you run campaign baselines or the circle-packing example campaign.

Highlights

  • Campaign baseline persistence no longer adds a new CampaignBaseline row to the session before all required fields are populated. This avoids autoflush failures when projection queries run during baseline persistence.
  • The circle-packing example submodule now includes a Loreley campaign program for the pack_circles(n=26) benchmark, with explicit metric, scope, budget, and correctness-gate metadata.
  • CI now checks out submodules recursively, so submodule-backed tests exercise the same files that the example campaign expects.
  • The local PostgreSQL 18 Compose setup now uses the versioned data directory expected by the image.

Upgrade Notes

No database migration required

This release does not change the Loreley database schema or instance metadata version.

PostgreSQL 18 local volumes

The Compose file now sets PGDATA=/var/lib/postgresql/18/docker and mounts the named volume at /var/lib/postgresql. If your local Compose database was created with the older disposable layout, run:

docker compose down -v
docker compose up -d postgres redis

Do this only for disposable local data; docker compose down -v removes the local database volume.

Circle-packing submodule

When using the circle-packing example from a fresh checkout, initialize submodules before running the example tests or campaign:

git submodule update --init --recursive

Fixes

  • New baseline rows are now inserted only after projection persistence has finished and the row has complete source-of-truth fields.
  • Failed or degraded same-key baseline rows can still be reused or force-rerun without creating duplicate incomplete rows.
  • The circle-packing report command now records a missing optional historical_best reference as status: missing instead of failing the whole report. Required references, including current_best, still fail loudly when unavailable.
  • Missing optional reference errors in generated reports are sanitized so local filesystem paths are not emitted.
  • PostgreSQL 18 docker compose up no longer fails because the named volume is mounted at the image's legacy data path.

Validation

  • Local release validation: 687 passed, 4 skipped in 15.38s.
  • Documentation build: uv run --with mkdocs-material mkdocs build --strict.
  • CI tests and Cremona checks passed on PR #37 head 6f10d3d.
  • Local PR validation included uv run pytest, targeted baseline/campaign tests, docker compose config, PostgreSQL/Redis startup health checks, a circle-packing scheduler smoke substitute, and a circle-packing report smoke.
  • Fix campaign baseline persistence so new rows are complete before flush or autoflush.
  • Add the circle-packing Loreley campaign program and make CI/test coverage submodule-aware.
  • Harden circle-packing reports around optional historical references and fix PostgreSQL 18 local Compose startup.