

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
<a name="appendix"></a>

**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**

2022-03-11

**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 [GitFlowfluxo de trabalho](https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow) para desenvolver o aplicativo ABC.

![GitFlow fluxo de trabalho, adaptado para o aplicativo de amostra ABC](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/architectural-decision-records/images/gitflow-workflow.png)


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:
+  GitFlow O processo adaptado nos permitirá controlar o controle de versão do aplicativo ABC.

Negativo:
+ GitFlow é mais complicado do que o desenvolvimento ou o GitHub fluxo baseados em troncos 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