Bibliothèque / SDK
googleapis/release-please avatar
googleapis/release-please

release-please : le cycle d une Release PR

Aperçu du projet : générer des PR de version basés sur la spécification conventionnellecommits.org. Historique des commits git linéaires (utilisez squash-merge) Nous vous recommandons fortement d'utiliser des squash-merges lors de la fusion de demandes d'extraction.

7 501 étoiles588 forksTypeScriptApache-2.0

En bref

De quoi s’agit-il ?
generate release PRs based on the conventionalcommits.org spec. Linear git commit history (use squash-merge) We highly recommend that you use squash-merges when merging pull requests.
À qui s’adresse-t-il ?
Ce dépôt convient aux lecteurs dont le besoin correspond à le cycle d une Release PR et aux points d entrée du README. Il convient moins à une équipe qui attend des garanties absentes du document.
Puis-je l’utiliser commercialement ?
Oui. Apache-2.0 est une licence permissive : vous pouvez utiliser, modifier et vendre un logiciel qui en dépend, à condition de conserver les mentions de droit d’auteur et de licence.
Est-il encore maintenu ?
Oui. Les derniers commits datent d’il y a 1 jour.
En quel langage est-il écrit ?
Principalement TypeScript, d’après les statistiques de langage de GitHub.

Ces réponses reposent sur les données GitHub du projet (dernière synchronisation le 15 septembre 2026) et sur notre analyse. Elles ne constituent pas un avis juridique.

ANALYSE OPEN SOURCE APPROFONDIE

Le flux de travail des PR de release

Release Please automatise trois tâches : la génération du changelog, la création de releases GitHub et les incrémentations de version. Au lieu de publier une release à chaque fusion sur la branche par défaut, il maintient une PR de release qui reste à jour à mesure que d'autres travaux sont fusionnés. La fusion de cette PR déclenche une mise à jour du changelog, un tag de version et une release GitHub. Le statut d'une PR de release est suivi par des labels : `autorelease: pending` avant la fusion, `autorelease: tagged` après la fusion et le tag, `autorelease: snapshot` pour les incrémentations de version snapshot, et `autorelease: published` pour une release publiée, que l'outil n'ajoute pas automatiquement mais recommande comme convention.

Section 1 : le cycle d une Release PR se lit d abord dans les éléments précis du dépôt. Le README relie Conventional Commits à une décision technique identifiable, sans promettre un résultat que le texte ne mesure pas. Le lecteur peut donc rattacher cette partie à CHANGELOG.md, package.json, tags GitHub et les labels autorelease, puis distinguer ce qui est documenté de ce qui dépend de son propre contexte. Cette distinction compte pour une équipe qui doit maintenir un outil, choisir une intégration ou expliquer un changement à ses collègues. googleapis-release-please-deep-analysis fournit surtout un périmètre et des points d entrée : il faut suivre le chemin indiqué par Release-As: x.x.x, observer les fichiers ou sorties concernés, et vérifier que la version de l environnement correspond aux conditions énoncées. La valeur du projet tient alors à sa capacité réelle à répondre au besoin décrit, pas à son nom ni à une promesse générale.

Dans ce cadre, le cycle d une Release PR présente aussi une limite claire. Le README ne décrit pas tous les cas d erreur, les coûts d exploitation ni la compatibilité de chaque dépendance. Ces inconnues ne doivent pas être transformées en certitudes. Pour googleapis-release-please-deep-analysis, notez précisément le comportement obtenu avec Release-As: x.x.x, le périmètre de CHANGELOG.md, package.json, tags GitHub et les labels autorelease et les écarts rencontrés. Une telle trace permet de décider si le dépôt convient à une application existante ou seulement à une lecture exploratoire.

Conventional commits et unités publiables

Release Please lit l'historique git et recherche les messages de conventional commits. Les préfixes les plus importants sont `fix:` pour les correctifs, `feat:` pour les versions mineures, et tout préfixe avec `!` pour les changements cassants qui entraînent une version majeure. Une unité publiable est un commit avec le préfixe `feat`, `fix` ou `deps` sur la branche par défaut. Certaines langues configurent des préfixes supplémentaires, comme `docs` pour Java et Python. Les commits chore et build ne sont pas des unités publiables.

