История изменений¶
Здесь описаны все заметные изменения проекта.
Формат основан на Keep a Changelog, проект придерживается семантического версионирования.
0.4.1 — 2026-07-29¶
Функциональных изменений нет: библиотека ведёт себя ровно так же, как в 0.4.0.
Изменено¶
- Docstrings публичного API существенно расширены — теперь в них описаны правила
разрешения
until, однократность сборки и диагностика ошибок; именно их показывает IDE при наведении. На них же построен новый авто-генерируемый справочник API. - Метаданные пакета: заполнены
keywords,Homepageпереведён с репозитория на сайт документации, добавлены ссылкиIssuesиChangelog. - Ограничение сборочного бэкенда расширено до
uv_build>=0.8.3,<0.12.0.
0.4.0 — 2026-07-07¶
Добавлено¶
- WebSocket-роуты версионируются наравне с HTTP:
APIWebSocketRouteнаследуется между версиями с той же семантикойuntil, а затенение стало видозависимым — HTTP-роут и WebSocket на одном пути больше не конфликтуют. - Валидация
api_versionиuntil. Значениеapi_versionне типаint(илиbool) иuntilменьше версии объявления теперь приводят кUserWarning, а не отрабатывают молча. API_VERSION_KEYэкспортируется из корня пакета.
Изменено¶
- Ломающее. Middleware переписан как чистый ASGI-middleware (без
BaseHTTPMiddleware) и строит наследование ровно один раз — при первом ASGI-событии. Роуты и версии, добавленные позже, требуют явного вызоваrebuild_versioning(app), ставшего публичным. - Ломающее. Каждая наследующая версия получает собственную копию роута с
dependency_overrides, привязанными к целевому приложению, вместо общего объекта роута на все версии. - Ломающее. Метаданные версии хранятся по роутам в реестре на версионном субприложении, а не через мутацию общего экземпляра зависимости. Роутер, включённый в несколько версий, теперь разрешается корректно.
- Прекращена поддержка Python 3.9; поддерживаемый диапазон — 3.10–3.14.
Исправлено¶
- Поддержан FastAPI 0.137+: обход роутов идёт через публичный итератор
iter_route_contextsнового дерева роутинга, поэтому эндпоинты, добавленные черезinclude_router, версионируются вместе с include-префиксами и зависимостями. Версии0.137.0и0.137.1исключены на уровне зависимости — дерево там уже появилось, а публичный итератор только в0.137.2. - Версия
0считается допустимой (явные проверки наNoneвместо проверки на истинность). - Приложение, не монтирующее ни одного версионного субприложения, корректно ничего не делает вместо ошибки.
0.3.0 — 2026-07-07¶
Добавлено¶
- Поддержка Python 3.14.
0.2.0 — 2025-10-16¶
Добавлено¶
- Флаг
rebuild_openapiуVersioningMiddleware. Со значениемFalseэндпоинты по-прежнему наследуются и обслуживаются, но унаследованные не попадают в OpenAPI-схему и/docsверсии.
0.1.0 — 2025-07-27¶
Добавлено¶
- Первый релиз:
VersioningMiddlewareи зависимостьversioning()— одно FastAPI-субприложение на версию, наследование помеченных эндпоинтов из старых версий в новые и перестройка OpenAPI-схемы каждой версии.