Warning: Undefined array key "HTTP_REFERER" in /home/fititntorg/fititnt.org/plugins/system/algseo/algseo.php on line 285
Política de Versionamento de minhas extensões

Full-stack developer Emerson Rocha .::. CMS Joomla!, PHP, JavaScript/NodeJS, Infraestrutura

Escrevo esse artigo para dar uma ideia geral do que esperar da numeração das extensões que estou liberando. Essa lógica pode parecer meio obvia para alguns, porém creio que será util em especial para o pessoal que não tem uma experiência prévia com isso.

Lembre-se: além do tipo de site aonde irá testar ou usar, a exemplo de um site pessoal, ou um de terceiro e que tem um porte maior, há uma grande diferença entre uma extensão que seja relativamente simples, em especial módulos, plugins, templates ou até mesmo componentes que não exijam armazenamento de dados, e extensões que lidem com situações mais críticas: como manusear dados, autenticação em sistemas de terceiros ou mesmo que lidem com movimentação financeira.

Outro ponto pertinente: independente de serem gratuitas, eu como desenvolvedor tendo a ser solidário com quem me ajudar a testar, sugerir melhorias ou mesmo colaborar com código ou tradução.

Numeração: diferença entre X.Y.Z

A tendência das extensões é serem numeradas, pelo menos, com 1.0.0. Numerações menores do que isso não necessariamente representam o Status da Versão, que na prática é explicitado por Alpha, Beta, RC e Stable. Tenha em mente que, se a versão de uma extensão é, por exemplo, 0.5, quer dizer que provavelmente ela ainda não está na faixa que considero ideal de caracteristicas mínimas para ser considerada 1.0.0+.

Outro ponto importante: não necessariamente todas as extensões alcançarão a versão 1.0.0 algum dia, porém farei um esforço para que pelo menos tenham uma versão estavel.

Versão maior, o X de X.Y.Z

  • Representa uma grande mudança, com adição de novas características.
  • A atualização pode não ser tão suave. Pode ser exigido algum trabalho adicional.

Versão menor, o Y de X.Y.Z

  • É uma versão em que houve mudanças no modo de funcionamento
  • Adição de novas características, compatíveis com as pré-existentes.
  • Atualização suave e sem maiores transtornos.

Versão de correção, o Z de X.Y.Z

  • Contém correções ou reescrita de código visando melhorar performance, alterar um conportamento não esperado ou corrigir uma falha de segurança.
  • Atualização suave e sem maiores transtornos

Status da versão

Além da numeração, cada extensão pode ter um status adicional, que representa sua estabilidade e passa uma ideia de aonde pode ser usada e com qual segurança.

Ponto importante: versões beta e RCs não necessariamente implicam em precisar alterações no seu código para serem liberadas como versão stable. É possível que apenas estejam aguardando serem publicamente testadas antes de terem seu status alterado, ainda que a versão final saia com pequenas correções ou adição de tradução em outros idiomas.

Versões Alpha, ext_nome_X.Y.Z_alpha1, ext_nome_X.Y.Z_a2 ... 

O que você deve ter em mente

  • Não devem ser usadas em sites de produção.
  • Podem ter mudanças severas na forma como funcionam: incluindo mudanças na forma armazena ou obtem informações no seu banco de dados, mudanças no código fonte em PHP e HTML, no CSS, etc.
  • Não haverá um meio automático de recuperar dados de versões alpha.
  • Não será liberado atualizalização via JUpdater.

Versões Beta, ext_nome_X..Y.Z_beta1, ext_nome_X.Y.Z_b2 ... 

O que você deve ter em mente

  • Não devem ser usadas em sites de produção, em especial se você não tem experiência em programação ou, pelo menos, não está em contato direto comigo para que eu lhe ajude em problemas que encontrar.
  • Podem ter mudanças severas na forma como funcionam: como mudanças no código fonte em PHP e HTML, no CSS,  porém sem mudanças drásticas na forma armazena ou obtem informações no seu banco de dados.
  • Não é garantido que haverá um meio automático de recuperar dados de versões beta. Porém posso ver um meio de explicar como fazer tais mudanças manualmente, em especial se forem simples.
  • Não é garantido que serão liberadas atualizações via JUpdater.

Versões Release Candidade, ext_nome_X.Y.Z_RC1... 

O que você deve ter em mente

  • Podem ser usadas em sites de produção.
  • Garante-se que, caso haja alguma mudança que lide com dados anteriores, que haverá um meio automático de atualização de tais dados, ou uma documentação de como fazer tal atualização, além de uma possível ajuda direta do desenvolvedor para lhe ajudar.
  • Tendência a haver liberação via JUpdater.
     

Versões estáveis, ext_nome_X.Y.Z (sem descrição da versão), ext_nome_X.Y.Z_stable

Versões estáveis foram previamente testadas, passaram pelos estágios anteriores e, presume-se, que são livres de bugs graves e moderados, e, mesmo que contenham algum problema específico, este não chega a afetar a estabilidade de modo que não possa ser usada em sites de produção.

O que você deve ter em mente

  • Podem ser usadas em sites de produção.
  • Atualizações poderão ser obtidas via JUpdater.

Diverença entre baixar um pacote e baixar direto do sistema de versionamento de código

De todas, ou pelo menos a maioria das extensões de licença livre para uso na comunidade, você pode acompanhar ou mesmo baixar o código no meu repositório no Github que fica em https://github.com/fititnt.

O que você deve ter em mente

  • Embora o XML de algunas extensões possam indicar uma numeração, é possível que desde que ela foi marcada com essa versão tenha sofrido alterações, e seu tipo de versão pode passar a ter as mesmas caracteristicas das versões Alphas que descrevo aqui.
  • Se você usa uma das minhas extensões, porém tem algum problema que está enfrentando, pode ser que no GitHub, esse mesmo bug já tenha sido resolvido. Conforme minha disponibilidade de tempo e, claro, seu problema estar dentro do que seria o foco da extensão, posso até ser bem amigável em ajudar com o seu problema.
  • E, conselho final: baixar direto do meu github é desaconselhável se você não tem uma experiência prévia com o conceito de versionamento código, em especial se pretende usar em sites de produção e não de sites em desenvolvimento.

Extensões mantidas e com suporte e atualização e versões abandonadas

Embora haja um esforço, não tenho como garantir que cada extensão seja mantida por todo o sempre. Isso quer dizer que uma extensão pode deixar em algum momento de a) parar de receber melhorias, mas ainda manter correções de bugs reportados b) parar de receber correções de bugs não críticos, porém receber atualizações de segurança e c) serem marcadas como sem suporte. As motivações para tal podem ser variadas, mas podem ir desde uma extensão pouco usada ou que tem uma equivalente melhor, ou por falta de tempo meu para colaborar com código.

Lembre-se: TODAS as minhas extensões liberadas ao publico, salvo quando dito explicitamente o contrário, são liberadas sob a licença que permita que você a adapte como quiser. Some a isso o fato de que eu me esforço para manter um código legível e de fácil manutenção, e que siga as ideias gerais de como deveria ser feito para funcionar bem com as atualizações constantes do CMS e Framework Joomla. Em outras palavras, isso quer dizer que mesmo que eu não possa lhe ajudar, algum outro profissional especialista em Joomla, senão você mesmo com algum esforço, poderá alterar ou atualizar uma extensão que tenha inicialmente obtido por mim.

comments powered by Disqus

fititnt.org is not affiliated with or endorsed by the Joomla Project or Open Source Matters. The Joomla logo is used under a limited license granted by Open Source Matters the trademark holder in the United States and other countries
HTML5 Valid