Padrão de Versionamento

🎯 Nosso Padrão de Versionamento

Adotamos o Versionamento Semântico combinado com Build Numbers inteligentes para Flutter. Este documento define as regras obrigatórias para toda a equipe.


📚 Parte 1: Versionamento Semântico (SemVer)

🔢 Estrutura: MAJOR.MINOR.PATCH

X.Y.Z

│ │ └── PATCH - Correções de bugs

│ └──── MINOR - Novas funcionalidades

└────── MAJOR - Mudanças que quebram compatibilidade

📋 Regras de Incremento:

🚨 MAJOR (X.y.z) - Mudanças Incompatíveis

Quando incrementar:

  • Remover funcionalidades existentes

  • Alterar comportamento de APIs existentes

  • Mudar estrutura de dados obrigatórias

  • Qualquer mudança que force usuários a alterar código

✨ MINOR (x.Y.z) - Novas Funcionalidades

Quando incrementar:

  • Adicionar novas funcionalidades

  • Adicionar parâmetros opcionais

  • Melhorias de performance significativas

  • Marcar como deprecated (mas ainda funciona)

🔧 PATCH (x.y.Z) - Correções

Quando incrementar:

  • Corrigir bugs

  • Correções de segurança

  • Melhorias internas sem afetar API

  • Correções de documentação


🎮 Parte 2: Nosso Sistema de Build Numbers

⚙️ Formato: MMNNPP

Versão semântica: X.Y.Z

Build number: MMNNPP

Onde:

M = MAJOR (1-9)

NN = MINOR (00-99)

PP = PATCH (01-99)

📊 Exemplos de Conversão:

1.0.1 → 10001

1.15.3 → 11503

2.0.0 → 20000

2.5.42 → 20542

9.99.99 → 99999 (máximo)

📁 No pubspec.yaml:

# Formato obrigatório:

version: 1.15.3+11503

└─────┘ └───┘

SemVer Build


📝 Parte 3: Regras da Equipe

🚦 Fluxo Obrigatório:

Identifique o tipo de mudança:

  • Bug fix? → PATCH

  • Nova feature? → MINOR

  • Breaking change? → MAJOR

Incremente a versão semântica: Atual: 1.2.3

Bug fix: 1.2.4

Feature: 1.3.0

Breaking: 2.0.0

Calcule o build number automaticamente: 1.2.4 → 10204

1.3.0 → 10300

2.0.0 → 20000

Atualize o pubspec.yaml: version: 1.2.4+10204

✅ Checklist Antes do Commit:

  • [ ] Versão incrementada corretamente?

  • [ ] Build number calculado certo?

  • [ ] pubspec.yaml atualizado?

  • [ ] Mudanças documentadas?


🎯 Parte 4: Exemplos Práticos

🚀 Cenário de Evolução:

Início do projeto:

1.0.0+10000 # Primeira versão estável

Correções:

1.0.1+10001 # Bug crítico corrigido

1.0.2+10002 # Correção de UI

Nova funcionalidade:

1.1.0+10100 # Sistema de notificações

1.1.1+10101 # Bug nas notificações

Funcionalidade grande:

1.2.0+10200 # Sistema de pagamentos

1.2.1+10201 # Correção no pagamento

Breaking change:

2.0.0+20000 # Nova autenticação obrigatória

2.0.1+20001 # Correção na migração

Last updated