Presentando .discourse-compatibility: versiones fijadas de plugins/temas para versiones antiguas de Discourse

Genial, gracias por explicarlo.

Así que me serví una copa de :wine_glass: y lo probé con el Plugin de Asistente Personalizado.

Revisé cada etiqueta una por una en orden inverso, comenzando con v2.6.0.beta1. Encontré que estos comandos de git eran útiles:

git tag --list \\ ej. git tag --list 'v2.5.0*'
git checkout tags/tag \\ ej. git checkout tags/v2.5.0.beta7

No me tomó mucho tiempo encontrar una etiqueta que no funcionaba con la versión actual del plugin: v2.5.0.beta7 no incluye discourse/app/components/d-textarea, que el asistente personalizado intenta importar.

Entonces, encontré el commit en el plugin que agregó esa importación, tomé el sha1 del commit anterior, lo verifiqué, lo probé (funcionó bien) y agregué esto a .discourse-compatibility:

v2.5.0.beta7: 802d74bab2ebe19a106f75275342dc2e9cc6066a

Luego subí eso a una rama con el último código del plugin (una rama para pruebas, normalmente no es necesaria), y reconstruí un servidor de pruebas en Docker con esa rama del plugin y la version establecida en v2.5.0.beta7.

Eso no funcionó, luego me di cuenta de que, por supuesto, la tarea de rake plugin:pull_compatible_all no existe en v2.5.0.beta7, así que esto no funcionará de forma retrospectiva (la culpa es del :wine_glass:). Efectivamente, en los registros del lanzador veo:

No se sabe cómo construir la tarea 'plugin:pull_compatible_all' (Vea la lista de tareas disponibles con `rake --tasks`)

¿Es esa la esencia de cómo imaginas que se usaría esto?

En cuanto a required_version, me encontré con eso aquí porque el servidor de pruebas tenía instalado el plugin discourse-legal-tools, que tiene un required_version de v2.5.0, por lo que inicialmente falló en v2.5.0.beta7. Creo que transferiré ese plugin a este nuevo sistema. Todavía veo útil que required_version establezca una línea base absoluta, como mencionas.

11 Me gusta