Esquema de versiones de Laravel

↑ Me gusta (0)

Laravel tiene una nota donde indica que usará versiones semánticas. Este anuncio sorprendió a muchos porque enseguida se preguntaron ¿qué usaba antes?...

Es interesante que algo así suceda porque he visto en equipos de desarrollo que los números de versiones se cambian de forma arbitraria. Podemos observar con mucha frecuencia tres números en las versiones que se pueden llamar X.Y.Z, cambian el número Z de forma diaria y si este ya llega al 9 entonces empiezan a cambiar el número Y, si este llega al nueve entonces hacen el cambio en la X.

Podemos decir que van cambiando las versiones de un software como el sistema de kilómetros de un vehículo. Si por ejemplo tenemos la versión 5.1.2, es probable que mañana consigamos tener 5.1.3 y así.

No es tan así como un aumento sucesivo del número, esto lleva detrás parámetros y conceptos simples, eso te voy a explicar en este post. Prestemos atención a los números de versión.

Estilo de Versiones Románticas

Era entonces lo que Laravel usaba hasta las versión 5.8; siguiendo con el ejemplo de version X.Y.Z. Toma en cuenta lo siguiente, esta puede ser versión X, versión X.Y O versión X.Y.Z.

  1. Un cambio en X es un cambio importante que afecta a las versiones anteriores porque es un cambio drástico.
  2. Un cambio pequeño como una corrección haría una variación en los números Y.Z.

Las versiones románticas se usan para facilitar la comprensión, es muy sencillo de entender por las personas este estilo de versión. Esto beneficia mucho a la persona pero no es muy adecuado para gestionar las dependencias, podemos resumirlo diciendo que es un estilo muy útil para proyectos que se comercializan activamente como Office de Microsoft.

Un juego de PS4 usa este tipo de versiones, solo usan el número X para sus versiones de juegos o simplemente no usan un número de versión. Este estilo beneficia mucho las campañas de marketing de un software porque es muy fácil de entender por la persona no informática.

Estilo de Versiones Semánticas (SemVer)

En este estilo de versiones si es obligatorio trabajar con las 3 partes, es decir, con X.Y.Z. Comenzar con un software y este estilo sería tener como primera versión el número 0.1.0.

  • X: Es un cambio mayor.
  • Y: Cambio menor o inclusión de una función.
  • Z: Un cambio pequeño, corrección de falla o fabricación de un parche.

En otras palabras:

  1. Si el cambio contiene la corrección de un fallo entonces incrementará el último número. Sería X.Y.Z+1. Esto no afecta para nada a una versión anterior.
  2. Si aumentas funciones o métodos que no haga cambios importantes respecto a las versiones anteriores, podemos simplemente aumentar o incrementar el número en la posición Y, es decir, X.Y+1.Z. En este caso podemos llevar Z a cero (0).
  3. Si hablamos de un cambio importante incrementamos el valor de X, sería X+1.Y.Z y podemos llevar a cero (0) a los valores de Y y Z. Imagina hacer nuevas estructuras de carpetas, namespace, etc. Eso incrementaría directamente el número X.

Este estilo es un sistema de versiones muy fácil de entender para los sistemas que manejan las dependencias. En otras palabras, es mucho más fácil para composer saber cuál es el cambio, la mejora actual o la última versión de un software hecho en PHP.

Es recomendable usar este sistema o estilo de versiones cuando sabemos que un software se actualizará con mucha frecuencia como lo hace el propio Laravel.

En la documentación de Laravel se menciona que como siempre publicarán cada seis meses (febrero y agosto) cambios importantes, esto alterará directamente el número en la posición X y las versiones de cambios menores se publicarán probablemente cada semana y lo puedes comprobar aquí https://laravel.com/docs/6.x/releases#versioning-scheme.

Esto quiere decir lo siguiente, veremos a Laravel 7 cuando hayan cambios que rompan o alteren a Laravel 6 y este sucederá cada seis meses.

Versiones híbridas (estilo de versiones románticas y semánticas)

Esto es muy interesante ya que una beneficia al marketing y facilita el entendimiento de los software para las personas y el otro llamado semántico beneficia mucho al gestor de dependencia o al programador directamente.

Pensar en usar ambos es una muy buena idea: Un caso mas popular es Microsoft con su sistema operativo Windows 7, donde todo el mundo lo llama precisamente windows 7 pero internamente es 6.1. Podemos comprobarlo aquí https://es.wikipedia.org/wiki/Windows_7.

Entender este estándar es importante para que puedas tener mayor seguridad cuando actualizan a Laravel.

¿Qué versión de Laravel debo usar?

Esto no tiene nada que ver con el esquema de versiones, tengo un video que quiero que veas llamado versionado de software. Sin embargo, respondiendo rápidamente esta pregunta puedo decir que para proyectos nuevos uses sin pensar la versión 6 de Laravel.

Mantengo un pensamiento; si tu cliente tiene Laravel 5.0 déjalo con esa versión, hace años tenía mucha preocupación al respecto y buscaba mantener actualizados a mis clientes, luego maduré y actualizaba solo aquellos que contrataban cambios profundos en sus sistemas.

Laravel 6 mantiene lo ya aprendido en la versión 5.x. Trae consigo cambios que explicaré aquí en <rimorsoft.com>.

En resumen...

  1. Existe el estilo de versión romántica, semántica o ambas.
  2. Puedes usar el estilo de versión romántica cuando tu cliente no es un programador.
  3. Debes usar el estilo de versión semántica cuando tu cliente es un programador.

Aquí es importante recalcar que Laravel hasta su versión 5.8 usaba el estilo de versión romántica y ahora usará el estilo de versión semántico.

Italo Morales F. Italo Morales F. 3,230.00 XP