No estaba al tanto de la compatibilidad con discourse, así que tendré que leer sobre eso.
Me gustaría abordar esto, porque parece que hay una gran desconexión entre cómo el equipo de Discourse concibe la rama estable y cómo el resto de la comunidad de Discourse/la comunidad más amplia de administradores de foros concibe la oferta estable de Discourse.
Razones clave por las que la rama estable no cumple con la definición de LTS.
1) El personal disuade activamente de usar la rama estable cada vez que se menciona.
No quiero necesariamente señalar a los publicadores individuales, pero aquí hay una selección de publicaciones del personal para mostrar el tema:
Tenga en cuenta que en algunos aspectos
tests-passedes más estable questable, ya que es lo que ejecuta discourse.org, por lo que es el que mejor se prueba.
Por lo tanto, Discourse se encuentra en un estado de beta perpetua, lo que significa que siempre estamos trabajando en nuevas funciones y refinamientos. En nuestro caso, beta no significa inestable; alojamos sitios con millones de visitas mensuales en nuestras versiones
tests-passedy beta.
El canal estable no es necesariamente más “estable” que tests-passed. Se trata más de la idea de que los errores son conocidos y sirve como un punto de control para un conjunto específico de funciones y mejoras. Con tests-passed, pueden introducirse nuevos errores y luego corregirse unas confirmaciones después.
La comunicación ha sido bastante consistente en que Discourse está en “beta perpetua”, que no es la experiencia que los usuarios de producción/no desarrolladores quieren tener.
En una búsqueda rápida en DuckDuckGo de los diez primeros enlaces para “discourse stable”, ninguno parece abogar a favor de usar la rama estable. Por lo tanto, independientemente de su calidad real, si el personal guía universalmente a las personas para que no usen la rama estable, genera una impresión negativa en la mente de las personas de que no es apta para su propósito.
La rama estable puede ser excelente, pero si nos dicen una y otra vez que es mejor no usarla, no la consideraremos para implementaciones serias.
2. Una LTS recibe correcciones de errores más allá de las correcciones de errores de seguridad.
Una LTS es algo que no recibe actualizaciones de funciones, pero sí recibe correcciones de errores. Según los propios comentarios del personal, en Discourse no parece haber esfuerzos para retroportar correcciones de errores para problemas que no sean de seguridad. Quizás esto no sea cierto, pero esto es lo que se nos ha dicho.
3. Una LTS tiene pasos de instalación sencillos.
La guía de instalación ni siquiera menciona la existencia de la rama estable.
4. Una LTS es ampliamente utilizada.
Antes de tu publicación, no había oído hablar de un uso generalizado de la rama estable. ¿También se usa ampliamente en la práctica? Dado lo oculta que está, lo dudo, pero no tengo métricas para decirlo. Este es un factor importante porque da confianza a las personas para usar la rama estable en sus implementaciones de producción.
5. Una LTS tiene un ciclo de lanzamiento y notas de actualización claras.
No veo ninguna ubicación central donde la rama estable esté claramente documentada. (¡Puede que simplemente me la esté perdiendo!)
Mis expectativas para una LTS son una página que describa:
- Versión de lanzamiento activa actual
- Notas de lanzamiento que incluyen:
- Cambios/funciones importantes entre versiones LTS
- Pasos de migración desde la versión LTS anterior (especialmente cambios importantes a tener en cuenta)
- Duración de soporte activo planificada para cada versión
por ejemplo: mediawiki, pero en realidad cualquier LTS importante de código abierto tiene páginas similares.
Esta documentación me ayuda a poder planificar cuándo habrá un cambio importante que requerirá tiempo de inactividad y/o intervención manual.
6. Una LTS no tiene cambios importantes que rompan la compatibilidad dentro de un ciclo de lanzamiento.
Este puede ser el caso de la rama estable, pero estoy demasiado acostumbrado a presionar el botón de actualización y que el foro se caiga como para saberlo con seguridad. Supongo que lo que busco aquí son advertencias más claras al pasar de versiones que rompen algo.
7. Una LTS proporciona advertencias de deprecación de API para al menos un ciclo de lanzamiento LTS completo.
Estos deberían medirse a un ritmo de un año o más, en lugar de un mes o más.
8. Una LTS está programada / tiene períodos de soporte superpuestos.
Cualquier LTS grande tendrá un período de soporte superpuesto entre dos versiones LTS. La rama estable parece simplemente hacer un cambio binario a la siguiente versión. (Mi impresión también puede estar errada debido a la falta de una página de documentación centralizada).
9. Es sencillo actualizar de una versión no LTS a una LTS.
No hay necesidad de soportar el retroceso, pero cuando hay una LTS disponible, no está claro cómo cambiar limpiamente de rama a LTS. Parece que hay algunas publicaciones en el foro al respecto, pero nuevamente, no encontré ninguna documentación centralizada.
Soy un fan de Discourse, pero este es un punto de dolor común que encuentro yo y muchas otras personas. Lo que es la rama estable ahora mismo es solo una rama, no una LTS.