Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Qualidade e Integração Contínua (CI/CD)

As métricas de qualidade do PAEBIRU blindam a branch main através de gates rígidos implementados no GitHub Workflows e gerenciados pelo Makefile. Conforme definido na RFC 050, todo código deve obedecer aos quatro dogmas inquebráveis do ecossistema.

1. Os Quatro Dogmas do Código

Para garantir a modularidade e a escalabilidade do microcontrolador ao mainframe, todo código submetido deve seguir:

  • Isolamento Absoluto (Arquitetura Hexagonal): Separação estrita entre regras de domínio e infraestrutura. O núcleo matemático é agnóstico a rede ou disco, utilizando Traits (Ports) para inversão de dependência.
  • Paradigma GALS e Atores (Sem Condições de Corrida): O estado interno nunca é compartilhado via bloqueios globais. A comunicação entre componentes (Kernel, Biologia, Economia, C.A.P.I.B.A.) é exclusivamente via troca de mensagens baseada em eventos.
  • Pragmatismo de Hardware (no_std First): O núcleo do domínio deve ser compilável sem a biblioteca padrão (no_std), permitindo execução em dispositivos de energy harvesting.
  • Interoperabilidade Blindada (Opaque Handles): O FFI para as 13 linguagens suportadas deve exportar apenas ponteiros opacos (Opaque Handles), garantindo a segurança de memória.

2. Esteiras de Validação (CI)

A “Muralha de Qualidade” consiste em gates rígidos que impedem regressões:

  1. Esteira de Conformidade:
    • Lints (rtk make lint).
    • Formatação (rtk make fmt).
    • Auditoria de Segurança (cargo audit).
  2. Esteira GALS & Domínio:
    • Execução de testes unitários isolados (rtk make test).
    • Validação de dependências cruzadas entre Bounded Contexts.
  3. Esteira de Verificação Formal:
    • Aciona TLA+ e Lean 4 para funções puras do Kernel e paebiru-math.
  4. Esteira Embarcada (no_std):
    • Compila o Kernel e Math para targets embarcados (ex: thumbv7em-none-eabihf), atestando que a lógica roda em Energy Harvesting.

Nenhuma regressão deve ser mesclada na main. A “entropia termodinâmica” do código (complexidade) deve ser minimizada em cada revisão. A execução de rtk make pre-commit é mandatória antes de finalizar qualquer tarefa.