TerraLib and TerraView Wiki Page

Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
wiki:documentation:devguide:versioning [2016/03/08 12:37]
gribeiro [Veja Também os Seguintes Documentos]
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 70: Line 71:
   * [[http://​semver.org|Semantic Versioning 2.0.0]].   * [[http://​semver.org|Semantic Versioning 2.0.0]].
  
 +  * [[http://​en.wikipedia.org/​wiki/​Software_versioning|Software Versioning]].
 +
 +  * [[http://​en.wikipedia.org/​wiki/​Deprecation|Deprecation]].