

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Appendice: ADR di esempio
<a name="appendix"></a>

**Titolo**

Questa decisione definisce l'approccio al ciclo di vita dello sviluppo del software per l'implementazione di applicazioni ABC.

**Stato**

Accettato

**Data**

2022-03-11

**Contesto**

L'applicazione ABC è una soluzione pacchettizzata che verrà distribuita nell'ambiente del cliente tramite un pacchetto di implementazione. È necessario un processo di sviluppo che ci consenta di disporre di funzionalità controllabili, hotfix e pipeline di rilascio.

**Decisione**

Utilizziamo una versione adattata del [GitFlowflusso di lavoro](https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow) per sviluppare l'applicazione ABC.

![GitFlow flusso di lavoro, adattato per l'applicazione di esempio ABC](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/architectural-decision-records/images/gitflow-workflow.png)


Per semplicità non si utilizzeranno le ramificazioni `hotfix/*` e `release/*`, dal momento che l'applicazione ABC verrà assemblata e non implementata in un ambiente specifico. Per questo motivo, non è necessario introdurre nuovi livelli di complessità che potrebbero impedirci di reagire rapidamente alla correzione di bug nelle versioni di produzione o di testare le versioni in un ambiente separato.

Di seguito è riportata la strategia di ramificazione concordata:
+ Ogni repository deve avere una ramificazione `main` protetta, da utilizzare per applicare tag alle versioni.
+ Ogni repository deve avere una ramificazione `develop` protetta per tutti i lavori di sviluppo in corso.

**Conseguenze**

Aspetti positivi:
+  GitFlow Il processo adattato ci consentirà di controllare il controllo delle versioni di rilascio dell'applicazione ABC.

Aspetti negativi:
+ GitFlow è più complicato dello sviluppo o del GitHub flusso basato su trunk e ha maggiori costi generali.

**Conformità**
+ Le ramificazioni `main` e `develop` in ogni repository devono essere contrassegnate come `Protected`.
+ Le modifiche apportate alle ramificazioni `main` e `develop` devono essere propagate utilizzando le richieste di unione.
+ È richiesta almeno un'approvazione per ogni richiesta di unione.

**Note**
+ Autore: Jane Doe
+ Versione: 0.1
+ Changelog: 
  + 0.1: versione iniziale proposta