Não estava ciente da compatibilidade com o discourse, então é algo sobre o qual precisarei me aprofundar.
Gostaria de abordar isso, porque parece haver uma grande desconexão entre como a equipe do Discourse pensa sobre o estável e como o restante da comunidade do discourse/maior comunidade de administradores de fóruns pensa sobre a oferta estável do Discourse.
Principais razões pelas quais o estável não atende à definição de LTS.
1) O estável é ativamente desencorajado pela equipe sempre que é mencionado
Não quero necessariamente citar usuários individuais, mas aqui está uma seleção de postagens da equipe para mostrar o tema:
Note que em alguns aspectos
tests-passedé mais estável questable, pois é o que discourse.org executa, então é o mais bem testado.
Assim, o Discourse está em um estado de beta perpétuo, o que significa que estamos sempre trabalhando em novos recursos e refinamentos. Em nosso caso, beta não significa instável; hospedamos sites com milhões de visualizações de página mensais em nossas versões
tests-passede beta.
O canal estável não é necessariamente mais “estável” do que tests-passed. É mais sobre a ideia de que os bugs são conhecidos e serve como um ponto de verificação para um conjunto específico de recursos e melhorias. Com tests-passed, novos bugs podem ser introduzidos e, em seguida, corrigidos alguns commits depois.
A mensagem tem sido consistentemente que o Discourse está em “beta perpétuo”, o que não é a experiência que os usuários de produção/não desenvolvedores desejam ter.
Em uma rápida busca no DuckDuckGo pelos dez primeiros links para “discourse stable”, nenhum deles parece defender o uso do estável. Portanto, independentemente de sua qualidade real, se a equipe está universalmente guiando as pessoas para longe do estável, isso cria uma impressão negativa nas mentes das pessoas de que não é adequado para o propósito.
O estável pode ser ótimo, mas se nos dizem repetidamente que é melhor não usá-lo, não o consideraremos para implantação séria.
2. Um LTS recebe correções de bugs além de apenas correções de bugs de segurança
Um LTS é algo que não recebe atualizações de recursos, mas recebe correções de bugs. De acordo com os próprios comentários da equipe, no Discourse não parece haver esforço para fazer backport de correções de bugs para problemas não relacionados à segurança. Talvez isso não seja verdade, mas é o que nos foi dito.
3. Um LTS tem etapas de instalação diretas
O guia de instalação nem sequer menciona a existência do estável.
4. Um LTS é amplamente utilizado
Antes da sua postagem, eu não tinha ouvido falar de nenhum uso generalizado do branch estável. Ele também está sendo usado amplamente na prática? Dado o quão escondido ele está, duvido, mas não tenho métricas para dizer. Este é um fator importante porque dá às pessoas confiança para usar o estável para suas implantações de produção.
5. Um LTS tem um ciclo de lançamento claro e notas de atualização
Não vejo nenhum local central onde o estável esteja sendo claramente documentado. (Posso estar apenas perdendo!)
Minhas expectativas para um LTS são uma página que descreva:
- Versão de lançamento ativa atual
- Notas de lançamento incluindo:
- Principais alterações/recursos entre as versões LTS
- Etapas de migração da versão LTS anterior (especialmente alterações drásticas a serem observadas)
- Duração de suporte ativo planejada para cada versão
ex: mediawiki, mas na verdade qualquer LTS de código aberto importante tem páginas semelhantes.
Essa documentação me ajuda a planejar quando há uma alteração drástica que exigirá tempo de inatividade e/ou intervenção manual.
6. Um LTS não tem alterações drásticas importantes dentro de um ciclo de lançamento
Isso pode muito bem ser o caso para o estável, mas estou muito acostumado a apertar o botão de atualização e o fórum cair para ter certeza. Acho que o que estou procurando aqui são avisos mais claros ao passar de versões que quebram algo.
7. Um LTS fornece avisos de depreciação de API para pelo menos um ciclo de lançamento LTS completo
Estes devem ser medidos no ritmo de um ano ou mais, em oposição a um mês ou mais.
8. Um LTS é escalonado / tem períodos de suporte sobrepostos
Qualquer LTS grande terá um período de suporte sobreposto entre duas versões LTS. O estável parece apenas fazer uma troca binária para a próxima versão. (Minha impressão também pode estar incorreta devido à falta de uma página de documentação centralizada)
9. É simples atualizar de não-LTS para LTS
Não há necessidade de suportar o retrocesso, mas quando um LTS está disponível, não está claro como mudar limpa e corretamente os branches para o LTS. Parece que há algumas postagens no fórum sobre isso, mas novamente, nenhuma documentação centralizada que eu pude encontrar.
Sou um fã do Discourse, mas este é um ponto de dor comum que eu e muitas outras pessoas encontramos. O que o estável é agora é apenas um branch, não um LTS.