|
| 1 | +#Acerca de las versiones de FastAPI |
| 2 | + |
| 3 | +**FastAPI** está siendo utilizado en producción en muchas aplicaciones y sistemas. La cobertura de los tests se mantiene al 100%. Sin embargo, su desarrollo sigue siendo rápido. |
| 4 | + |
| 5 | +Se agregan nuevas características frecuentemente, se corrigen errores continuamente y el código está constantemente mejorando. |
| 6 | + |
| 7 | +Por eso las versiones actuales siguen siendo`0.x.x`, esto significa que cada versión puede potencialmente tener <abbrtitle="cambios que rompen funcionalidades o compatibilidad">*breaking changes*</abbr>. Las versiones siguen las convenciones de <ahref="https://semver.org/"class="external-link"target="_blank"><abbrtitle="versionado semántico">*Semantic Versioning*</abbr></a>. |
| 8 | + |
| 9 | +Puedes crear aplicaciones listas para producción con**FastAPI** ahora mismo (y probablemente lo has estado haciendo por algún tiempo), solo tienes que asegurarte de usar la versión que funciona correctamente con el resto de tu código. |
| 10 | + |
| 11 | +##Fijar la versión de`fastapi` |
| 12 | + |
| 13 | +Lo primero que debes hacer en tu proyecto es "fijar" la última versión específica de**FastAPI** que sabes que funciona bien con tu aplicación. |
| 14 | + |
| 15 | +Por ejemplo, digamos que estás usando la versión`0.45.0` en tu aplicación. |
| 16 | + |
| 17 | +Si usas el archivo`requirements.txt` puedes especificar la versión con: |
| 18 | + |
| 19 | +```txt |
| 20 | +fastapi==0.45.0 |
| 21 | +``` |
| 22 | + |
| 23 | +esto significa que usarás específicamente la versión`0.45.0`. |
| 24 | + |
| 25 | +También puedes fijar las versiones de esta forma: |
| 26 | + |
| 27 | +```txt |
| 28 | +fastapi>=0.45.0,<0.46.0 |
| 29 | +``` |
| 30 | + |
| 31 | +esto significa que usarás la versión`0.45.0` o superiores, pero menores a la versión`0.46.0`, por ejemplo, la versión`0.45.2` sería aceptada. |
| 32 | + |
| 33 | +Si usas cualquier otra herramienta para manejar tus instalaciones, como Poetry, Pipenv, u otras, todas tienen una forma que puedes usar para definir versiones específicas para tus paquetes. |
| 34 | + |
| 35 | +##Versiones disponibles |
| 36 | + |
| 37 | +Puedes ver las versiones disponibles (por ejemplo, para revisar cuál es la actual) en las[Release Notes](../release-notes.md){.internal-link target=_blank}. |
| 38 | + |
| 39 | +##Acerca de las versiones |
| 40 | + |
| 41 | +Siguiendo las convenciones de*Semantic Versioning*, cualquier versión por debajo de`1.0.0` puede potencialmente tener <abbrtitle="cambios que rompen funcionalidades o compatibilidad">*breaking changes*</abbr>. |
| 42 | + |
| 43 | +FastAPI también sigue la convención de que cualquier cambio hecho en una <abbrtitle="versiones de parche">"PATCH" version</abbr> es para solucionar errores y <abbrtitle="cambios que no rompan funcionalidades o compatibilidad">*non-breaking changes*</abbr>. |
| 44 | + |
| 45 | +!!! tip |
| 46 | + El <abbrtitle="parche">"PATCH"</abbr> es el último número, por ejemplo, en`0.2.3`, la <abbrtitle="versiones de parche">PATCH version</abbr> es`3`. |
| 47 | + |
| 48 | +Entonces, deberías fijar la versión así: |
| 49 | + |
| 50 | +```txt |
| 51 | +fastapi>=0.45.0,<0.46.0 |
| 52 | +``` |
| 53 | + |
| 54 | +En versiones <abbrtitle="versiones menores">"MINOR"</abbr> son añadidas nuevas características y posibles <abbrtitle="Cambios que rompen posibles funcionalidades o compatibilidad">breaking changes</abbr>. |
| 55 | + |
| 56 | +!!! tip |
| 57 | + La versión "MINOR" es el número en el medio, por ejemplo, en`0.2.3`, la <abbrtitle="versión menor">"MINOR" version</abbr> es`2`. |
| 58 | + |
| 59 | +##Actualizando las versiones de FastAPI |
| 60 | + |
| 61 | +Para esto es recomendable primero añadir tests a tu aplicación. |
| 62 | + |
| 63 | +Con**FastAPI** es muy fácil (gracias a Starlette), revisa la documentación[Testing](../tutorial/testing.md){.internal-link target=_blank} |
| 64 | + |
| 65 | +Luego de tener los tests, puedes actualizar la versión de**FastAPI** a una más reciente y asegurarte de que tu código funciona correctamente ejecutando los tests. |
| 66 | + |
| 67 | +Si todo funciona correctamente, o haces los cambios necesarios para que esto suceda, y todos tus tests pasan, entonces puedes fijar tu versión de`fastapi` a la más reciente. |
| 68 | + |
| 69 | +##Acerca de Starlette |
| 70 | + |
| 71 | +No deberías fijar la versión de`starlette`. |
| 72 | + |
| 73 | +Diferentes versiones de**FastAPI** pueden usar una versión específica de Starlette. |
| 74 | + |
| 75 | +Entonces, puedes dejar que**FastAPI** se asegure por sí mismo de qué versión de Starlette usar. |
| 76 | + |
| 77 | +##Acerca de Pydantic |
| 78 | + |
| 79 | +Pydantic incluye los tests para**FastAPI** dentro de sus propios tests, esto significa que las versiones de Pydantic (superiores a`1.0.0`) son compatibles con FastAPI. |
| 80 | + |
| 81 | +Puedes fijar Pydantic a cualquier versión superior a`1.0.0` e inferior a`2.0.0` que funcione para ti. |
| 82 | + |
| 83 | +Por ejemplo: |
| 84 | + |
| 85 | +```txt |
| 86 | +pydantic>=1.2.0,<2.0.0 |
| 87 | +``` |