Introduzione di .discourse-compatibility: versioni bloccate di plugin e temi per versioni più vecchie di Discourse

Bene, grazie per la spiegazione.

Quindi mi sono versato un :wine_glass: e ho provato con il plugin Custom Wizard.

Ho controllato ogni tag uno per uno in ordine inverso, partendo da v2.6.0.beta1. Ho trovato questi comandi git utili:

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

Non ci è voluto molto per trovare un tag che non funzionava con la versione corrente del plugin: v2.5.0.beta7 non include discourse/app/components/d-textarea, che il Custom Wizard cerca di importare.

Quindi ho trovato quel commit nel plugin che ha aggiunto quell’import, ho preso lo sha1 del commit precedente, ho fatto il checkout e ho testato (ha funzionato perfettamente), e ho aggiunto questo a .discourse-compatibility:

v2.5.0.beta7: 802d74bab2ebe19a106f75275342dc2e9cc6066a

Ho poi spinto tutto su un branch con l’ultima versione del codice del plugin (un branch per i test, non necessario normalmente), e ho ricompilato un server di test dockerizzato con quel branch del plugin e la version impostata su v2.5.0.beta7.

Non ha funzionato, poi mi è venuto in mente che, ovviamente, il task rake plugin:pull_compatible_all non esiste in v2.5.0.beta7, quindi questo non funzionerà retroattivamente (colpa del :wine_glass:). Come previsto, nei log del launcher vedo:

Don't know how to build task 'plugin:pull_compatible_all' (See the list of available tasks with `rake --tasks`)

È questo il senso di come immagini che venga utilizzato?

Per quanto riguarda required_version, mi sono imbattuto in questo problema perché il server di test aveva installato il plugin discourse-legal-tools, che ha un required_version di v2.5.0, quindi inizialmente falliva su v2.5.0.beta7. Penso di trasferire quel plugin sul nuovo sistema. Credo ancora che required_version possa essere utile per impostare una base assoluta, come hai detto.

11 Mi Piace