Skip to content

5.0.6 — 2026-09-01

← 5.0.7 | 5.0.5 → | ↑ 5.x series

Changed

Chore - Linting

  • Empty Global Ruff Ignore List - Removed blanket lint.ignore entries and fixed the underlying findings instead of suppressing them.
    • Cleared global ignores for BLE001, D100, D104, E501, PERF203, PLR0913, PLR0917, RUF003, SIM102, and TRY301
    • Pruned stale or unused per-file ignores; kept narrow exceptions for ports, optional-dep lazy imports, FastAPI Depends, and intentional Unicode comments
    • Registered BaseDTO in Ruff runtime-evaluated-base-classes for type-checking import rules

Adapters - Exception Boundaries

  • Library-Specific Exception Mapping - Narrowed broad except Exception handlers at adapter boundaries to concrete client/driver errors where the failure surface is known.
    • Kafka, MinIO, SQLAlchemy, ScyllaDB, Email, and Vault catch typed exception tuples and re-raise domain errors
    • Soft-fail authz, worker lifecycle, and repr() boundaries keep documented # noqa: BLE001 where unconstrained raises remain

Models / Adapters / Helpers - Documentation

  • Module And Package Docstrings - Added concise Google-style module and package docstrings across archipy/ to satisfy D100/D104 without global suppression.

Fixed

Tests - Elasticsearch

  • Testcontainer OOM On Startup - Elasticsearch BDD containers were OOM-killed (exit 137) under default JVM heap.
    • Set ES_JAVA_OPTS=-Xms512m -Xmx512m and discovery.type=single-node on ElasticsearchTestContainer
    • Confirmed features/elastic_adapter.feature passes (17 scenarios) after the heap cap