Skip to content

Release Process

Marcelo Trindade edited this page Aug 29, 2026 · 1 revision

Processo de release

O processo de release é um gate reproduzível, não uma declaração automática de que a versão está pronta.

1. Escopo

Confirme:

  • branch correta;
  • working tree limpa;
  • baseline registrada;
  • escopo compatível com a fase da versão.

2. Versão e documentação

Atualize:

  • Cargo.toml;
  • lockfiles quando necessário;
  • changelog;
  • release notes;
  • readiness/regressões;
  • documentação afetada.

3. Gates Cargo

cargo fmt --check
cargo check --locked
cargo clippy --locked --all-targets --all-features -- -D warnings
cargo test --locked
cargo build --locked

4. Migrations

Valide schemas históricos 0–7.

Verifique:

  • preservação de dados;
  • segunda abertura idempotente;
  • quick_check;
  • foreign keys;
  • rejeição de schema futuro.

5. Upgrade real

Use artefatos publicados representativos em ambiente XDG isolado.

6. ADIF

Teste:

  • corpus;
  • round-trip;
  • modos específicos;
  • unknown fields;
  • preview/cancel;
  • export atual;
  • overwrite;
  • fuzzing quando aplicável.

7. Backup/recovery

Verifique:

  • backups atuais/antigos;
  • arquivos futuros/inválidos;
  • restore;
  • reabertura;
  • novo backup pós-restore.

8. Performance

Execute checkpoints 10k/100k quando a fase exigir.

9. Packaging

sh -n packaging/linux/*.sh
packaging/linux/smoke-test.sh

10. Artefato exato

Gere o RC uma vez e valide aquele mesmo binário.

Não reconstrua silenciosamente depois da validação.

11. Regressão manual

Inclua:

  • Generic, DMR, FT8, D-STAR, YSF/C4FM;
  • editor;
  • duplicidade;
  • filtros;
  • teclado;
  • ADIF;
  • backup;
  • health;
  • baseline visual.

12. Autorização

Integração em main, tag e GitHub Release dependem de autorização explícita do mantenedor.

Veja também

Clone this wiki locally