# 04 — Outil de gestion des demandes d'évolutions et des incidents

Projet **(RE)Sources Relationnelles** — Bloc INFCDAAL3

## 1. Outil choisi : les *Issues* de Gitea

La gestion des évolutions et des incidents s'appuie sur le module **Issues** de
Gitea (déjà utilisé pour le code), ce qui évite d'ajouter un outil externe et
centralise le suivi au même endroit que le code et les déploiements.

- Instance : `https://gitea.sam-coffre.duckdns.org/`

## 2. Typologie des demandes (labels)

Chaque demande est catégorisée par un **label** :

| Label | Usage |
|-------|-------|
| `bug` | Incident / anomalie en production |
| `evolution` | Demande d'évolution fonctionnelle |
| `securite` | Faille ou correctif de sécurité (priorité haute) |
| `documentation` | Mise à jour de documentation |
| `priorite:haute` / `priorite:basse` | Niveau de priorité |

## 3. Cycle de vie d'une demande

```
Ouverte  →  À traiter  →  En cours  →  En test (QA)  →  Résolue / Fermée
```

- Une *issue* est **liée à une branche et à une Pull Request** ; la fusion de la
  PR ferme automatiquement l'issue (mot-clé `Closes #12` dans le commit).
- Le tableau **Projects (Kanban)** de Gitea permet de visualiser l'avancement
  (colonnes : À faire / En cours / Terminé).
- Les **Milestones** regroupent les demandes par version cible (ex. `v1.1`).

## 4. Processus de gestion des incidents (maintenance corrective)

1. **Détection** : signalement (utilisateur, supervision, logs).
2. **Qualification** : création d'une issue `bug`, évaluation de la gravité.
3. **Priorisation** : affectation d'un label de priorité et d'un responsable.
4. **Correction** : branche `fix/…`, développement, tests.
5. **Validation** : CI verte + recette en QA.
6. **Déploiement** : fusion sur `master` → mise en production automatique.
7. **Clôture** : fermeture de l'issue, note de version si nécessaire.

## 5. Processus de gestion des évolutions (maintenance évolutive)

1. **Recueil du besoin** : issue `evolution` décrivant le besoin et la valeur.
2. **Analyse et estimation** : faisabilité, impact, charge.
3. **Planification** : affectation à un *milestone* / une version.
4. **Réalisation** : branche `feature/…`, développement + tests.
5. **Revue et intégration** : Pull Request relue, CI validée.
6. **Livraison** : déploiement continu, communication de la nouvelle version.

## 6. Traçabilité

Grâce à Gitea, chaque évolution est traçable de bout en bout :

**Issue → Branche → Commits → Pull Request → CI → Déploiement → Release**

Cette chaîne assure la traçabilité complète exigée pour la maintenance d'une
application manipulant des données sensibles.
