|
2 | 2 |
|
3 | 3 | All notable changes to ArchiPy are documented in this changelog, organized by version. |
4 | 4 |
|
| 5 | +## [v4.2.0] - 2026-02-21 |
| 6 | + |
| 7 | +### Added |
| 8 | + |
| 9 | +#### Helpers - Interceptors |
| 10 | + |
| 11 | +- **Metric Interceptors** - Enhanced Prometheus metrics collection across frameworks |
| 12 | + - Implemented `FastAPIMetricInterceptor` for HTTP request metrics with path template support |
| 13 | + - Added `ACTIVE_REQUESTS` gauge metric to both sync and async gRPC interceptors |
| 14 | + - Implemented path template caching in FastAPI interceptor for improved performance |
| 15 | + - Added comprehensive metrics for request duration, status codes, and concurrency tracking |
| 16 | + |
| 17 | +#### Helpers - Utils |
| 18 | + |
| 19 | +- **Prometheus Server Management** - Added server deduplication functionality |
| 20 | + - Implemented `_is_prometheus_server_running()` helper to detect existing Prometheus servers |
| 21 | + - Prevents duplicate Prometheus server starts across FastAPI and gRPC applications |
| 22 | + - Checks port availability before starting Prometheus HTTP server |
| 23 | + |
| 24 | +#### Adapters - Temporal |
| 25 | + |
| 26 | +- **BDD Test Coverage** - Added comprehensive Behave tests for Temporal adapter |
| 27 | + - Implemented persistent event loop per scenario to keep workers alive across steps |
| 28 | + - Added test workflows and activities for various scenarios (greeting, signal/query, timeout, retry) |
| 29 | + - Integrated Temporal container support with dev mode SQLite backend |
| 30 | + - Fixed workflow execution to use `run_async` helper for proper async handling |
| 31 | + |
| 32 | +### Changed |
| 33 | + |
| 34 | +#### Adapters - StarRocks |
| 35 | + |
| 36 | +- **Async Driver Migration** - Improved async database driver support |
| 37 | + - Switched async driver from `aiomysql` to `asyncmy` for better StarRocks compatibility |
| 38 | + - Added `autocommit=False` in connect_args for both sync and async sessions to ensure proper transaction support |
| 39 | + - Implemented `_get_connect_args()` in sync session manager with configurable `connect_timeout` |
| 40 | + - Updated async `_get_connect_args()` with `connect_timeout` (asyncmy only supports connect_timeout) |
| 41 | + - Added `CONNECT_TIMEOUT` default (10s) to `StarRocksSQLAlchemyConfig` for MySQL protocol requirement |
| 42 | + - Upgraded StarRocks test container image from 4.0.4 to 4.0.6 |
| 43 | + - Added automatic test database creation in `StarRocksTestContainer` |
| 44 | + - Added `asyncmy>=0.2.11` dependency to starrocks-async extra |
| 45 | + |
| 46 | +#### Adapters - ScyllaDB |
| 47 | + |
| 48 | +- **Docker Support** - Enhanced ScyllaDB adapter for containerized environments |
| 49 | + - Added address translator for Docker/NAT environments |
| 50 | + - Configured connection pool limits per host |
| 51 | + - Updated test containers and config template |
| 52 | + |
| 53 | +#### Tests |
| 54 | + |
| 55 | +- **Test Structure Improvements** - Enhanced test organization and coverage |
| 56 | + - Converted Redis tests to scenario outlines for both mock and container testing |
| 57 | + - Unified metric interceptor tests with scenario outlines |
| 58 | + - Support for FastAPI, gRPC, and AsyncgRPC in parameterized tests |
| 59 | + - Removed duplicate test scenarios |
| 60 | + |
| 61 | +- **Container Optimization** - Improved test container configuration |
| 62 | + - Optimized Elasticsearch test container memory limits to prevent OOM kills |
| 63 | + - Refactored container tag validation logic in `ContainerManager` |
| 64 | + |
| 65 | +### Fixed |
| 66 | + |
| 67 | +#### Type Safety |
| 68 | + |
| 69 | +- **Ty Compliance** - Resolved all 418 type checker errors |
| 70 | + - Replaced `**kwargs: object` with `**kwargs: Any` across adapters |
| 71 | + - Added `NoReturn` type hints to exception handlers |
| 72 | + - Updated to Pydantic v2 validator signatures |
| 73 | + - Modernized enums to use `StrEnum` |
| 74 | + - Added type casts and None checks for improved type safety |
| 75 | + - All linting checks now pass with zero errors |
| 76 | + |
| 77 | +### Chore |
| 78 | + |
| 79 | +#### Dependencies |
| 80 | + |
| 81 | +- **Core Dependencies** - Updated dependency constraints to match uv.lock versions |
| 82 | + - Updated dependency lock file (pydantic-settings, redis, sentry-sdk, typer, uvicorn, virtualenv, |
| 83 | + pymdown-extensions) |
| 84 | + - Aligned version constraints across all extras and groups |
| 85 | + - Ensured consistency between pyproject.toml and uv.lock |
| 86 | + |
5 | 87 | ## [v4.1.0] - 2026-02-09 |
6 | 88 |
|
7 | 89 | ### Added |
|
0 commit comments