|
| 1 | +--- |
| 2 | +title: "Changelog 4.11.0" |
| 3 | +description: "Release notes for ArchiPy 4.11.0" |
| 4 | +--- |
| 5 | + |
| 6 | +# 4.11.0 — 2026-06-18 |
| 7 | + |
| 8 | +[← 4.10.2](4.10.2.md) | [↑ 4.x series](index.md) |
| 9 | + |
| 10 | +## Added |
| 11 | + |
| 12 | +### Adapters - MinIO |
| 13 | + |
| 14 | +- **Stream Upload and Download** - Added `put_object_stream` and `get_object_stream` to `MinioPort` and |
| 15 | + `MinioAdapter` for in-memory and binary-stream object I/O without temporary files. |
| 16 | + - `put_object_stream` accepts `bytes | BinaryIO`, optional `length`, and `content_type`, and clears the |
| 17 | + `list_objects` cache after upload. |
| 18 | + - `get_object_stream` returns the full object body as `bytes`. |
| 19 | + |
| 20 | +### Models - Internet Payment Gateways |
| 21 | + |
| 22 | +- **Parsian and Saman IPG DTOs** - Extracted payment gateway request/response models into the domain layer. |
| 23 | + - Added `archipy/models/dtos/parsian_ipg_dtos.py` with payment, confirm, confirm-with-amount, and reverse DTOs. |
| 24 | + - Added `archipy/models/dtos/saman_ipg_dtos.py` with payment, verify, and reverse DTOs (including |
| 25 | + `PaymentResponseDTO` status validation). |
| 26 | + |
| 27 | +## Changed |
| 28 | + |
| 29 | +### Adapters - Internet Payment Gateways |
| 30 | + |
| 31 | +- **DTO Import Refactor** - Parsian and Saman Shaparak ports, adapters, and package `__init__` modules now import |
| 32 | + DTOs from `archipy.models.dtos` instead of defining them inline in `ports.py`. |
| 33 | + |
| 34 | +### Chore - Tooling |
| 35 | + |
| 36 | +- **Ruff Source Paths** - Removed unused `[tool.pytest.ini_options]` from `pyproject.toml`, narrowed Ruff `src` to |
| 37 | + `archipy` and `features`, and updated per-file ignores for the `base/sqlalchemy` adapter path. |
| 38 | +- **CI Lint Scope** - Ruff check and format workflows now include `features/steps` and `scripts` alongside `archipy`. |
| 39 | + |
| 40 | +## Tests |
| 41 | + |
| 42 | +### Tests - MinIO Adapter |
| 43 | + |
| 44 | +- **Stream Upload Scenarios** - Extended `features/minio_adapter.feature` with outline scenarios for bytes and |
| 45 | + `BinaryIO` uploads followed by streaming download verification. |
| 46 | +- **Flexible Upload Steps** - Refactored MinIO step definitions to support stream-based uploads via |
| 47 | + `put_object_stream`. |
| 48 | + |
| 49 | +### Tests - FastAPI MinIO Upload |
| 50 | + |
| 51 | +- **Large File End-to-End Uploads** - Added `features/fastapi_minio_upload.feature` and step implementations covering |
| 52 | + 50 MB, 75 MB, and 100 MB multipart uploads through a FastAPI endpoint backed by `put_object_stream`. |
| 53 | + |
| 54 | +## Chore |
| 55 | + |
| 56 | +### Test Containers |
| 57 | + |
| 58 | +- **Image Pin Updates** - Bumped test container images in `.env.test`. |
| 59 | + - Temporal: `temporalio/temporal:1.5.1` → `temporalio/temporal:1.7.2` |
| 60 | + - Redis: `redis:8.6.3-alpine` → `redis:8.6.4-alpine` |
| 61 | + - Keycloak: `keycloak/keycloak:26.6.2` → `keycloak/keycloak:26.6.3` |
| 62 | + - ScyllaDB: `scylladb/scylla:2026.1.2` → `scylladb/scylla:2026.1.5` |
| 63 | + |
| 64 | +## Dependencies |
| 65 | + |
| 66 | +- **Optional extras** - Updated optional adapter and dev dependencies. |
| 67 | + - `fakeredis`: `fakeredis>=2.36.1` → `fakeredis>=2.36.2` |
| 68 | + - `fastapi`: `fastapi[all]>=0.137.0` → `fastapi[all]>=0.137.2` |
| 69 | + - `minio`: `boto3>=1.43.29` → `boto3>=1.43.32` |
| 70 | + - `scylladb`: `scylla-driver>=3.29.10` → `scylla-driver>=3.29.11` |
| 71 | + - `sentry`: `sentry-sdk>=2.62.0` → `sentry-sdk>=2.63.0` |
| 72 | + - `sqlalchemy` / `sqlalchemy-async`: `sqlalchemy>=2.0.50` → `sqlalchemy>=2.0.51` |
| 73 | +- **Dev group** - Updated development tooling pins. |
| 74 | + - `boto3-stubs`: `boto3-stubs>=1.43.14` → `boto3-stubs>=1.43.32` |
| 75 | + - `ruff`: `ruff>=0.15.14` → `ruff>=0.15.17` |
| 76 | + - `ty`: `ty>=0.0.39` → `ty>=0.0.50` |
| 77 | + - `types-grpcio`: `types-grpcio>=1.0.0.20260518` → `types-grpcio>=1.0.0.20260614` |
| 78 | + - `mkdocstrings-python`: `mkdocstrings-python>=2.0.3` → `mkdocstrings-python>=2.0.4` |
0 commit comments