committed by
GitHub
2 changed files with 89 additions and 0 deletions
@ -0,0 +1,87 @@ |
|||
# О версиях FastAPI |
|||
|
|||
**FastAPI** уже используется в продакшене во многих приложениях и системах. Покрытие тестами поддерживается на уровне 100%. Однако его разработка все еще продолжается. |
|||
|
|||
Часто добавляются новые функции, регулярно исправляются баги, код продолжает постоянно совершенствоваться. |
|||
|
|||
По указанным причинам текущие версии до сих пор `0.x.x`. Это говорит о том, что каждая версия может содержать обратно несовместимые изменения, следуя <a href="https://semver.org/" class="external-link" target="_blank">соглашению о Семантическом Версионировании</a>. |
|||
|
|||
Уже сейчас вы можете создавать приложения в продакшене, используя **FastAPI** (и скорее всего так и делаете), главное убедиться в том, что вы используете версию, которая корректно работает с вашим кодом. |
|||
|
|||
## Закрепите вашу версию `fastapi` |
|||
|
|||
Первым делом вам следует "закрепить" конкретную последнюю используемую версию **FastAPI**, которая корректно работает с вашим приложением. |
|||
|
|||
Например, в своём приложении вы используете версию `0.45.0`. |
|||
|
|||
Если вы используете файл `requirements.txt`, вы можете указать версию следующим способом: |
|||
|
|||
```txt |
|||
fastapi==0.45.0 |
|||
``` |
|||
|
|||
это означает, что вы будете использовать именно версию `0.45.0`. |
|||
|
|||
Или вы можете закрепить версию следующим способом: |
|||
|
|||
```txt |
|||
fastapi>=0.45.0,<0.46.0 |
|||
``` |
|||
|
|||
это значит, что вы используете версии `0.45.0` или выше, но меньше чем `0.46.0`. Например, версия `0.45.2` все еще будет подходить. |
|||
|
|||
Если вы используете любой другой инструмент для управления зависимостями, например Poetry, Pipenv или др., у них у всех имеется способ определения специфической версии для ваших пакетов. |
|||
|
|||
## Доступные версии |
|||
|
|||
Вы можете посмотреть доступные версии (например, проверить последнюю на данный момент) в [примечаниях к выпуску](../release-notes.md){.internal-link target=_blank}. |
|||
|
|||
## О версиях |
|||
|
|||
Следуя соглашению о Семантическом Версионировании, любые версии ниже `1.0.0` потенциально могут добавить обратно несовместимые изменения. |
|||
|
|||
FastAPI следует соглашению в том, что любые изменения "ПАТЧ"-версии предназначены для исправления багов и внесения обратно совместимых изменений. |
|||
|
|||
!!! Подсказка |
|||
"ПАТЧ" - это последнее число. Например, в `0.2.3`, ПАТЧ-версия - это `3`. |
|||
|
|||
Итак, вы можете закрепить версию следующим образом: |
|||
|
|||
```txt |
|||
fastapi>=0.45.0,<0.46.0 |
|||
``` |
|||
|
|||
Обратно несовместимые изменения и новые функции добавляются в "МИНОРНЫЕ" версии. |
|||
|
|||
!!! Подсказка |
|||
"МИНОРНАЯ" версия - это число в середине. Например, в `0.2.3` МИНОРНАЯ версия - это `2`. |
|||
|
|||
## Обновление версий FastAPI |
|||
|
|||
Вам следует добавить тесты для вашего приложения. |
|||
|
|||
С помощью **FastAPI** это очень просто (благодаря Starlette), см. документацию: [Тестирование](../tutorial/testing.md){.internal-link target=_blank} |
|||
|
|||
После создания тестов вы можете обновить свою версию **FastAPI** до более новой. После этого следует убедиться, что ваш код работает корректно, запустив тесты. |
|||
|
|||
Если все работает корректно, или после внесения необходимых изменений все ваши тесты проходят, только тогда вы можете закрепить вашу новую версию `fastapi`. |
|||
|
|||
## О Starlette |
|||
|
|||
Не следует закреплять версию `starlette`. |
|||
|
|||
Разные версии **FastAPI** будут использовать более новые версии Starlette. |
|||
|
|||
Так что решение об используемой версии Starlette, вы можете оставить **FastAPI**. |
|||
|
|||
## О Pydantic |
|||
|
|||
Pydantic включает свои собственные тесты для **FastAPI**, так что новые версии Pydantic (выше `1.0.0`) всегда совместимы с FastAPI. |
|||
|
|||
Вы можете закрепить любую версию Pydantic, которая вам подходит, выше `1.0.0` и ниже `2.0.0`. |
|||
|
|||
Например: |
|||
|
|||
```txt |
|||
pydantic>=1.2.0,<2.0.0 |
|||
``` |
Loading…
Reference in new issue