Release Please
Qu’est-ce que Release Please ?
Release Please est un outil qui automatise la gestion des versions et des changelogs en se basant sur les Conventional Commits.
Fonctionnement
1. Commits conventionnels
Chaque commit doit suivre le format Conventional Commits :
<type>(<scope>): <description>
Types reconnus :
-
feat: Nouvelle fonctionnalité (MINOR) -
fix: Correction de bug (PATCH) -
feat!ouBREAKING CHANGE: Breaking change (MAJOR) -
docs,style,refactor,perf,test,chore: Pas de bump de version
Configuration
Workflow GitHub Actions
Fichier : .github/workflows/release-please.yml
name: Release Please
on:
push:
branches:
- main
permissions:
contents: write
pull-requests: write
jobs:
release-please:
runs-on: ubuntu-latest
steps:
- uses: googleapis/release-please-action@v4
Configuration Release Please
Fichier : .release-please-config.json
{
"packages": {
".": {
"release-type": "simple",
"package-name": "constructions-incongrues/musiqueapproximative",
"changelog-sections": [
{"type": "feat", "section": "Fonctionnalités", "hidden": false},
{"type": "fix", "section": "Corrections de bugs", "hidden": false},
{"type": "docs", "section": "Documentation", "hidden": false},
{"type": "style", "section": "Styles", "hidden": false},
{"type": "refactor", "section": "Refactoring", "hidden": false},
{"type": "perf", "section": "Performance", "hidden": false},
{"type": "test", "section": "Tests", "hidden": false},
{"type": "chore", "section": "Maintenance", "hidden": false}
]
}
}
}
Utilisation
Workflow standard
-
Développer : Créer une branche et développer
-
Commiter : Utiliser Conventional Commits
git commit -m "feat: ajout du support des thèmes sombres" -
Merger : Créer une PR et la merger dans
main -
Attendre : Release Please crée automatiquement une PR de release
-
Publier : Merger la PR de release pour publier
Exemple de PR de release
Release Please crée une PR avec :
-
Titre :
chore(main): release 1.2.0 -
Description : Changelog complet
-
Fichiers modifiés :
-
CHANGELOG.adoc: Mis à jour -
.release-please-manifest.json: Nouvelle version
-
Breaking changes
Pour indiquer un breaking change :
# Option 1 : Utiliser !
git commit -m "feat!: migration vers PHP 8.0"
# Option 2 : Utiliser BREAKING CHANGE dans le footer
git commit -m "feat: migration vers PHP 8.0
BREAKING CHANGE: PHP 7.4 n'est plus supporté"
Cela créera une release MAJOR (ex: 1.0.0 → 2.0.0).
Sections du CHANGELOG
Les sections sont personnalisées en français :
| Type | Section dans le CHANGELOG |
|---|---|
|
Fonctionnalités |
|
Corrections de bugs |
|
Documentation |
|
Styles |
|
Refactoring |
|
Performance |
|
Tests |
|
Maintenance |
Versioning sémantique
Le projet suit Semantic Versioning :
-
MAJOR (X.0.0) : Breaking changes
-
MINOR (0.X.0) : Nouvelles fonctionnalités
-
PATCH (0.0.X) : Corrections de bugs
| Commit | Bump | Exemple |
|---|---|---|
|
PATCH |
1.0.0 → 1.0.1 |
|
MINOR |
1.0.0 → 1.1.0 |
|
MAJOR |
1.0.0 → 2.0.0 |