| 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/.
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
- Ta branche est à jour avec
develop(git rebase developougit merge develop) ./mvnw testpasse en local — 0 failure, 0 error- Javadoc présent sur toutes les classes et méthodes publiques ajoutées
- Ouvre le MR vers
developsur GitHub - Remplis le template de MR (pré-rempli automatiquement)
- Assigne au moins un reviewer
- 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
- 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→ utiliserjava.util.logging.Logger - Imports inutilisés supprimés (Ctrl+Alt+O dans IntelliJ)
- Pas de TODO non documenté dans un MR
| 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 |