Regras para contribuidores do InVesalius

Esta página visa atender desenvolvedores que querem contribuir código para o InVesalius.

Espera-se que os colaboradores sigam o seguinte Guia de Estilo.

1. Ferramentas

Os desenvolvedores devem estar familiarizados com as seguintes ferramentas:

  • SVN
  • Patch
  • Epydoc

1.1. SVN

Comentário do commit

É uma boa idéia especificar o tipo de commit que você está fazendo. Basicamente existem 4 tipos:

  • ADD: Quando você adicionar uma nova ferramenta ao InVesalius
  • ENH: Quando melhorar uma funcionalidade já existente (seja em desempenho, seja em relação ao código fonte)
  • DOC: Quando você adicionar ou arrumar a documentação do InVesalius
  • STYLE: Patch cosmético (identação, convenção de estilo)
  • FIX: Correção de bug

Correções de Warning devem ser tratados como "STYLE".

Exemplo:

$ svn ci -m "ENH: Adding OBJ exportation support" ivExport.py

Gerando patches

É importante sempre enviar o patch para a lista invesalius-devel para discutir o que seria inserido. Ao invés de mandar grandes arquivos, apenas envie a diferença entre o código fonte e o trunk, utilizando o comando svn di.

$ svn di > /tmp/invesalius.patch

1.2. Patch

Para aplicar determinado patch basta utilizar o comando patch:

$ patch -p0 < /tmp/invesalius.patch

Patches Unix são facilmente lidos:

+ line: line added
- line: line removed

1.3. Epydoc

A documentação do código fonte do InVesalius é gerada automaticamente pelo Epydoc,software semelhante ao Doxygen.

2. Processo de Release

Não há um cronograma fixo para releases do InVesalius.

O processo de release envolve:

  1. Verificar se todos os testes funcionaram (futuro: dashboard).
  2. Adicionar mudanças para o branch invesalius2.v
  3. Verificar se todos os testes funcionaram (futuro: dashboard)
  4. Criar o tag da versão

O que significa que qualquer patch aplicado ao GDCM deve ir antes ao trunk, depois oara o branch, e, posteriormente, será gerado o tag. A idéia é ter uma versão menos propensa a erros.

Observação: o SVN é bastante flexível e permite alterações em tags. Entretanto, isso deve ser evitado a todo custo.