v1.0 Novembre 2025
14.3

Plan de Montée de Version

La solution de cashback nouvelle génération

24 novembre 2025
Version 1.0
1

INTRODUCTION

1.1 Objectif du Document

Ce document définit la stratégie complète de gestion des versions pour l'écosystème REWAPP. Il établit les conventions de versioning, les processus de release, les procédures de migration et les mécanismes de communication pour garantir des mises à jour fluides et transparentes.

OBJECTIFS PRINCIPAUX
  • Garantir la cohérence des versions entre tous les composants REWAPP
  • Assurer une transition fluide pour les utilisateurs et partenaires
  • Minimiser les risques lors des montées de version
  • Maintenir une documentation exhaustive des changements

1.2 Portée

Ce plan couvre l'ensemble des composantes de l'écosystème REWAPP :

  • Application Mobile (iOS/Android) - Angular + Ionic
  • Site Vitrine - Next.js + Tailwind CSS
  • Dashboard Admin - React + Ant Design/MUI
  • Dashboard Partenaire - React (PWA) + Vite
  • Backend API - Microservices NestJS
  • Base de Données - PostgreSQL (migrations Prisma)

1.3 Documents de Référence

  • 10.1 Plan de Déploiement
  • 10.5 CI/CD Pipeline
  • 14.1 Plan de Maintenance
  • 14.2 Procédures de Support
  • 4.5 Stack Technique Détaillé
2

STRATÉGIE DE VERSIONING

2.1 Semantic Versioning (SemVer)

REWAPP adopte la convention Semantic Versioning 2.0 (semver.org) pour toutes ses composantes.

FORMAT

MAJOR.MINOR.PATCH (ex: 2.4.1)

Règles de Versioning SemVer

Composant Description Exemple Déclencheur
MAJOR Version majeure 1.x.x → 2.0.0 Breaking changes, refonte majeure, incompatibilité API
MINOR Version mineure 2.3.x → 2.4.0 Nouvelles fonctionnalités, améliorations rétrocompatibles
PATCH Correctif 2.4.0 → 2.4.1 Corrections de bugs, patches de sécurité
RÈGLE FONDAMENTALE
  • Toute modification qui casse la rétrocompatibilité DOIT incrémenter le numéro MAJOR
  • Les nouvelles fonctionnalités incrémentent le numéro MINOR
  • Les corrections de bugs incrémentent le numéro PATCH

2.2 Versioning par Composant

Chaque composant de l'écosystème REWAPP maintient sa propre version indépendante :

Versions par Composant

Composant Format Version Version Actuelle Repository
Application Mobile iOS X.Y.Z (Build N) 1.0.0 (1) rewapp-mobile
Application Mobile Android X.Y.Z (versionCode N) 1.0.0 (1) rewapp-mobile
Backend API vX.Y.Z v1.0.0 rewapp-api
Site Vitrine X.Y.Z 1.0.0 rewapp-vitrine
Dashboard Admin X.Y.Z 1.0.0 rewapp-admin
Dashboard Partenaire X.Y.Z 1.0.0 rewapp-partner
SYNCHRONISATION DES VERSIONS
  • Les versions des composants peuvent évoluer indépendamment
  • Une "Release Globale" synchronise tous les composants à une version cohérente
  • Format Release Globale : REWAPP vX.Y (ex: REWAPP v1.0)

2.3 Versioning des APIs

L'API Backend REWAPP utilise un versioning explicite dans l'URL pour garantir la stabilité.

Format URL
/api/v{N}/{resource}

Versions API

