RFC: Uma nova estratégia de versionamento para Discourse

Esta discussão não parece boa. Vejo uma decisão da equipe de desenvolvimento de adotar um novo sistema de versionamento que faz sentido para eles, e outros que de repente parecem considerar que a versão do Discourse estava seguindo o versionamento semântico… o que não estava. Sempre foi um lançamento contínuo (rolling release), pelo menos desde a versão 1.0, ou?

Mas os argumentos de todos os lados do debate parecem falhos:

  • “Padrão da indústria”: O Linux usa versões pares para estáveis e ímpares para desenvolvimento.
  • “A Terra orbita o Sol”: Bem, se você se converter ao Islamismo, terá problemas porque abandonará as versões e não, não corresponderá mais à revolução do Sol, mas aos ciclos da Lua. Aqui, você agora entende que, ao escolher o esquema de versionamento YYYY.Y.Z em vez de X.Y.Z, você impôs uma cultura dominante.
  • Lançamento menor continua incerto: você menciona “assumindo uma cadência mensal”, mas pode ser de 3 semanas ou 7, dependendo da funcionalidade, caso em que contar Y a partir de 0 faz sentido, ou você está realmente visando lançar mensalmente, caso em que contar M a partir de 1 faria mais sentido?

A principal mudança que vejo é que, ao adotar um ritmo mensal, a equipe do Discourse está definindo expectativas e se afastando de metas de lançamento, abraçando lançamentos regulares em vez disso.

LTS por 8 meses não soa realmente como “longo”. O NodeJS está se movendo muito rápido, mas eles mantêm o suporte LTS por mais de 30 meses e algumas versões atuais ao mesmo tempo, enquanto o Ubuntu mantém LTS por anos. Embora eu entenda que o Discourse não é nem uma linguagem nem um sistema operacional, parece anunciar que novas funcionalidades serão lançadas em um ritmo bastante rápido, o que traz outra questão à mente: como novas configurações de administrador são introduzidas de tempos em tempos, logo entraremos no inferno do Wordpress com opções infinitas e complicação incompreensível para administração de sites, também conhecido como bloatware: torna-se importante então esclarecer como você passa de lançamentos existentes com metas para lançamentos regulares, e como você escolhe quais metas abandonar (ou adiar) para um lançamento, etc. (o que pode já estar documentado, mas eu perdi essa parte.)

Você seria tão gentil de compartilhar sua lógica entre o ritmo de desenvolvimento/versionamento e o que você tem em mente para evitar que os administradores se afoguem em muitas configurações e uma curva de aprendizado acentuada?

:heart: :discourse: