Aplicar desenvolvimento baseado em tronco
Com seus scripts de treinamento e definições de trabalho no controle do código-fonte, o próximo desafio é protegê-los. Dois cientistas de dados que editam o mesmo arquivo na ramificação main, ao mesmo tempo, podem criar conflitos e, mais importante ainda, falhas acidentais no código do qual outros dependem. O desenvolvimento baseado em tronco fornece à sua equipe uma maneira estruturada de desenvolver o modelo, mantendo o código de produção estável.
Mantenha a ramificação compartilhada estável
No desenvolvimento baseado em tronco, os colaboradores integram as alterações em um ramo compartilhado, geralmente main. As equipes mantêm esse ramo em bom estado para que ele continue sendo um ponto de partida confiável para novo trabalho.
No projeto Proseware, a equipe exige alterações para chegar a main por meio de pull requests. Essa política oferece aos revisores e verificações automatizadas uma chance de avaliar cada alteração antes da integração.
Branches de funcionalidade de curta duração
Quando um cientista de dados quer experimentar com um novo recurso — digamos, adicionar uma variável de IMC ao modelo de diabetes — ele cria um ramo de curta duração a partir de main. O trabalho acontece lá, isolado do código de todos os outros. Quando o experimento estiver pronto para revisão, o cientista de dados abrirá uma solicitação de pull.
Branches de curta duração reduzem a chance de se afastarem muito de main, o que torna a mesclagem mais fácil e os conflitos menores.
Solicitações de pull, revisões e verificações necessárias
Uma solicitação de pull faz duas coisas: mostra aos revisores exatamente o que mudou e se torna o ponto de gatilho para verificações automatizadas. Os revisores podem fazer perguntas, solicitar alterações ou aprovar o trabalho. A automação é executada em paralelo com a revisão.
Regras de proteção de branch ou conjuntos de regras podem impor esse processo. Dependendo das configurações do repositório, uma regra no main pode:
- Restringir envios diretos
- Exigir um número mínimo de aprovações antes da mesclagem
- Exigir verificações de status específicas para passar antes da mesclagem
GitHub Actions fluxos de trabalho podem produzir as verificações necessárias por uma regra. Você vai explorar essas verificações na próxima unidade.
Observação
Regras de proteção de ramificações e conjuntos de regras são configurações do repositório no GitHub, não do GitHub Actions. O fluxo de trabalho define o que é executado. A regra de proteção decide se uma mesclagem é permitida com base no resultado.
Dica
Considere uma alteração de modelo que precisa de várias semanas de trabalho. Como você poderia dividi-lo em mudanças menores que se fundem main sem sair de uma ramificação de longa duração?