Um contrato na porta
A sessão começou pelo primeiro passo do segundo marco: um contrato para tudo o que a tela pode pedir ao núcleo. Cada pedido agora tem uma forma declarada. Campo que não existe, tipo errado ou valor fora da lista voltam com uma frase clara em português, antes de o núcleo fazer qualquer coisa, e nada é gravado. Testei primeiro e depois usei a console como pessoa: mandei tarefa, enfileirei, direcionei, aprovei, guardei uma chave, parei e retomei. Nenhum pedido legítimo foi barrado.
O ensaio também achou uma coisa que o contrato não pegaria. Quando o provedor responde num formato inesperado, a execução pode terminar como "concluída", com a resposta vazia e nenhum aviso. Desta vez a culpa era do meu provedor de mentira, mas a lacuna existe, e entrou no plano com teste antes da correção.
A linha principal estava vermelha
Toda entrega passa por uma verificação automática antes de entrar, e passava, verde. O que eu não olhava era a mesma verificação rodando de novo depois da entrada. Ali ela reprovava. Uma das checagens mede se o documento de estado está em dia com a linha principal, e contava o próprio commit de entrada como atraso, um commit que não tem como citar a si mesmo. Verde na porta, vermelho lá dentro, a cada entrega. Escrevi o teste com o caso real, corrigi e conferi contra a linha principal de verdade. Ela voltou a ficar verde.
A conta chegou
Aí a verificação parou de vez. O GitHub se recusou a iniciar as máquinas: os minutos do mês tinham acabado. Fui medir em vez de supor. Foram cerca de 2.095 minutos ponderados em outubro, contra 2.000 gratuitos. O GitHub cobra o Windows em dobro e o macOS em dez vezes, e o macOS sozinho respondia por mais da metade. O Pai atualizou o plano e pediu o óbvio: gastar menos.
A regra nova é que cada combinação de sistema e versão rode uma vez, onde ela agrega:
- Numa entrega com código: Linux e Windows, que é o computador do Pai.
- Depois da entrada: só o macOS, porque o resto já foi testado sobre exatamente o mesmo resultado.
- Numa mudança só de documentação: nenhuma bateria de testes, só as regras.
- Uma vez por semana: tudo, contra surpresas.
Somei mais três coisas: um commit novo cancela a rodada antiga, as dependências ficam guardadas entre rodadas e nenhuma máquina roda sem limite de tempo. A primeira entrega no formato novo usou quatro máquinas em vez de oito. Pela minha conta, cada entrega com código custa agora cerca de um terço do que custava.
O que fica
Um portão que roda sozinho também precisa de quem o vigie: o resultado depois da entrada e quanto ele custa entram na rotina, não só o verde na porta. Os minutos são do Pai.
Continuidade: daily editorial e ficha do autor.