1 Versionado
Rails sigue una versión modificada de semver:
Patch Z
Solo correcciones de errores, sin cambios en la API, sin nuevas características. Excepto cuando sea necesario para correcciones de seguridad.
Minor Y
Nuevas características, pueden contener cambios en la API (Sirven como versiones mayores de Semver). Los cambios incompatibles se acompañan de avisos de desaprobación en la versión menor o mayor anterior.
Major X
Nuevas características, es probable que contengan cambios en la API. La diferencia entre las versiones menores y mayores de Rails es la magnitud de los cambios incompatibles, y generalmente se reservan para ocasiones especiales.
2 Nuevas Características
Las nuevas características solo se agregan a la rama principal y no estarán disponibles en las versiones Patch.
3 Correcciones de Errores
Las versiones menores recibirán correcciones de errores durante un año después del primer lanzamiento en su serie. Por ejemplo, si una teórica 1.1.0 se lanza el 1 de enero de 2023, recibirá correcciones de errores hasta el 1 de enero de 2024. Después de eso, se considerará no soportada.
Las correcciones de errores generalmente se agregan a la rama principal y se retroportan a la rama x-y-stable de la última serie de lanzamientos si hay suficiente necesidad. Cuando se han agregado suficientes correcciones de errores a una rama x-y-stable, se construye una nueva versión Patch a partir de ella. Por ejemplo, una teórica versión Patch 1.2.2 se construiría a partir de la rama 1-2-stable.
Para series no soportadas, las correcciones de errores pueden coincidentemente aterrizar en una rama estable, pero no se lanzarán en una versión oficial. Se recomienda apuntar su aplicación a la rama estable usando Git para versiones no soportadas.
4 Problemas de Seguridad
Las versiones menores recibirán correcciones de seguridad durante dos años después del primer lanzamiento en su serie. Por ejemplo, si una teórica 1.1.0 se lanza el 1 de enero de 2023, recibirá correcciones de seguridad hasta el 1 de enero de 2025. Después de eso, alcanzará su fin de vida.
Estas versiones se crean tomando la última versión lanzada, aplicando los parches de seguridad y lanzándola. Esos parches se aplican luego al final de la rama x-y-stable. Por ejemplo, una teórica versión de seguridad 1.2.2.1 se construiría a partir de 1.2.2, y luego se agregaría al final de 1-2-stable. Esto significa que las versiones de seguridad son fáciles de actualizar si está ejecutando la última versión de Rails.
Solo se incluirán parches de seguridad directos en las versiones de seguridad. Las correcciones para errores no relacionados con la seguridad resultantes de un parche de seguridad pueden publicarse en la rama x-y-stable de una versión y solo se lanzarán como un nuevo gem de acuerdo con la política de Correcciones de Errores.
Las versiones de seguridad se cortan de la última rama/etiqueta de versión de seguridad. De lo contrario, podría haber cambios incompatibles en la versión de seguridad. Una versión de seguridad solo debe contener los cambios necesarios para garantizar que la aplicación sea segura, de modo que sea más fácil para las aplicaciones permanecer actualizadas.
5 Series de Versiones al Fin de su Vida Útil
Cuando una serie de versiones alcanza su fin de vida, es su propia responsabilidad lidiar con errores y problemas de seguridad. Podemos proporcionar retroportaciones de las correcciones y fusionarlas, sin embargo, no se lanzarán nuevas versiones. Recomendamos apuntar su aplicación a la rama estable usando Git. Si no se siente cómodo manteniendo sus propias versiones, debe actualizar a una versión soportada.
6 Calendario de Lanzamientos
Nuestro objetivo es lanzar una versión que contenga nuevas características cada seis meses. En el raro caso de que no se realice un lanzamiento en un año, extenderemos el período de soporte para el lanzamiento anterior hasta que se realice el próximo lanzamiento.
7 Paquetes npm
Debido a una restricción con npm, no podemos usar el cuarto dígito para las versiones de seguridad de los paquetes npm proporcionados por Rails. Esto significa que en lugar de la versión gem equivalente 7.0.1.4
, el paquete npm será versionado 7.0.104
.
La versión se calculará como X.Y.Z0A
, donde A
es la versión de seguridad.
Comentarios
Se te anima a ayudar a mejorar la calidad de esta guía.
Por favor contribuye si ves algún error tipográfico o errores fácticos. Para comenzar, puedes leer nuestra sección de contribuciones a la documentación.
También puedes encontrar contenido incompleto o cosas que no están actualizadas. Por favor agrega cualquier documentación faltante para main. Asegúrate de revisar Guías Edge primero para verificar si los problemas ya están resueltos o no en la rama principal. Revisa las Guías de Ruby on Rails para estilo y convenciones.
Si por alguna razón detectas algo que corregir pero no puedes hacerlo tú mismo, por favor abre un issue.
Y por último, pero no menos importante, cualquier tipo de discusión sobre la documentación de Ruby on Rails es muy bienvenida en el Foro oficial de Ruby on Rails.