Référence CLI
Cette référence est regroupée par type de commande :
- la commande de publication principale :
pubm [version] - les commandes de gestion comme
init,secretsetsync - les commandes du workflow de changesets sous
pubm changesets ... - la commande
pubm snapshotpour les releases de prévisualisation et de test
Au quotidien, la commande principale est :
pubmLancer pubm sans argument de version suit le flux interactif normal. Cela vous permet de choisir la prochaine version dans le terminal avant que le pipeline de release ne continue.
Vue d’ensemble des commandes
Section intitulée « Vue d’ensemble des commandes »| Commande | But |
|---|---|
pubm [version] | Exécuter le pipeline de publication à l’aide d’un type de release ou d’une version semver explicite. |
pubm snapshot [tag] | Publier des versions snapshot pour la prévisualisation et les tests. |
pubm init | Assistant de configuration interactif pour la détection des packages, la config, les changesets, les workflows CI et les skills pour agents de code. |
pubm setup-skills | Télécharger et installer les skills pour agents de code (Claude Code, Codex, Gemini). |
pubm secrets sync | Pousser les tokens stockés localement vers GitHub Secrets via gh. |
pubm sync --discover | Analyser le dépôt pour trouver les références de version en dehors des manifests. |
pubm update | Mettre à jour la CLI elle-même vers la dernière version publiée. |
pubm changesets add | Créer un nouveau changeset. |
pubm changesets status | Afficher les changesets en attente et leur impact de bump. |
pubm changesets version | Consommer les changesets et écrire les nouvelles versions. |
pubm changesets changelog | Générer le texte du changelog à partir des changesets en attente. |
pubm changesets migrate | Migrer depuis .changeset/ vers .pubm/. |
Commande de publication principale
Section intitulée « Commande de publication principale »pubm [version] [flags][version] peut être :
- un type de bump semver :
patch,minor,major - un type de bump pré-release :
prepatch,preminor,premajor,prerelease - une version explicite comme
1.8.0
Si vous omettez la version :
- les terminaux interactifs peuvent demander la prochaine version
- les exécutions CI exigent que la version soit résolue de manière non interactive
Utilisation interactive
Section intitulée « Utilisation interactive »pubmFlux habituel :
- lancer
pubm - choisir
patch,minoroumajor - laisser
pubmpoursuivre les vérifications, le build, le tagging et la publication
Exemples courants
Section intitulée « Exemples courants »pubmpubm --dry-runpubm 1.8.0pubm --registry npm,jsrpubm --tag betaFlags de publication
Section intitulée « Flags de publication »| Flag | Par défaut | Description |
|---|---|---|
-d, --dry-run | false | Afficher le graphe des tâches sans modifier l’état Git ni publier. |
--mode <mode> | local | Mode d’exécution : local (interactif) ou ci (non interactif, basé sur les tags). |
--phase <phase> | - | Phase du pipeline : prepare (validation et dry-run) ou publish (publication depuis le dernier tag). |
--release-draft | false | Créer un draft GitHub Release au lieu d’une release publiée. |
-b, --branch <name> | main | Exiger que la branche courante corresponde avant la release. |
-a, --any-branch | false | Désactiver la garde de branche pour l’exécution courante. |
-t, --tag <name> | latest | Utiliser un dist-tag spécifique comme beta ou next. |
-c, --contents <path> | none | Se déplacer dans un sous-répertoire avant d’exécuter le pipeline de release. |
--registry <registries> | npm,jsr | Registries cibles séparés par des virgules. Prend en charge npm, jsr, crates ou des URLs de registry personnalisées. |
--test-script <script> | test | Nom du script utilisé pour l’étape de test. |
--build-script <script> | build | Nom du script utilisé pour l’étape de build. |
--no-save-token | false | Ne pas persister les tokens pris en charge pour les exécutions suivantes. |
--dangerously-allow-unpublish | false | Autoriser le unpublish/yank du registry lors du rollback dans les environnements sans TTY. |
--locale <locale> | en | Définir la langue de sortie de la CLI. Valeurs prises en charge : en, ko, zh-cn, fr, de, es. |
--create-pr | false | Créer une pull request pour le version bump au lieu de pousser directement. |
Flags de contrôle du pipeline
Section intitulée « Flags de contrôle du pipeline »| Flag | Description |
|---|---|
--no-pre-check | Ignorer les vérifications préalables comme la branche et l’état de l’arbre de travail. |
--no-condition-check | Ignorer les vérifications de conditions requises comme la validation des tokens et des registries. |
--no-tests | Ignorer l’étape de test. |
--no-build | Ignorer l’étape de build. |
--no-publish | Exécuter le pipeline jusqu’à la publication, sans publier réellement les artefacts. |
--skip-release | Ignorer la création de GitHub Release. |
Modes d’exécution
Section intitulée « Modes d’exécution »Exécution locale interactive
Section intitulée « Exécution locale interactive »Le mode normal pour les releases locales :
pubmComportement :
- commence par une sélection interactive de version lorsqu’aucun argument de version n’est fourni
- des invites peuvent être affichées lorsque des informations requises manquent
- les tests et le build s’exécutent sauf s’ils sont ignorés
- la version, la publication, le push et les étapes GitHub Release s’enchaînent dans cet ordre
Mode dry-run
Section intitulée « Mode dry-run »pubm --dry-runUtilisez le mode dry-run lorsque vous voulez inspecter le plan des tâches sans effet de bord.
Mode de préparation CI
Section intitulée « Mode de préparation CI »pubm --mode ci --phase preparePréparation CI :
- collecte les tokens manquants de manière interactive
- peut les synchroniser vers GitHub Secrets
- passe en comportement non interactif pour imiter la CI
- exécute les vérifications préalables et les vérifications de conditions
- simule la publication des registries configurés
Mode de publication CI
Section intitulée « Mode de publication CI »pubm --mode ci --phase publishLe mode de publication CI publie depuis le dernier tag Git et crée une GitHub Release via l’API. Utilisez-le quand la mise à jour de version et le tagging ont déjà eu lieu plus tôt dans le pipeline. Passez --release-draft pour créer un draft au lieu d’une release publiée.
Variables d’environnement
Section intitulée « Variables d’environnement »| Variable | Utilisée pour |
|---|---|
NODE_AUTH_TOKEN | authentification npm en CI |
JSR_TOKEN | authentification jsr |
CARGO_REGISTRY_TOKEN | authentification crates.io |
PUBM_LOCALE | Langue de sortie de la CLI (en, ko, zh-cn, fr, de, es) |
Les invites sont désactivées automatiquement lorsque :
stdinn’est pas un TTY- le processus s’exécute sur une plateforme CI reconnue
pubm snapshot
Section intitulée « pubm snapshot »Publier des versions snapshot pour la prévisualisation et les tests. Prend en charge les projets mono-package et monorepo.
pubm snapshot [tag]| Option | Description |
|---|---|
[tag] | Tag snapshot (par défaut : snapshot) |
-f, --filter <name> | Filtrer les packages par nom ou chemin (répétable) |
-d, --dry-run | Simuler sans effets secondaires |
--no-tests | Ignorer les tests |
--no-build | Ignorer le build |
-b, --branch <name> | Branche cible (par défaut : main) |
-a, --any-branch | Autoriser la publication depuis n’importe quelle branche |
Exemples
Section intitulée « Exemples »# Snapshot de tous les packagespubm snapshot
# Snapshot avec un tag personnalisépubm snapshot beta
# Snapshot de packages spécifiquespubm snapshot --filter @pubm/core --filter pubmpubm init
Section intitulée « pubm init »Assistant de configuration interactif pour pubm. Nécessite un TTY.
pubm initL’assistant déroule ces étapes :
- Détection des packages : analyse le dépôt à la recherche de fichiers manifest (
package.json,jsr.json,deno.json,deno.jsonc,Cargo.toml) et de la configuration workspace, puis confirme les packages et registries détectés. - Configuration de base : demande la branche de release et la stratégie de versioning (
independentoufixed). - Options de release : pose des questions sur la génération de changelog et les drafts de GitHub Release.
- Configuration du workflow : propose d’activer le workflow de changesets (crée
.pubm/changesets/,.github/workflows/changeset-check.ymlet met à jour.gitignore) et de générer les workflows de release CI (.github/workflows/release.yml). - Skills pour agents de code : propose de télécharger et d’installer les skills pour agents de code pour Claude Code, Codex CLI ou Gemini CLI. Cela correspond à
pubm setup-skills.
Un fichier pubm.config.ts n’est créé que si vos choix diffèrent des valeurs par défaut. Si toutes les valeurs correspondent aux valeurs par défaut, aucun fichier de config n’est écrit.
Cette commande n’accepte ni flags ni options. Toute la configuration est collectée de manière interactive.
pubm setup-skills
Section intitulée « pubm setup-skills »Télécharger et installer les skills pour agents de code à utiliser avec pubm.
pubm setup-skillsAgents pris en charge et leurs chemins d’installation :
| Agent | Répertoire des skills |
|---|---|
| Claude Code | .claude/skills/pubm/ |
| Codex CLI | .agents/skills/pubm/ |
| Gemini CLI | .gemini/skills/pubm/ |
Les skills sont téléchargés depuis le dépôt GitHub de pubm (dernier tag de release, avec repli sur la branche main).
Cette commande est aussi disponible comme dernière étape de pubm init.
pubm secrets sync
Section intitulée « pubm secrets sync »Pousser les tokens stockés localement vers GitHub Secrets à l’aide de la CLI gh.
pubm secrets syncpubm secrets sync --registry npmpubm secrets sync --registry npm,jsr| Flag | Par défaut | Description |
|---|---|---|
--registry <registries> | npm,jsr,crates | Limiter la synchronisation des secrets à des registries spécifiques. |
Notes :
- nécessite que
ghsoit installé et authentifié - utilise les tokens stockés localement, donc lancez d’abord
pubm --mode ci --phase preparesi rien n’a encore été sauvegardé
pubm sync --discover
Section intitulée « pubm sync --discover »Analyse le dépôt pour trouver les références de version en dehors des manifests.
pubm sync --discoverCette commande est conçue pour aider à mettre en place des plugins de synchronisation de version. Elle ignore les répertoires générés courants et les lockfiles, puis affiche les fichiers candidats et les chemins JSON ou lignes correspondantes que vous pouvez adapter à la config du plugin.
pubm update
Section intitulée « pubm update »Met à jour la CLI pubm installée vers la dernière version publiée.
pubm updatepubm changesets add
Section intitulée « pubm changesets add »Créer un changeset pour une release à venir.
pubm changesets addpubm changesets add --packages @acme/core,@acme/react --bump minorpubm changesets status
Section intitulée « pubm changesets status »Afficher les changesets en attente.
pubm changesets statuspubm changesets status --verbose| Flag | Description |
|---|---|
--verbose | Afficher des détails supplémentaires sur chaque changeset et le bump calculé. |
pubm changesets version
Section intitulée « pubm changesets version »Consommer les changesets, mettre à jour les versions dans les manifests, écrire les changelogs et valider le résultat.
Pour les packages qui n’ont pas de fichiers de changeset en attente, pubm changesets version peut se replier sur les commits conventionnels pour déterminer le type de bump. Ce comportement est contrôlé par l’option de configuration versionSources. Consultez le guide Configuration pour les détails.
pubm changesets versionpubm changesets version --dry-run| Flag | Description |
|---|---|
--dry-run | Afficher le plan de version et de changelog sans écrire de fichiers. |
pubm changesets changelog
Section intitulée « pubm changesets changelog »Générer le texte du changelog à partir des changesets en attente.
pubm changesets changelogpubm changesets changelog --dry-runpubm changesets changelog --version 1.8.0| Flag | Description |
|---|---|
--dry-run | Prévisualiser la sortie du changelog sans écrire CHANGELOG.md. |
--version <ver> | Utiliser un en-tête de section spécifique au lieu de Unreleased. |
pubm changesets migrate
Section intitulée « pubm changesets migrate »Déplacer les fichiers en attente du layout hérité .changeset/ vers .pubm/.
pubm changesets migrateCodes de sortie
Section intitulée « Codes de sortie »pubm renvoie un code de sortie non nul lorsque :
- une vérification préalable ou de condition échoue
- la résolution de version ne peut pas être terminée
- la publication échoue sur une cible quelconque
- une sous-commande rencontre une entrée invalide
En mode publication normal, les échecs déclenchent aussi un comportement de rollback quand c’est possible.
Exemples de commandes
Section intitulée « Exemples de commandes »Première release locale sur un nouveau dépôt
Section intitulée « Première release locale sur un nouveau dépôt »pubm initpubm changesets addpubm changesets versionpubm --mode ci --phase preparepubm --dry-runpubmRépétition locale de CI
Section intitulée « Répétition locale de CI »pubm --mode ci --phase preparePublier uniquement la release taguée courante en CI
Section intitulée « Publier uniquement la release taguée courante en CI »pubm --mode ci --phase publishSynchroniser les tokens stockés après la préparation
Section intitulée « Synchroniser les tokens stockés après la préparation »pubm secrets sync