|
2 | 2 |
|
3 | 3 | All notable changes to ArchiPy are documented in this changelog, organized by version. |
4 | 4 |
|
| 5 | +## [v4.0.3] - 2026-01-24 |
| 6 | + |
| 7 | +### Added |
| 8 | + |
| 9 | +#### Tests |
| 10 | + |
| 11 | +- Add PostgreSQL and SQLite support for atomic transaction tests |
| 12 | +- Add Starrocks TestContainer support |
| 13 | + |
| 14 | +### Changed |
| 15 | + |
| 16 | +- Replace Black with Ruff formatter |
| 17 | + |
| 18 | +### Fixed |
| 19 | + |
| 20 | +#### Configs |
| 21 | + |
| 22 | +- Resolve type errors in base_config and keycloak_utils |
| 23 | + |
| 24 | +- Remove reference to non-existent error_message_types module |
| 25 | + |
| 26 | +### Chore |
| 27 | + |
| 28 | +#### Configs |
| 29 | + |
| 30 | +- Configure Ruff to respect pyproject.toml in CI lint workflow |
| 31 | + |
| 32 | +- Apply Ruff formatting fixes |
| 33 | +- Merge branch 'master' of github.com:SyntaxArc/ArchiPy |
| 34 | +- Merge pull request #102 from SyntaxArc/dependabot/github_actions/actions/cache-5 |
| 35 | +- Update dependencies |
| 36 | + |
| 37 | +### CI |
| 38 | + |
| 39 | +- Bump actions/cache from 4 to 5 |
| 40 | +- Refactor ty workflow |
| 41 | +- Separate ruff and ty linting into dedicated workflows |
| 42 | + |
5 | 43 | ## [v4.0.2] - 2025-12-11 |
6 | 44 |
|
7 | 45 | ### Changed |
8 | 46 |
|
9 | 47 | #### Development Tools |
10 | 48 |
|
11 | | -- Broadened Ruff configuration (additional ignores, per-file overrides, relaxed limits) and expanded type-checking/lint sections for optional dependency handling (lazy imports, optional extras). |
12 | | -- Raised Pylint branch/statement limits to accommodate complex decorator and interceptor flows; added explicit flake8 config blocks for comprehensions, errmsg, type-checking, and unused-arguments. |
| 49 | +- Broadened Ruff configuration (additional ignores, per-file overrides, relaxed limits) and expanded type-checking/lint |
| 50 | + sections for optional dependency handling (lazy imports, optional extras). |
| 51 | +- Raised Pylint branch/statement limits to accommodate complex decorator and interceptor flows; added explicit flake8 |
| 52 | + config blocks for comprehensions, errmsg, type-checking, and unused-arguments. |
13 | 53 |
|
14 | 54 | #### Adapters |
15 | 55 |
|
16 | | -- SQLAlchemy base adapters: tightened filtering/exception handling helpers and optional dependency guards in session managers. |
17 | | -- Email/Kafka/ScyllaDB/Temporal adapters: improved lazy import behavior, tracing hooks, and error handling consistency to match optional extras. |
| 56 | +- SQLAlchemy base adapters: tightened filtering/exception handling helpers and optional dependency guards in session |
| 57 | + managers. |
| 58 | +- Email/Kafka/ScyllaDB/Temporal adapters: improved lazy import behavior, tracing hooks, and error handling consistency |
| 59 | + to match optional extras. |
18 | 60 |
|
19 | 61 | #### Helpers |
20 | 62 |
|
21 | | -- Decorators (cache/retry/timing/tracing/sqlalchemy_atomic): clarified lazy-import paths, kept TYPE_CHECKING stubs, and aligned __getattr__ caching. |
22 | | -- gRPC interceptors (trace/metric, client/server): better Sentry span management, traceparent propagation, and guard rails when APM extras are disabled. |
23 | | -- Utility helpers (app/error/file/keycloak): safer optional imports for HTTP/gRPC/Keycloak, clearer exception logging, and minor robustness fixes. |
| 63 | +- Decorators (cache/retry/timing/tracing/sqlalchemy_atomic): clarified lazy-import paths, kept TYPE_CHECKING stubs, and |
| 64 | + aligned __getattr__ caching. |
| 65 | +- gRPC interceptors (trace/metric, client/server): better Sentry span management, traceparent propagation, and guard |
| 66 | + rails when APM extras are disabled. |
| 67 | +- Utility helpers (app/error/file/keycloak): safer optional imports for HTTP/gRPC/Keycloak, clearer exception logging, |
| 68 | + and minor robustness fixes. |
24 | 69 |
|
25 | 70 | #### Testing |
26 | 71 |
|
27 | | -- BDD updates for cache decorator (TTL, clearing, bound method identity), Elastic adapter, Keycloak adapter, ScyllaDB adapter, and error utils to match revised behaviors and lazy-import handling. |
| 72 | +- BDD updates for cache decorator (TTL, clearing, bound method identity), Elastic adapter, Keycloak adapter, ScyllaDB |
| 73 | + adapter, and error utils to match revised behaviors and lazy-import handling. |
28 | 74 |
|
29 | 75 | #### Dependencies |
30 | 76 |
|
@@ -93,7 +139,8 @@ All notable changes to ArchiPy are documented in this changelog, organized by ve |
93 | 139 |
|
94 | 140 | #### Models - Errors |
95 | 141 |
|
96 | | -- **Error System Migration to T-Strings** - Refactored error system to use t-string template formatting with inline context variables |
| 142 | +- **Error System Migration to T-Strings** - Refactored error system to use t-string template formatting with inline |
| 143 | + context variables |
97 | 144 | - Removed `ErrorDetailDTO` and `ErrorMessageType` dependencies |
98 | 145 | - Added class attributes (`code`, `message_en`, `message_fa`, `http_status`, `grpc_status`) to `BaseError` |
99 | 146 | - Implemented t-string template formatting with context variables in error messages |
@@ -126,15 +173,18 @@ All notable changes to ArchiPy are documented in this changelog, organized by ve |
126 | 173 |
|
127 | 174 | #### Helpers - Decorators |
128 | 175 |
|
129 | | -- **Lazy Import for SQLAlchemy Decorators** - Changed SQLAlchemy decorators to use lazy imports via `__getattr__` in `archipy.helpers.decorators` |
| 176 | +- **Lazy Import for SQLAlchemy Decorators** - Changed SQLAlchemy decorators to use lazy imports via `__getattr__` in |
| 177 | + `archipy.helpers.decorators` |
130 | 178 | - SQLAlchemy decorators are now only imported when actually accessed, not at module import time |
131 | | - - Prevents SQLAlchemy from being required when using archipy without the `sqlalchemy` extra (e.g., `archipy[scylladb]`) |
| 179 | + - Prevents SQLAlchemy from being required when using archipy without the `sqlalchemy` extra (e.g., |
| 180 | + `archipy[scylladb]`) |
132 | 181 | - Provides better error messages when SQLAlchemy decorators are accessed without the sqlalchemy extra installed |
133 | 182 | - Maintains full IDE support through type stubs using `TYPE_CHECKING` |
134 | 183 |
|
135 | 184 | #### Adapters - Temporal |
136 | 185 |
|
137 | | -- **Lazy Import for SQLAlchemy Decorators** - Updated `AtomicActivity` class to use lazy imports for SQLAlchemy atomic decorators |
| 186 | +- **Lazy Import for SQLAlchemy Decorators** - Updated `AtomicActivity` class to use lazy imports for SQLAlchemy atomic |
| 187 | + decorators |
138 | 188 | - Moved SQLAlchemy decorator imports from module level to method level in `_get_atomic_decorator()` |
139 | 189 | - Prevents SQLAlchemy from being required when using Temporal adapters without the sqlalchemy extra |
140 | 190 | - Improves modularity and allows using Temporal features independently of SQLAlchemy |
@@ -344,7 +394,8 @@ All notable changes to ArchiPy are documented in this changelog, organized by ve |
344 | 394 |
|
345 | 395 | #### Redis Configuration |
346 | 396 |
|
347 | | -- **Removed Invalid Retry on Timeout Configuration** - Fixed Redis adapter configuration by removing unsupported parameter |
| 397 | +- **Removed Invalid Retry on Timeout Configuration** - Fixed Redis adapter configuration by removing unsupported |
| 398 | + parameter |
348 | 399 | - Removed `RETRY_ON_TIMEOUT` field from `RedisConfig` class as it does not exist in Redis cluster configuration |
349 | 400 | - Removed `retry_on_timeout` parameter from both synchronous and asynchronous Redis adapter initialization |
350 | 401 | - Resolves configuration errors when using Redis cluster mode with invalid parameters |
|
0 commit comments