RFC: Uma nova estratégia de versionamento para Discourse

A intenção é o inverso. Os branches de compatibilidade são apenas para branches ‘lançados’ do Discourse. O latest do Discourse sempre usará o main do seu plugin. É lá que você desenvolverá novos recursos.

Então, a história seria:

O Discourse lança o v2026.2. As ações do GitHub no seu plugin detectam isso automaticamente e criam um branch d-compat/v2026.2. Agora, qualquer pessoa que use o Discourse v2026.2 usará a versão d-compat/v2026.2 do seu plugin.

Você lança um novo recurso no main do seu plugin. Você não precisa se preocupar com compatibilidade retroativa, porque o branch main é usado apenas por pessoas que executam o Discourse latest.

Então, enquanto você bebe sua terceira taça de vinho :wine_glass:, o Discourse lança o v2026.3. Inicialmente, não há branch de plugin para esta versão, então o main será usado. As coisas continuam funcionando como antes para as pessoas no latest.

Em poucas horas, sua ação do GitHub detecta a nova versão e congela o d-compat/v2026.3, pronto para que seu próximo recurso de plugin chegue ao main sem preocupações de compatibilidade retroativa.

Este é essencialmente o fluxo de trabalho que usamos na CDCK para lidar com a compatibilidade estável de temas/plugins. Após cada lançamento estável, temos um script para percorrer nossas centenas de temas/plugins e congelá-los via .discourse-compatibility. Esta proposta baseada em branches visa ser uma versão mais leve desse fluxo de trabalho.

16 curtidas