Section 2 : le cycle d une Release PR se lit d abord dans les éléments précis du dépôt. Le README relie Conventional Commits à une décision technique identifiable, sans promettre un résultat que le texte ne mesure pas. Le lecteur peut donc rattacher cette partie à CHANGELOG.md, package.json, tags GitHub et les labels autorelease, puis distinguer ce qui est documenté de ce qui dépend de son propre contexte. Cette distinction compte pour une équipe qui doit maintenir un outil, choisir une intégration ou expliquer un changement à ses collègues. googleapis-release-please-deep-analysis fournit surtout un périmètre et des points d entrée : il faut suivre le chemin indiqué par Release-As: x.x.x, observer les fichiers ou sorties concernés, et vérifier que la version de l environnement correspond aux conditions énoncées. La valeur du projet tient alors à sa capacité réelle à répondre au besoin décrit, pas à son nom ni à une promesse générale.

Forcer une version ou corriger les notes de version

Pour ouvrir une PR de release à une version spécifique, ajoutez `Release-As: x.x.x` dans le corps d'un commit sur la branche principale. Le README montre un exemple de commit vide qui produit un message avec `chore: release 2.0.0` et `Release-As: 2.0.0`. Pour modifier les notes de version d'une PR fusionnée, éditez le corps de la PR pour inclure une section `BEGIN_COMMIT_OVERRIDE` avec les messages de commit de remplacement, suivie de `END_COMMIT_OVERRIDE`. La prochaine exécution utilisera cette surcharge. Cela ne fonctionne pas avec les fusions simples car release-please ne peut pas identifier les commits auxquels appliquer la surcharge ; la fusion squash est recommandée.

Section 3 : le cycle d une Release PR se lit d abord dans les éléments précis du dépôt. Le README relie Conventional Commits à une décision technique identifiable, sans promettre un résultat que le texte ne mesure pas. Le lecteur peut donc rattacher cette partie à CHANGELOG.md, package.json, tags GitHub et les labels autorelease, puis distinguer ce qui est documenté de ce qui dépend de son propre contexte. Cette distinction compte pour une équipe qui doit maintenir un outil, choisir une intégration ou expliquer un changement à ses collègues. googleapis-release-please-deep-analysis fournit surtout un périmètre et des points d entrée : il faut suivre le chemin indiqué par Release-As: x.x.x, observer les fichiers ou sorties concernés, et vérifier que la version de l environnement correspond aux conditions énoncées. La valeur du projet tient alors à sa capacité réelle à répondre au besoin décrit, pas à son nom ni à une promesse générale.

Pourquoi aucune PR de release n'apparaît

Si Release Please n'a pas créé de PR de release, le README propose trois étapes de dépannage. Premièrement, confirmez que la branche par défaut contient des unités publiables depuis la dernière release ; un commit avec `feat`, `fix` ou `deps` est requis. Deuxièmement, vérifiez la présence de labels obsolètes `autorelease: pending` ou `autorelease: triggered` sur d'anciennes PR ; des échecs d'API GitHub peuvent laisser ces labels et bloquer de nouvelles PR de release. Supprimez-les si vous êtes certain qu'aucune release n'est en attente. Troisièmement, relancez release-please. Pour l'application GitHub, ajoutez le label `release-please:force-run` à la pull request fusionnée ; pour l'action, relancez l'exécution du workflow ayant échoué.

Section 4 : le cycle d une Release PR se lit d abord dans les éléments précis du dépôt. Le README relie Conventional Commits à une décision technique identifiable, sans promettre un résultat que le texte ne mesure pas. Le lecteur peut donc rattacher cette partie à CHANGELOG.md, package.json, tags GitHub et les labels autorelease, puis distinguer ce qui est documenté de ce qui dépend de son propre contexte. Cette distinction compte pour une équipe qui doit maintenir un outil, choisir une intégration ou expliquer un changement à ses collègues. googleapis-release-please-deep-analysis fournit surtout un périmètre et des points d entrée : il faut suivre le chemin indiqué par Release-As: x.x.x, observer les fichiers ou sorties concernés, et vérifier que la version de l environnement correspond aux conditions énoncées. La valeur du projet tient alors à sa capacité réelle à répondre au besoin décrit, pas à son nom ni à une promesse générale.

Stratégies de dépôt prises en charge

Release Please est livré avec des configurations de type de release pour de nombreux écosystèmes : modules Bazel, Dart, Elixir, Go, Helm, Java, Maven, Node, Expo, OCaml, PHP, Python, R, Ruby, Rust, SFDX, simple (version.txt) et modules Terraform. Chaque type recherche des fichiers spécifiques, comme package.json pour Node, pubspec.yaml pour Dart, ou pyproject.toml pour Python. Les espaces de travail Rust nécessitent une release pilotée par manifeste et le plugin cargo-workspace. Le tableau du README contient des liens vers des exemples pour plusieurs stratégies.

Section 5 : le cycle d une Release PR se lit d abord dans les éléments précis du dépôt. Le README relie Conventional Commits à une décision technique identifiable, sans promettre un résultat que le texte ne mesure pas. Le lecteur peut donc rattacher cette partie à CHANGELOG.md, package.json, tags GitHub et les labels autorelease, puis distinguer ce qui est documenté de ce qui dépend de son propre contexte. Cette distinction compte pour une équipe qui doit maintenir un outil, choisir une intégration ou expliquer un changement à ses collègues. googleapis-release-please-deep-analysis fournit surtout un périmètre et des points d entrée : il faut suivre le chemin indiqué par Release-As: x.x.x, observer les fichiers ou sorties concernés, et vérifier que la version de l environnement correspond aux conditions énoncées. La valeur du projet tient alors à sa capacité réelle à répondre au besoin décrit, pas à son nom ni à une promesse générale.

Exécution et personnalisation

La façon recommandée d'exécuter Release Please est comme action GitHub, avec des instructions d'installation et de configuration dans le dépôt googleapis/release-please-action. Il peut également être exécuté comme CLI, documenté dans docs/cli.md. Pour intégrer un dépôt existant, l'approche la plus simple est de bootstrapper une configuration de manifeste. Les options de personnalisation sont couvertes dans docs/customizing.md, et le support des monorepos via la configuration de manifeste est dans docs/manifest-releaser.md. Le README ne liste pas d'options de configuration spécifiques au-delà de ces documents.

Section 6 : le cycle d une Release PR se lit d abord dans les éléments précis du dépôt. Le README relie Conventional Commits à une décision technique identifiable, sans promettre un résultat que le texte ne mesure pas. Le lecteur peut donc rattacher cette partie à CHANGELOG.md, package.json, tags GitHub et les labels autorelease, puis distinguer ce qui est documenté de ce qui dépend de son propre contexte. Cette distinction compte pour une équipe qui doit maintenir un outil, choisir une intégration ou expliquer un changement à ses collègues. googleapis-release-please-deep-analysis fournit surtout un périmètre et des points d entrée : il faut suivre le chemin indiqué par Release-As: x.x.x, observer les fichiers ou sorties concernés, et vérifier que la version de l environnement correspond aux conditions énoncées. La valeur du projet tient alors à sa capacité réelle à répondre au besoin décrit, pas à son nom ni à une promesse générale.

Support d'exécution et licence

La bibliothèque suit le calendrier de publication de Node.js et prend en charge les versions actives et de maintenance actuelles. Les versions héritées sont disponibles via des dist-tags npm comme `legacy-8`, mais elles sont au mieux : non testées en CI, peuvent ne pas recevoir de correctifs de sécurité, et les dépendances ne sont pas mises à jour. Le projet suit le Semantic Versioning. Il est sous licence Apache 2.0. Le README indique qu'il ne s'agit pas d'un produit officiel de Google. L'extrait de licence accorde des licences perpétuelles, mondiales, non exclusives et gratuites pour les droits d'auteur et les brevets, mais il ne traite pas du support, de la garantie ou de la sécurité.

Section 7 : le cycle d une Release PR se lit d abord dans les éléments précis du dépôt. Le README relie Conventional Commits à une décision technique identifiable, sans promettre un résultat que le texte ne mesure pas. Le lecteur peut donc rattacher cette partie à CHANGELOG.md, package.json, tags GitHub et les labels autorelease, puis distinguer ce qui est documenté de ce qui dépend de son propre contexte. Cette distinction compte pour une équipe qui doit maintenir un outil, choisir une intégration ou expliquer un changement à ses collègues. googleapis-release-please-deep-analysis fournit surtout un périmètre et des points d entrée : il faut suivre le chemin indiqué par Release-As: x.x.x, observer les fichiers ou sorties concernés, et vérifier que la version de l environnement correspond aux conditions énoncées. La valeur du projet tient alors à sa capacité réelle à répondre au besoin décrit, pas à son nom ni à une promesse générale.

Conclusion éditoriale

Ce dépôt convient aux lecteurs dont le besoin correspond à le cycle d une Release PR et aux points d entrée du README. Il convient moins à une équipe qui attend des garanties absentes du document. Avant de l intégrer, lancez Release-As: x.x.x, inspectez CHANGELOG.md, package.json, tags GitHub et les labels autorelease et consignez l écart entre le comportement observé et le périmètre annoncé.

Sources officielles

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
Notes de la communauté

Notes de la communauté