Skip to main content

DVCS

Si è utilizzato Git e GitHub come sistema di controllo versione distribuito (DVCS) per gestire il codice sorgente del progetto. Il modello di branching adottato è stato Trunk Based Development, che prevede l'utilizzo di un branch principale (main) per lo sviluppo continuo e la creazione di branch secondari per le funzionalità specifiche.

Branching Model

Il modello di branching adottato è stato il seguente:

  • main: Il branch principale, che contiene sempre il codice pronto per la produzione. Tutte le modifiche vengono integrate in questo branch dopo essere state testate e revisionate.
  • feature/: Branch creati per lo sviluppo di nuove funzionalità. Ogni feature ha un proprio branch dedicato, che viene creato a partire dal branch main e successivamente unito al main una volta completata e testata.
  • hotfix/: Branch creati per risolvere bug critici in produzione. Questi branch vengono creati a partire dal branch main e, una volta risolto il problema, le modifiche vengono integrate nel main e nei branch delle feature attive.
  • doc: Branch dedicato alla documentazione del progetto. Le modifiche alla documentazione vengono effettuate in questo branch e successivamente integrate nel main.

Commit e Pull Request

I commit e i titoli delle pull request seguono Conventional Commits. Le release sono state effettuate tramite GitHub Actions, seguendo le convenzioni di versionamento semantico SemVer. Per il controllo del testo dei commit è stato utilizzato un git hook pre-commit, che verifica che i commit rispettino le convenzioni stabilite. Per le pull request, il titolo è stato controllato utilizzando l'app Mergify, che verifica che il titolo della pull request rispetti le convenzioni stabilite.

Definition of Done

Per poter chiudere una pull request, è necessario che siano soddisfatte le seguenti condizioni:

  • Il codice deve essere stato testato e verificato.
  • La pull request deve essere stata revisionata da almeno due altri membri del team.
  • Il titolo della pull request deve seguire le convenzioni di Conventional Commits.
  • Tutti i test devono passare con successo.
  • La documentazione deve essere aggiornata, se necessario.