Version API URL Base Statut Date Fin Support
v1 /api/v1/* Active (Production) -
v2 /api/v2/* Planifiée -

Règles de Versioning API

  • Nouvelle version majeure API pour tout breaking change
  • Support minimum de 2 versions simultanées
  • Dépréciation annoncée 6 mois avant retrait
  • Header X-API-Version pour informer du cycle de vie
Headers de Réponse
X-API-Version: v1
X-API-Deprecated: false
X-API-Sunset: null

2.4 Compatibilité et Rétrocompatibilité

Matrice de Compatibilité Client/Serveur

Version App Mobile API v1 API v2 (future)
1.0.x Compatible Non supporté
1.1.x Compatible Compatible (prévu)
2.0.x (future) Déprécié Requis
RÈGLES DE COMPATIBILITÉ
  • L'API DOIT supporter les 2 dernières versions majeures de l'app mobile
  • L'app mobile DOIT fonctionner avec au moins la version API en production
  • Les dashboards web sont toujours à jour (déploiement automatique)
3

PROCESSUS DE RELEASE

3.1 Types de Releases

Types de Releases

Type Fréquence Contenu Approbation Exemples
Release Majeure Semestrielle Refonte, nouvelles fonctionnalités majeures CTO + Product Owner v2.0.0
Release Mineure Mensuelle Nouvelles fonctionnalités, améliorations Tech Lead + Product Owner v1.3.0
Release Patch Hebdomadaire Corrections de bugs, optimisations Tech Lead v1.3.1
Hotfix À la demande Correctif critique de sécurité/stabilité Tech Lead (urgence) v1.3.2

3.2 Cycle de Release Standard

Phase 1 - Planification (J-14)
  • Définition du périmètre de la release
  • Création de la milestone GitHub
  • Attribution des tickets/issues
  • Communication interne du planning
2
Phase 2 - Développement (J-14 à J-7)
  • Développement sur branches feature/*
  • Code review et merge vers develop
  • Tests unitaires et d'intégration
  • Déploiement automatique sur environnement développement
3
Phase 3 - Stabilisation (J-7 à J-3)
  • Création de la branche release/vX.Y.Z
  • Freeze des nouvelles fonctionnalités
  • Tests E2E sur environnement staging
  • Correction des bugs identifiés
  • Rédaction des release notes
4
Phase 4 - Validation (J-3 à J-1)
  • Tests de validation QA complets
  • Tests de performance et charge
  • Validation fonctionnelle Product Owner
  • Approbation Go/No-Go
  • Préparation de la communication
5
Phase 5 - Déploiement (J)
  • Tag de la version : git tag -a vX.Y.Z
  • Déploiement Blue-Green en production
  • Monitoring renforcé (30 minutes)
  • Validation post-déploiement
  • Communication de la release
6
Phase 6 - Post-Release (J+1 à J+7)
  • Monitoring continu des métriques
  • Support utilisateur renforcé
  • Correction des bugs post-release
  • Rétrospective de release

3.3 Workflow de Développement (GitFlow)

Branches Principales

  • main : Code en production, toujours stable
  • develop : Intégration des développements en cours

Branches de Travail

  • feature/* : Nouvelles fonctionnalités
  • bugfix/* : Corrections de bugs
  • release/* : Préparation des releases
  • hotfix/* : Correctifs d'urgence
Workflow GitFlow
# 1. Développement
feature/nouvelle-fonctionnalite → develop

# 2. Préparation Release
develop → release/v1.2.0 → main (+ tag v1.2.0) + develop

# 3. Hotfix
main → hotfix/correction-critique → main (+ tag v1.2.1) + develop

3.4 Critères de Go/No-Go

✅ CRITÈRES GO (tous requis)
  • Tests unitaires : 100% passants, couverture > 80%
  • Tests E2E : 100% passants sur staging
  • Tests de performance : Latence P95 < 200ms
  • Scan de sécurité : 0 vulnérabilité critique/haute
  • Validation QA : Tous les cas de test validés
  • Validation PO : Fonctionnalités conformes aux specs
  • Documentation : Release notes et changelog à jour
  • Rollback : Procédure testée et fonctionnelle
❌ CRITÈRES NO-GO (un seul suffit)
  • Bug bloquant non résolu
  • Régression fonctionnelle détectée
  • Vulnérabilité de sécurité non corrigée
  • Indisponibilité d'une intégration critique
  • Absence de validation PO
4

GESTION DES VERSIONS

4.1 Changelog et Documentation

Chaque repository maintient un fichier CHANGELOG.md au format Keep a Changelog :

CHANGELOG.md
# Changelog

## [1.2.0] - 2025-11-24

### Added
- Nouveau système de paliers de fidélité (#234)
- Notifications push personnalisées (#245)

### Changed
- Amélioration des performances de génération QR (#256)

### Fixed
- Correction du calcul des points expirés (#267)

### Security
- Mise à jour des dépendances de sécurité (#278)

## [1.1.0] - 2025-10-15
...

4.2 Notes de Version (Release Notes)

Structure des Release Notes

Section Contenu Audience
Titre et Version vX.Y.Z - Nom de la release Tous
Résumé 2-3 phrases sur les changements majeurs Tous
Nouvelles Fonctionnalités Liste des features ajoutées Utilisateurs, Partenaires
Améliorations Optimisations et améliorations UX Utilisateurs, Partenaires
Corrections Bugs corrigés Tous
Notes Techniques Changements API, migrations Développeurs, Partenaires techniques
Dépréciations Fonctionnalités dépréciées/retirées Développeurs, Partenaires

Exemple de Release Notes

REWAPP v1.2.0 - "Fidélité Enrichie"

Date : 24 novembre 2025

Cette version introduit le nouveau système de paliers de fidélité et améliore significativement les performances de l'application.

✨ Nouvelles Fonctionnalités :

  • Système de paliers de fidélité (Bronze → Diamant)
  • Notifications push personnalisées par commerçant
  • Historique détaillé des transactions

🚀 Améliorations :

  • Génération QR code 3x plus rapide
  • Temps de chargement réduit de 40%

4.3 Guides de Migration

Les guides de migration sont fournis pour chaque release majeure ou changement breaking.

  1. 1
    Prérequis

    Version source minimale, dépendances requises, backup recommandé

  2. 2
    Étapes de Migration

    Étape par étape avec commandes, points de contrôle, validations intermédiaires

  3. 3
    Changements Breaking

    Liste des incompatibilités, modifications API, nouveau format de données

  4. 4
    Rollback

    Procédure de retour arrière, données à restaurer

  5. 5
    FAQ Migration

    Questions fréquentes, problèmes connus

4.4 Support des Versions Précédentes

Politique de Support

Type de Version Durée Support Type de Support Exemple
Version Actuelle (N) Illimité Complet (features + bugs + sécurité) v1.2.x
Version Précédente (N-1) 6 mois Maintenance (bugs critiques + sécurité) v1.1.x
Version Antérieure (N-2) 3 mois Sécurité uniquement v1.0.x
Versions Plus Anciennes Aucun Non supporté < v1.0
RÈGLE

Une version API est supportée au minimum 12 mois après l'annonce de sa dépréciation.

5

ROLLOUT PROGRESSIF

5.1 Stratégie de Déploiement Progressif

REWAPP utilise une stratégie de rollout progressif pour minimiser les risques :

Phases de Rollout

Phase % Utilisateurs Durée Critères de Passage
Phase 1 - Canary 5% (utilisateurs internes) 24h 0 erreur critique, métriques nominales
Phase 2 - Early Adopters 25% 48h Taux erreur < 0.1%, NPS maintenu
Phase 3 - Rollout Large 50% 48h Taux erreur < 0.1%, support nominal
Phase 4 - GA 100% - Validation finale

5.2 Feature Flags

REWAPP utilise des feature flags pour activer/désactiver des fonctionnalités sans redéploiement.

SYSTÈME DE FEATURE FLAGS
  • Stockage : AWS Parameter Store
  • Cache : 60 secondes
  • Granularité : Global, par environnement, par utilisateur, par partenaire

Types de Feature Flags

Type Usage Durée de Vie Exemple
Release Flag Activer progressivement une nouvelle feature Temporaire (retirer après 100%) feature_loyalty_tiers
Ops Flag Activer/désactiver en cas d'incident Permanent ops_disable_banking_sync
Experiment Flag A/B testing Temporaire experiment_new_qr_design
Permission Flag Fonctionnalité premium/bêta Permanent permission_advanced_analytics

Conventions de Nommage

Format
{type}_{feature_name}

Exemples :
- feature_new_dashboard
- ops_maintenance_mode
- experiment_checkout_v2

5.3 Canary Releases

Pour les fonctionnalités à haut risque, un déploiement Canary est utilisé :

  1. 1
    5% du trafic pendant 2 heures

    Déploiement initial sur un petit groupe

  2. 2
    Analyse des métriques

    Erreurs, latence, conversion

  3. 3
    Si OK : passage à 25%

    Extension progressive

  4. 4
    Si KO : rollback automatique

    Retour immédiat à la version précédente

MÉTRIQUES SURVEILLÉES
  • Taux d'erreur (seuil : < 1%)
  • Latence P95 (seuil : < 200ms)
  • Taux de conversion (seuil : pas de dégradation > 5%)
  • Crash rate mobile (seuil : < 0.1%)

5.4 Monitoring Post-Release

Surveillance Renforcée Post-Déploiement

Période Niveau Monitoring Actions Alerte Si
0-30 min Critique Équipe en standby, rollback prêt Erreur > 0.5%
30 min - 4h Élevé Monitoring actif, support renforcé Erreur > 0.3%
4h - 24h Normal Monitoring standard Erreur > 0.1%
24h - 7j Standard Revue quotidienne métriques Anomalie détectée
6

GESTION DES DÉPRÉCIATIONS

6.1 Politique de Dépréciation

Cycle de Vie d'une Dépréciation

Phase Durée Actions Communication
Annonce J Marquage déprécié dans code et doc Email + In-app + Changelog
Avertissement J à J+90 Logs d'avertissement, headers API Rappels mensuels
Sunset J+90 à J+180 Fonctionnalité désactivable Notification finale J-30
Retrait J+180+ Suppression complète Confirmation de retrait

6.2 Cycle de Vie d'une Fonctionnalité

États d'une Fonctionnalité

État Description Indicateur
🔵 Alpha En développement, accès restreint Badge "Alpha"
🟡 Beta Test élargi, fonctionnel mais évolutif Badge "Beta"
🟢 Stable Production, pleinement supporté Badge "Stable"
🟠 Deprecated Sera retiré, migration recommandée Badge "Deprecated"
🔴 Removed Non disponible Badge "Removed"

6.3 Communication des Dépréciations

Canaux de Communication

  • Documentation API : Badge "Deprecated" sur les endpoints
  • Réponses API : Header X-API-Deprecated: true
  • Console développeur : Avertissements dans les logs
  • Email : Notification aux partenaires utilisant la fonctionnalité
  • Changelog : Section dédiée aux dépréciations
  • Dashboard Partenaire : Notification in-app
Header API Déprécié
X-API-Deprecated: true
X-API-Deprecated-Message: This endpoint will be removed on 2026-06-01. Use /api/v2/points instead.
X-API-Sunset: 2026-06-01
7

COMMUNICATION ET NOTIFICATIONS

7.1 Communication Interne

Communication Interne

Événement Canal Audience Timing
Planification Release Slack #releases Équipe technique J-14
Freeze Code Slack #releases + Email Équipe technique J-7
Go/No-Go Réunion + Slack Tech Leads + PO J-1
Déploiement en cours Slack #deployments Équipe technique J (temps réel)
Déploiement terminé Slack #releases + Email Toute l'équipe J (post-déploiement)
Incident/Rollback Slack #incidents + PagerDuty Équipe technique + Astreinte Immédiat

7.2 Communication Externe (Utilisateurs)

Communication Utilisateurs

Type de Release Canal Timing Contenu
Release Majeure Push + Email + In-app J-7 puis J Annonce + Release notes complètes
Release Mineure In-app + Blog J Nouvelles fonctionnalités
Release Patch Aucune (sauf critique) - -
Maintenance Push + In-app + Status page J-24h Créneau et impact

Notifications In-App

  • Modal au premier lancement post-mise à jour
  • Badge "Nouveautés" sur écran profil
  • Lien vers release notes complètes

7.3 Communication Partenaires

Communication Partenaires

Type Canal Timing Contenu
Nouvelle Version API Email + Doc J-30 Changelog technique, breaking changes
Dépréciation Email + Dashboard J-180 Planning de retrait, guide migration
Maintenance API Email + Dashboard + Webhook J-7 Créneau, endpoints impactés
Incident Email + Status page Immédiat Impact et résolution

7.4 Templates de Communication

Template Annonce Release (Utilisateurs)

Objet : 🎉 REWAPP v1.2 - Découvrez les nouveautés !

Bonjour [Prénom],

Une nouvelle version de REWAPP est disponible avec des fonctionnalités passionnantes :

✨ Nouveautés :

  • Paliers de fidélité : Gagnez jusqu'à +20% de cashback !
  • Notifications personnalisées par commerçant
  • Interface rafraîchie et plus rapide

📱 Mettez à jour votre application pour en profiter.

L'équipe REWAPP

Template Annonce Breaking Change (Partenaires)

Objet : ⚠️ [Action requise] REWAPP API v2 - Migration avant le 01/06/2026

Bonjour,

L'API REWAPP v1 sera retirée le 1er juin 2026. Vous devez migrer vers l'API v2.

Changements majeurs :

  • Nouvel endpoint /api/v2/transactions (remplace /api/v1/scan)
  • Format de réponse JSON modifié
  • Authentification OAuth2 obligatoire

📖 Guide de migration : docs.rewapp.fr/migration/v2

📅 Dates clés :

  • Maintenant : API v2 disponible
  • 01/03/2026 : Avertissements de dépréciation
  • 01/06/2026 : Retrait API v1
8

PROCÉDURES SPÉCIFIQUES PAR PLATEFORME

8.1 Application Mobile (iOS/Android)

Cycle de Release Mobile

Étape Durée Actions
Build 1-2h eas build --platform all --profile production
Soumission iOS 1 jour Upload App Store Connect
Review iOS 1-7 jours Review Apple (automatique ou manuel)
Soumission Android 1 jour Upload Google Play Console
Review Android 1-3 jours Review Google
Publication Staged 1-7 jours Rollout progressif 10% → 50% → 100%
CONTRAINTES MOBILE
  • Délai review stores : Prévoir 1-2 semaines avant date de release souhaitée
  • Pas de rollback simple : Publier une nouvelle version corrigée
  • Mise à jour OTA (CodePush) : Uniquement pour changements JavaScript

Versioning Mobile

  • iOS : CFBundleShortVersionString (X.Y.Z) + CFBundleVersion (Build N)
  • Android : versionName (X.Y.Z) + versionCode (entier incrémental)

Forçage de Mise à Jour

  • Version minimale requise configurable côté serveur
  • Si version app < version minimale → écran de mise à jour obligatoire
  • Soft update (recommandé) vs Hard update (bloquant)

8.2 Site Vitrine et Dashboards

Déploiement Web

  • Automatique sur merge vers main
  • CDN CloudFront avec invalidation cache
  • Zero downtime garanti
  • Rollback : Redéploiement version précédente (< 5 min)

Versioning Web

  • Version embarquée dans le build
  • Visible dans les meta tags et console
  • Cache busting automatique (hash dans noms de fichiers)

8.3 Backend API

Déploiement API

  • Blue-Green deployment sur ECS Fargate
  • Health checks obligatoires
  • Rollback automatique si échec health check
  • Temps de déploiement : < 15 minutes

Versioning API

  • Version dans URL : /api/v1/*
  • Header de réponse : X-API-Version
  • Documentation Swagger versionnée

Migrations de Schéma API

  • Changements additifs uniquement (nouveaux champs optionnels)
  • Breaking changes → nouvelle version majeure API
  • Période de transition avec support dual-version

8.4 Base de Données

Migrations Prisma

Type Migration Risque Procédure Rollback
Ajout table/colonne Faible Automatique Script inverse
Modification type colonne Moyen Revue + Test staging Restauration backup
Suppression table/colonne Élevé Double validation + Backup Restauration obligatoire
Migration de données Élevé Script dédié + Validation Backup + Script inverse
RÈGLES DE MIGRATION
  • Toute migration doit être réversible
  • Backup automatique avant migration production
  • Test sur staging avec données représentatives
  • Durée migration < 5 minutes (sinon maintenance planifiée)
9

GESTION DES INCIDENTS DE VERSION

9.1 Hotfix et Correctifs d'Urgence

Critères de Hotfix

  • Bug critique affectant > 10% des utilisateurs
  • Faille de sécurité confirmée
  • Perte de données potentielle
  • Fonctionnalité core inopérante (transactions, QR code, virements)

Procédure Hotfix

  1. 1
    Création branche

    hotfix/description depuis main

  2. 2
    Développement

    Correctif avec scope minimal

  3. 3
    Tests

    Unitaires + Intégration (CI)

  4. 4
    Review

    1 approbation minimum (processus accéléré)

  5. 5
    Merge

    Vers main ET develop

  6. 6
    Tag & Déploiement

    vX.Y.Z (increment PATCH), déploiement accéléré

< 4h Délai Hotfix Standard
< 2h Sécurité Critique

9.2 Rollback de Version

Déclencheurs de Rollback

  • Taux d'erreur > 1% pendant 5 minutes
  • Latence P95 > 500ms pendant 5 minutes
  • Fonctionnalité critique non opérationnelle
  • Échec smoke tests post-déploiement

Procédure de Rollback

Composant Méthode Durée Commande/Action
Backend API Blue-Green switch < 5 min AWS CodeDeploy rollback
Frontend Web Redéploiement < 10 min git checkout vX.Y.Z-1 + rebuild + deploy
Mobile iOS Nouvelle version 1-7 jours Soumission version corrigée
Mobile Android Staged rollback 1-24h Rollback via Google Play Console
Base de données Restore backup 15-30 min aws rds restore-db-instance

9.3 Post-Mortem

Tout incident de version nécessite un post-mortem dans les 48h.

Template Post-Mortem

  1. 1
    Résumé de l'Incident

    Date et durée, impact (utilisateurs affectés, fonctionnalités), sévérité

  2. 2
    Timeline

    Chronologie détaillée des événements

  3. 3
    Cause Racine

    Analyse technique de la cause

  4. 4
    Actions de Résolution

    Étapes pour résoudre l'incident

  5. 5
    Actions Préventives

    Mesures pour éviter la récurrence, améliorations du processus

  6. 6
    Leçons Apprises

    Ce qui a bien fonctionné, ce qui peut être amélioré

10

INDICATEURS ET MÉTRIQUES

10.1 KPIs de Release

KPIs de Release

Métrique Description Objectif Mesure
Deployment Frequency Fréquence des déploiements production > 2/semaine Nb releases/semaine
Lead Time for Changes Temps entre commit et production < 1 jour Durée moyenne
Change Failure Rate Taux de déploiements causant un incident < 5% Rollbacks/déploiements
Mean Time to Recovery Temps moyen de résolution d'incident < 30 min Durée moyenne incidents
Release Success Rate Taux de releases sans rollback > 95% Releases OK/total

10.2 Suivi de l'Adoption

Métriques d'Adoption

Métrique Description Source Fréquence
App Update Rate % utilisateurs sur dernière version Analytics mobile Quotidien
Time to Adoption Durée pour atteindre 80% d'adoption Analytics mobile Par release
API Version Distribution Répartition utilisation versions API Logs API Hebdomadaire
Feature Flag Adoption % utilisateurs exposés par feature flag Feature flag service Temps réel

10.3 Reporting

Rapports de Release

  • Rapport Hebdomadaire : Releases effectuées, incidents rencontrés, métriques de qualité
  • Rapport Mensuel : Tendances des KPIs, analyse des incidents, améliorations du processus
  • Rapport Trimestriel : Bilan des releases majeures, ROI des améliorations, roadmap des optimisations
11

CONCLUSION

11.1 Récapitulatif

Ce plan de montée de version établit un cadre rigoureux pour gérer les évolutions de l'écosystème REWAPP :

  • Semantic Versioning : Convention claire et prévisible
  • Processus de Release Structuré : Phases définies avec critères de validation
  • Rollout Progressif : Minimisation des risques via feature flags et canary
  • Communication Transparente : Utilisateurs et partenaires informés à chaque étape
  • Gestion des Incidents : Procédures de hotfix et rollback testées

11.2 Points Clés

Résumé des Solutions REWAPP

Aspect Solution REWAPP
Versioning Semantic Versioning 2.0 (MAJOR.MINOR.PATCH)
Release Cycle Mensuel (mineure) + Hebdomadaire (patch)
Déploiement Blue-Green avec rollout progressif
Feature Flags AWS Parameter Store avec granularité utilisateur
Communication Multi-canal (in-app, email, push, status page)
Support Versions N + N-1 (6 mois) + N-2 (3 mois sécurité)

11.3 Évolutions Prévues

Court terme (6 mois)

  • Automatisation complète des release notes
  • Dashboard de suivi d'adoption des versions
  • Intégration des feature flags dans le Dashboard Admin

Moyen terme (12 mois)

  • A/B testing intégré au système de feature flags
  • Déploiement multi-région avec versioning par région
  • API versioning automatique avec contract testing