A partir de hoy, todas las nuevas instalaciones autohospedadas de Discourse utilizarán por defecto nuestras compilaciones de Ember CLI en producción.
Hemos estado ejecutando estas compilaciones nosotros mismos en producción durante bastante tiempo y deberían ser estables y funcionar con todos los plugins principales. Si encuentra algún problema y necesita desactivarlo, edite su app.yml y elimine EMBER_CLI_PROD_ASSETS: 1.
De lo contrario, por favor repórtanos cualquier error y lo solucionaremos rápidamente.
En un futuro cercano, todas las instalaciones de Discourse utilizarán las compilaciones de Ember CLI.
Sí, @Simon_Manning tiene razón: puedes habilitarlo manualmente si lo deseas, o puedes esperar a que se convierta en la opción predeterminada. Lo estamos implementando gradualmente para intentar detectar todos los errores con antelación.
Estoy muy emocionado por este cambio y es algo excelente para el futuro de Discourse.
Simplemente recomendaría lo siguiente: si estás ejecutando componentes de temas o complementos de terceros, por favor crea una instancia de prueba separada con el mismo conjunto y pruébalos todos allí antes de migrar a Ember CLI en tu sitio principal.
Acabo de publicar cambios significativos en uno de mis componentes de tema, sin los cuales el sitio principal se habría roto.
La versión resumida es: esta es la forma oficialmente respaldada de desarrollar aplicaciones Ember y debería facilitar que las personas contribuyan y que nosotros actualicemos Ember en el futuro.
¿Es cierto que los únicos componentes de tema que probablemente se verán afectados por este cambio son aquellos que Wyeth utiliza JavaScript?
¿Hay alguna forma fácil de hacer una consulta para encontrar los componentes de tema que incluyen JavaScript? ¿Algún explorador de datos o consulta de Rails? Me gustaría tener una forma de saber qué sitios se verán afectados por esto y ofrecerles usar mi nuevo producto (gratis, para poder conseguir finalmente algunos probadores) para instalar un sitio de staging y hacer una prueba antes de que actualicen su sitio de producción.
Eso es cierto: este cambio en el Ember CLI no afecta las partes de HTML o CSS de los temas/componentes.
En general, puedes identificar los componentes temáticos problemáticos buscando avisos de deprecación amarillos en la consola de JavaScript del navegador en el entorno anterior que no usaba Ember CLI. (La migración a Ember CLI es la razón por la que hemos estado introduciendo estas deprecaciones).
Meta ha estado ejecutando Ember CLI durante varias semanas y hemos estado trabajando para asegurarnos de que todos nuestros temas/plugins oficiales funcionen en el nuevo entorno.
Ok. Entonces, si descargo /admin/customize/themes.json (o la ruta real que sea) contendrá advertencias. ¿Creemos que es probable que tenga falsos negativos (es decir, sin advertencias pero fallará al actualizar)?
Ah, y si falla, solo tienes que volver a desactivar la variable de entorno.
Para los plugins, si veo advertencias de depreciación en la consola de javascript, ¿entonces finalmente tendré que averiguar qué significan? Parecía que provenían de componentes que estaba usando y no de mi código, pero Ember y javascript todavía son bastante misteriosos para mí. (a pesar de tener una gran cantidad de código que al menos escribí en su mayor parte).
No, las advertencias de depreciación aparecen en tiempo de ejecución en la consola de tu navegador. No aparecerán en la API REST de temas.
Por ahora, podrías hacer esto. Pero tenemos la intención de que sea el predeterminado no opcional muy pronto, por lo que la mejor solución es solucionar la causa raíz.
Sí, me temo que sí. Si crees que provienen de componentes principales, o si tienes dificultades para encontrar la razón, por favor abre un tema de Dev con los detalles.
Ja. Si tienes suerte. Si no tienes tanta suerte, obtendrás un error completo y una detención total de la ejecución de JavaScript. Lo que puede resultar en páginas en blanco o corruptas.
Hasta ahora he encontrado varios problemas, pero en su mayoría la pérdida de algunos atributos del objeto Discourse y, por lo tanto, tienes que encontrar una forma diferente de acceder a los atributos del sitio y del usuario. (Pista: estos son accesibles dentro de los componentes. Puedes ver el trabajo que he hecho recientemente en el TLP TC)