TerraLib and TerraView Wiki Page

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
wiki:documentation:devguide:versioning [2016/03/08 12:35]
gribeiro created
wiki:documentation:devguide:versioning [2016/03/14 15:09] (current)
marisa [Versionamento Repositório]
Line 10: Line 10:
 As versões estáveis são numeradas usando-se a tripla //​**x.y.z**//,​ que indica, respectivamente,​ os números conhecidos por //Major Version//, //Minor Version// e //Patch Version// (ou //revision number//). As versões estáveis são numeradas usando-se a tripla //​**x.y.z**//,​ que indica, respectivamente,​ os números conhecidos por //Major Version//, //Minor Version// e //Patch Version// (ou //revision number//).
  
-A numeração **x** é usada para separar versões bem diferentes e que, geralmente, indicam uma grande mudança na API. Mudanças neste nível podem implicar desde a adição de um grande número de funcionalidades até saltos tecnológicos que culminem no rompimento total da API. Em resumo, os desenvolvedores,​ clientes da API TerraMA2, podem esperar mudanças significativas da API.+A numeração **x** é usada para separar versões bem diferentes e que, geralmente, indicam uma grande mudança na API. Mudanças neste nível podem implicar desde a adição de um grande número de funcionalidades até saltos tecnológicos que culminem no rompimento total da API. Em resumo, os desenvolvedores,​ clientes da API TerraLib, podem esperar mudanças significativas da API.
  
 A numeração **y** é usada para separar versões que adicionam novas funcionalidades,​ mas que não trazem grandes impactos nas aplicações existentes. Mudanças neste nível não devem acarretar incompatibilidades entre as APIs. Obviamente, o uso de recursos da nova versão farão com que o cliente não possa fazer a atualização para baixo novamente sem um mínimo de esforço de programação. A numeração **y** é usada para separar versões que adicionam novas funcionalidades,​ mas que não trazem grandes impactos nas aplicações existentes. Mudanças neste nível não devem acarretar incompatibilidades entre as APIs. Obviamente, o uso de recursos da nova versão farão com que o cliente não possa fazer a atualização para baixo novamente sem um mínimo de esforço de programação.
Line 17: Line 17:
  
 As versões de **pré-lançamento** (//​instáveis//​ ou //​experimentais//​) possuem um qualificador extra, um sufixo da forma: //​**-tipo-pré-lançamento.w**//​. Até que uma versão atinja um ponto estável, passando por todos os testes de aceitação,​ esta versão passará, na ordem, pelos seguintes estados: As versões de **pré-lançamento** (//​instáveis//​ ou //​experimentais//​) possuem um qualificador extra, um sufixo da forma: //​**-tipo-pré-lançamento.w**//​. Até que uma versão atinja um ponto estável, passando por todos os testes de aceitação,​ esta versão passará, na ordem, pelos seguintes estados:
-  * **alpha.w:​** a qualificação //alpha// é reservada para geração de versões preliminares que possam ser usadas por colaboradores e usuários que tenham produtos baseados no TerraMA2 ​e que tenham a necessidade de acompanhar os lançamentos mais recentes.+  * **alpha.w:​** a qualificação //alpha// é reservada para geração de versões preliminares que possam ser usadas por colaboradores e usuários que tenham produtos baseados no TerraLib ​e que tenham a necessidade de acompanhar os lançamentos mais recentes.
   * **beta.w:** a qualificação //beta// indica que é um produto que já pode ser testado pelos colaboradores e usuários.   * **beta.w:** a qualificação //beta// indica que é um produto que já pode ser testado pelos colaboradores e usuários.
   * **rc.w:** a qualificação //release candidate// indica que o produto já se encontra em um nível próximo de ser aceito, mas que ainda pode sofrer modificações devido a correções.   * **rc.w:** a qualificação //release candidate// indica que o produto já se encontra em um nível próximo de ser aceito, mas que ainda pode sofrer modificações devido a correções.
Line 36: Line 36:
   * Para cada versão menor do cronograma será criado um ramo com o seu nome. Exemplos: release-5.0,​ release-5.1.   * Para cada versão menor do cronograma será criado um ramo com o seu nome. Exemplos: release-5.0,​ release-5.1.
   * Nos ramos das versões menores, como o release-5.0,​ trabalharemos apenas na correção de erros e estabilização de código, devendo as correções serem aplicadas a todos os ramos relacionados. Este ramo será congelado, isto é, não iremos incluir novas funcionalidades,​ apenas vamos gerar correções dessa versão.   * Nos ramos das versões menores, como o release-5.0,​ trabalharemos apenas na correção de erros e estabilização de código, devendo as correções serem aplicadas a todos os ramos relacionados. Este ramo será congelado, isto é, não iremos incluir novas funcionalidades,​ apenas vamos gerar correções dessa versão.
-  * Para cada versão lançada, iremos criar uma tag com a seguinte nomenclatura: ​v-x.y.z. Assim teremos as tags: v-5.0.0, ​v-5.0.1, ​v-5.1.0, ​v5.1.1.+  * Para cada versão lançada, iremos criar uma tag com a seguinte nomenclatura:​ x.y.z. Assim teremos as tags: 5.0.0, 5.0.1, 5.1.0, ​5.1.1, 5.2.0, ...
  
 A figura abaixo ilustra o esquema de versionamento adotado. A figura abaixo ilustra o esquema de versionamento adotado.
Line 60: Line 60:
 Além das variáveis acima, existe a classe terralib::​common::​Version que permite obter as informações acima em tempo de execução das aplicações,​ assim como a data de build da distribuição da TerraLib. Além das variáveis acima, existe a classe terralib::​common::​Version que permite obter as informações acima em tempo de execução das aplicações,​ assim como a data de build da distribuição da TerraLib.
  
 +NOTA: alterar a splash window que fica no sub-dir share\terraview\images\png para refletir o número da versão.
 ===== Procedimento de Versionamento ===== ===== Procedimento de Versionamento =====
  
Line 66: Line 67:
 ===== Veja Também os Seguintes Documentos ===== ===== Veja Também os Seguintes Documentos =====
  
 +  * [[wiki:​documentation:​devguide:​branches_and_tags|Branches and Tags]].
  
 +  * [[http://​semver.org|Semantic Versioning 2.0.0]].
 +
 +  * [[http://​en.wikipedia.org/​wiki/​Software_versioning|Software Versioning]].
 +
 +  * [[http://​en.wikipedia.org/​wiki/​Deprecation|Deprecation]].