# Versionnement
Source: https://docs.lomi.africa/resources/contributing/versioning

Nous appliquons le versionnement sémantique (SemVer) à nos paquets et à l’API.

***

title: 'Versionnement'
description: 'Nous appliquons le versionnement sémantique (SemVer) à nos paquets et à l’API.'
---------------------------------------------------------------------------------------------

## Format de version

```bash filename="SemVer Format"
MAJOR.MINOR.PATCH
# Example: 1.2.3
```

* **MAJOR** : changements incompatibles
* **MINOR** : nouvelles fonctionnalités rétrocompatibles
* **PATCH** : corrections de bugs rétrocompatibles

## Gestion des versions

### npm version

```bash filename="Terminal - npm version"
# Patch release
npm version patch
# 1.2.3 -> 1.2.4

# Minor release
npm version minor
# 1.2.3 -> 1.3.0

# Major release
npm version major
# 1.2.3 -> 2.0.0
```

### Étiquettes Git

```bash filename="Terminal - git tag"
# Create annotated tag
git tag -a v1.2.3 -m "Version 1.2.3"

# Push tags
git push origin --tags
```

## Publication

1. **Mettre à jour la version**

   ```bash filename="Terminal - Update Version"
   # Update package.json
   npm version minor

   # Update changelog
   git cliff -o CHANGELOG.md

   # Commit changes
   git add CHANGELOG.md
   git commit -m "chore: update changelog"
   ```

2. **Créer une release**
   ```bash filename="Terminal - Create Release"
   # Create GitHub release
   gh release create v1.2.3 \
     --title "Version 1.2.3" \
     --notes-file CHANGELOG.md
   ```

## Versionnement de l’API

### Version dans l’URL (exemple futur)

```bash filename="API URL Versioning Example"
# Current version
https://api.lomi.africa/checkout/sessions

# Future version
https://api.lomi.africa/v2/checkout/sessions
```

### Cycle de vie

1. **Active**
   * Dernière version
   * Support complet
   * Mises à jour régulières

2. **Maintenue**
   * Version précédente
   * Correctifs de sécurité
   * Correctifs fonctionnels uniquement

3. **Dépréciée**
   * Ancienne version
   * Support limité
   * Migration attendue

## Changements majeurs

1. **Communication**
   * Préavis (au moins 6 mois)
   * Guide de migration
   * Avertissements de dépréciation

2. **Documentation**
   * Comparaison de versions
   * Étapes de migration
   * Exemples de code

3. **Support**
   * Aide à la migration
   * Support des versions héritées
   * Période de transition

## Contrôle des versions

### Fichiers paquet

```json filename="package.json Example"
{
  "name": "@lomi/sdk",
  "version": "1.2.3",
  "engines": {
    "node": ">=14"
  }
}
```

### Fichiers de verrouillage

```bash filename="Lockfile Examples"
# NPM
package-lock.json

# Yarn
yarn.lock
```

## Bonnes pratiques

1. **Numéros**
   * SemVer strict
   * Journal des modifications tenu à jour

2. **Dépendances**
   * Versions figées quand nécessaire
   * Mises à jour régulières
   * Audits de sécurité

3. **Notes de version**
   * Descriptions claires
   * Changements majeurs identifiés
   * Guide de mise à niveau

## Étapes suivantes

* [Bonnes pratiques](/resources/contributing/best-practices)
* [Référence API](/api)
* [Journal des modifications](https://lomi.africa/changelog)
