wiki:Projeto/Versionamento

Version 6 (modified by niltonneto, 13 years ago) (diff)

Processo de desenvolvimento, testes e versionamento de pacotes.

Novo Modelo de Versionamento para os pacotes do Expresso Livre - Novembro de 2010

Objetivo

O novo modelo para o processo de versionamento dos pacotes do ExpressoLivre? tem como objetivo, suprir a necessidade exigida pelas empresas de gerar pacotes de versões sem periodicidade definida, ou seja, flexibilizar o processo de versionamento do pacote ExpressoLivre? conforme o tempo e a demanda de cada empresa que compôe a equipe de desenvolvimento do projeto. Além disso, este modelo contempla o versionamento periódico necessário para disponibilizar pacotes de novas versões à comunidade Expresso Livre.

Outro ponto, intrinsecamente ligado ao sucesso desse novo modelo, será garantir estabilidade e qualidade na linha principal de desenvolvimento do projeto, através da modificação do processo atual de desenvolvimento.

Problemática do modelo atual

Atualmente, o modelo utilizado para versionar pacotes do Expresso Livre baseia-se apenas na criação de “Branches” para estabilizar e publicar versões a todos os utilizadores da ferramenta, mesmo àqueles que fazem parte do grupo oficial de desenvolvimento.

Dessa forma, a linha principal de desenvolvimento, conhecida por “Trunk”, tornou-se um grande problema para todos que queiram gerar versões a partir do mesmo, conforme sua demanda em um determinado momento, visto que o ramo Trunk do SVN não detém nenhuma estabilidade de funcionamento em seu código armazenado.

Essa instabilidade foi adquirida ao longo dos últimos tempos, em virtude da falta de planejamento e ausência de testes e de homologação, por parte de toda equipe envolvida no desenvolvimento principal do projeto, em todos os seus módulos. A falta de bom censo contribuiu para o crescimento deste problema, já que muitos desenvolvedores efetuavam o “commit” de suas inovações, diretamente no ramo Trunk, sem nenhum controle de testes e homologação do mesmo, e principalmente, sem dimensionar os riscos envolvidos nessa operação.

Como consequência, para que o projeto não fosse prejudicado em virtude dessa instabilidade no Trunk, decidiu-se por criar branches de versões, para que então se pudesse manter o suporte das versões já lançadas, e também, planejar uma nova versão estável para a comunidade. Infelizmente, essa decisão desencadeou uma série de “efeitos colaterais”, já que muitas empresas e membros da comunidade já tinham implementado novas funcionalidades e correções diretamente no Trunk. Sem alternativa, esses colaboradores acabaram desencorajando seus esforços para manter suas contribuições na versão principal, visto que a mesma já não era confiável. Como resultado, os “forkes” acabaram sendo criados.

Por conta disso, e com grande preocupação como o futuro do projeto, o comitê gestor do ExpressoLivre? reuniu-se , em carácter de urgência, e aprovou um plano de unificação dessas diferentes versões, com objetivo de eliminar os “forkes” gerados e principalmente, retomar o desenvolvimento colaborativo do Expresso Livre. O ponto principal dessa unificação foi a centralização de todo o trabalho em um único nó Branch do SVN, estável, já com planejamento, testes e homologação pré-definidos, e versão nomeada como Expresso 2.2. Neste momento, o trabalho de unificação está muito bem encaminhado. Todas as empresas e demais colaboradores envolvidos seguem o cronograma definido pelo CG, mas a problemática descrita ainda é uma realidade dentro do processo de desenvolvimento do Expresso, e se não for solucionado, de nada irá adiantar todo esse trabalho de unificação.

Portanto, visando resgatar a credibilidade e a estabilidade da linha principal de desenvolvimento, bem como garantir a flexibilidade no versionamento de pacotes estáveis do Expresso a partir do Trunk, será proposto um novo modelo para o processo de versionamento do ExpressoLivre?.

Attachments