Estabilidade da API
Um produto é caracterizado pela distribuição periódica de mudanças visando sua evolução e estabilização. Cada uma dessas distribuições é considerada uma nova versão do produto e recebe uma número que as identifique unicamente.
O LumisXP pode ser distribuído de várias formas diferentes, de acordo com a natureza das modificações e a necessidade ou agilidade.
Os tipos de distribuição são:
Versão: Caracteriza-se pela distribuição do produto completo, com todas as funcionalidades e componentes, com as respectivas documentações e rotinas de instalação e upgrade de versões anteriores.
A versão do LumisXP é representada por 4 partes constituintes, separadas por um ponto:
- Número da versão "Major";
- Número da versão "Minor";
- Número da "Release";
- Número da "Build"
Por exemplo, a versão 4.0.8.070126 significa que:
- Número da versão "Major": 4;
- Número da versão "Minor": 0;
- Número da "Release": 8;
- Número da "Build": 070126
Hotfix: Caracteriza-se por um pacote que contém uma ou mais modificações pontuais, normalmente correção de defeitos. É distribuído para ser aplicado em uma versão imediatamente anterior. Este pacote atualiza o produto para uma versão mais nova, cujo número corresponde a uma "Build".
Service Pack: Caracteriza-se por uma pacote que pode conter alterações em funcionalidades atuais, novas funcionalidades e várias correções de defeitos. É distribuído para ser aplicado em uma versão anterior. Este pacote atualiza o produto para uma versão mais nova, cujo número corresponde a uma "Release".
As API's do framework do LumisXP podem estar nos seguintes níveis de estabilidade:
- "Stable Major": significa que, uma vez que a API pública de um objeto alcança este nível de estabilidade, todas as releases subsequentes do produto, com o mesmo número de versão "Major" são, garantidamente, "backwards compatible";
Este nível de estabilidade está representado na definição da classe do objeto estável, da seguinte forma:
StableMajor(version = "XX" sinceVersion = "YY")
O atributo version informar a versão corrente estável da API; e o atributo sinceVersion informa desde qual versão a API está compatível com a versão corrente (version).
- "Stable Minor": significa que, uma vez que a API pública de um objeto alcança este nível de estabilidade, todas as releases subsequentes do produto com o mesmo número da versão "Major" e número da versão "Minor" são, garantidamente, "backwards compatible";
Este nível de estabilidade está representado na definição da classe do objeto estável, da seguinte forma:
StableMinor(version = "XX.XX", sinceVersion = "YY.YY")
- "Volatile": significa que, a API pode ser alterada em alguma build subsequente ou release do produto, e não há garantias de "backwards compatibilidade". Este nível de estabilidade não é representado na definição da classe do objeto não estável.
Se não há anotações referentes ao "StableMajor" ou "StableMinor" na definição da classe do objeto, deve-se assumir que tal objeto não é estável.