Skip to content

Latest commit

 

History

History
74 lines (58 loc) · 2.47 KB

File metadata and controls

74 lines (58 loc) · 2.47 KB

Guide de contribution — Cyber Lab Manager

Branches

Préfixe Usage Exemple
feature/ Nouvelle fonctionnalité feature/vbox-orchestrator
fix/ Correction de bug fix/snapshot-uuid-null
chore/ Config, CI, docs chore/github-config
test/ Ajout ou correction de tests seuls test/hypervisor-coverage

Règle absolue : on ne pousse jamais directement sur develop ou main.
Toujours passer par un MR depuis une branche feature/ ou fix/.

Format des commits

On suit Conventional Commits :

<type>(<scope optionnel>): <description courte en français>
Type Quand l'utiliser
feat Ajout d'une fonctionnalité
fix Correction d'un bug
test Ajout ou modification de tests
docs Documentation (Javadoc, Markdown)
refactor Refactoring sans changement de comportement
chore Config build, CI, dépendances

Exemples :

feat(model): add Snapshot uuid and online fields
fix(hypervisor): handle VBoxManage non-zero exit code
test(model): add LabTest unmodifiable list assertion
docs(hypervisor): complete Javadoc on IHypervisor
chore: add GitHub Actions CI workflow

Ouvrir un MR

  1. Ta branche est à jour avec develop (git rebase develop ou git merge develop)
  2. ./mvnw test passe en local — 0 failure, 0 error
  3. Javadoc présent sur toutes les classes et méthodes publiques ajoutées
  4. Ouvre le MR vers develop sur GitHub
  5. Remplis le template de MR (pré-rempli automatiquement)
  6. Assigne au moins un reviewer

Revue de code

  • Le reviewer a 48h pour donner son retour
  • Un commentaire [bloquant] doit être résolu avant le merge
  • Un commentaire [suggestion] est optionnel
  • Approuver = confirmer que les tests passent ET que le code est lisible

Standards de code

  • Java 17, style standard IntelliJ (Ctrl+Alt+L pour formatter)
  • Javadoc obligatoire sur toutes les classes et méthodes public
  • Pas de System.out.println → utiliser java.util.logging.Logger
  • Imports inutilisés supprimés (Ctrl+Alt+O dans IntelliJ)
  • Pas de TODO non documenté dans un MR

Responsabilités par package

Package Responsable
tg.cyberlabmanager.model Rôle 3
tg.cyberlabmanager.hypervisor Rôle 3
tg.cyberlabmanager.data Rôle 2
tg.cyberlabmanager.pdf Rôle 2
tg.cyberlabmanager.ui Rôle 1
tg.cyberlabmanager.controller Rôle 1