Apêndice: ADR de exemplo - AWS Orientação prescritiva

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Apêndice: ADR de exemplo

Título

Essa decisão define a abordagem do ciclo de vida do desenvolvimento de software para o desenvolvimento de aplicações ABC.

Status

Aceito

Data

11-03-2022

Contexto

A aplicação ABC é um pacote de soluções, que será implantado no ambiente do cliente usando um pacote de implantação. Precisamos ter um processo de desenvolvimento que nos permita ter um recurso controlável, um hotfix e um pipeline de lançamento.

Decisão

Usamos uma versão adaptada do Fluxo de trabalho do GitFlowpara desenvolver a aplicação ABC.

Fluxo de trabalho GitFlow, adaptado para a aplicação de amostra ABC

Para simplificar, não usaremos as ramificações hotfix/* e release/*, porque a aplicação ABC será empacotada em vez de ser implantada em um ambiente específico. Por esse motivo, não há necessidade de complexidade adicional que possa nos impedir de reagir rapidamente para corrigir bugs em versões de produção ou testar versões em um ambiente separado.

A seguir está a estratégia de ramificação acordada:

  • Cada repositório deve ter uma ramificação main protegida que será usada para marcar lançamentos.

  • Cada repositório deve ter uma ramificação develop protegida para todo o trabalho de desenvolvimento em andamento.

Consequências

Positivo:

  • O processo adaptado do GitFlow nos permitirá controlar a versão de lançamento da aplicação ABC.

Negativo:

  • O GitFlow é mais complicado do que o desenvolvimento baseado em troncos ou o fluxo do GitHub e tem mais sobrecarga.

Conformidade

  • As ramificações main e develop em cada repositório devem ser marcadas como Protected.

  • Mudanças nas ramificações main e develop devem ser propagadas usando solicitações de mesclagem.

  • É necessária pelo menos uma aprovação para cada solicitação de mesclagem.

Observações

  • Autor: Jane Doe

  • Versão: 0.1

  • Changelog:

    • 0.1: versão inicial proposta