Próximo EOL para el sistema de renderizado de widgets

¡Hola a todos! Como paso final de nuestro esfuerzo por alejarnos del sistema de renderizado heredado de “widgets”, estamos desaconsejando el uso de widgets en Discourse y pronto lo desactivaremos por completo.

Cronograma

Estos son estimados y sujetos a cambios

Julio de 2025:

  • :white_check_mark: Añadir advertencias de obsolescencia en el núcleo y una configuración de sitio experimental para desactivarlas
  • :white_check_mark: Publicar anuncio en Meta

Agosto de 2025

  • :white_check_mark: Actualizar los plugins y componentes de temas oficiales para usar Glimmer Components.
  • :white_check_mark: Ejecutar Meta con los widgets desactivados.
  • :white_check_mark: Habilitar mensajes de obsolescencia con un banner de advertencia para administradores.

T3 de 2025:

  • Los plugins y temas de terceros deben actualizarse.

T4 de 2025:

  • :white_check_mark: El sistema de renderizado de widgets se desactivará por defecto usando deactivate_widgets_rendering: true. Habrá un breve período de tiempo en el que se podrá reactivar manualmente.

  • :white_check_mark: Eliminar el código heredado y desactivar el sistema de renderizado de widgets

:police_car_light: Los plugins y temas no compatibles dejarán de funcionar correctamente después de esto.

¿Qué significa esto para ti?

Si alguno de tus plugins o temas utiliza las API de ‘widget’, deberás actualizarlos para usar API más nuevas o Glimmer Components antes de la fecha límite del T4 de 2025.

Tengo plugins o temas personalizados instalados. ¿Necesito actualizarlos?

Deberás actualizar tus plugins o temas si utilizan alguna de las siguientes opciones:

  • createWidget
  • decorateWidget, changeWidgetSetting, reopenWidget, o attachWidgetAction
  • El componente MountWidget

:bulb: Consejo profesional: Si tienes extensiones que utilizan alguna de estas personalizaciones, verás una advertencia en la consola que identifica qué plugin o componente necesita ser actualizado.

:warning: Importante: Si utilizas más de un tema en tu instancia, asegúrate de revisarlos todos, ya que las advertencias solo aparecerán para los plugins activos y los temas y componentes de tema actualmente en uso.

El ID de obsolescencia es: discourse.widgets-end-of-life

¿Cómo se relaciona esto con la reciente modernización del post-stream?

El post-stream fue la última parte importante de Discourse que todavía utilizaba el sistema de renderizado de widgets. Con su modernización, ahora podemos avanzar con la jubilación completa del sistema de widgets. Echa un vistazo a la guía de actualización para obtener más detalles sobre esos cambios.

¿Cómo actualizo?

Si utilizas un plugin o tema de terceros: Comprueba si el autor ha lanzado una versión actualizada que sea compatible con el nuevo sistema.

Si eres un autor de plugin/tema:

  • Reemplaza tus widgets personalizados con Glimmer Components
  • Utiliza conectores de plugin-outlet para insertarlos en la interfaz de usuario

Consulta nuestras Guías para desarrolladores para obtener más información sobre cómo realizar estas actualizaciones.

8 Me gusta

Cuando actualices tu instalación de Discourse la próxima vez, el sistema de renderizado de widgets ahora estará deshabilitado y cualquier personalización basada en widgets ya no se renderizará.

Por ahora, en sitios incompatibles, el administrador puede volver a habilitar el comportamiento anterior modificando los valores de la siguiente configuración:

  • deactivate_widgets_rendering

Esta es la fase final antes de eliminar el código antiguo de la base de código de Discourse, lo que se espera que ocurra en aproximadamente un mes. Posteriormente, ya no será posible volver a habilitar los widgets.

6 Me gusta

El PR que elimina el sistema de widgets de Discourse fue fusionado ayer.

2 Me gusta