Aller au contenu

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, secrets et sync
  • les commandes du workflow de changesets sous pubm changesets ...
  • la commande pubm snapshot pour les releases de prévisualisation et de test

Au quotidien, la commande principale est :

Fenêtre de terminal
pubm

Lancer 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.

CommandeBut
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 initAssistant 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-skillsTélécharger et installer les skills pour agents de code (Claude Code, Codex, Gemini).
pubm secrets syncPousser les tokens stockés localement vers GitHub Secrets via gh.
pubm sync --discoverAnalyser le dépôt pour trouver les références de version en dehors des manifests.
pubm updateMettre à jour la CLI elle-même vers la dernière version publiée.
pubm changesets addCréer un nouveau changeset.
pubm changesets statusAfficher les changesets en attente et leur impact de bump.
pubm changesets versionConsommer les changesets et écrire les nouvelles versions.
pubm changesets changelogGénérer le texte du changelog à partir des changesets en attente.
pubm changesets migrateMigrer depuis .changeset/ vers .pubm/.
Fenêtre de terminal
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
Fenêtre de terminal
pubm

Flux habituel :

  1. lancer pubm
  2. choisir patch, minor ou major
  3. laisser pubm poursuivre les vérifications, le build, le tagging et la publication
Fenêtre de terminal
pubm
pubm --dry-run
pubm 1.8.0
pubm --registry npm,jsr
pubm --tag beta
FlagPar défautDescription
-d, --dry-runfalseAfficher le graphe des tâches sans modifier l’état Git ni publier.
--mode <mode>localMode 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-draftfalseCréer un draft GitHub Release au lieu d’une release publiée.
-b, --branch <name>mainExiger que la branche courante corresponde avant la release.
-a, --any-branchfalseDésactiver la garde de branche pour l’exécution courante.
-t, --tag <name>latestUtiliser un dist-tag spécifique comme beta ou next.
-c, --contents <path>noneSe déplacer dans un sous-répertoire avant d’exécuter le pipeline de release.
--registry <registries>npm,jsrRegistries cibles séparés par des virgules. Prend en charge npm, jsr, crates ou des URLs de registry personnalisées.
--test-script <script>testNom du script utilisé pour l’étape de test.
--build-script <script>buildNom du script utilisé pour l’étape de build.
--no-save-tokenfalseNe pas persister les tokens pris en charge pour les exécutions suivantes.
--dangerously-allow-unpublishfalseAutoriser le unpublish/yank du registry lors du rollback dans les environnements sans TTY.
--locale <locale>enDéfinir la langue de sortie de la CLI. Valeurs prises en charge : en, ko, zh-cn, fr, de, es.
--create-prfalseCréer une pull request pour le version bump au lieu de pousser directement.
FlagDescription
--no-pre-checkIgnorer les vérifications préalables comme la branche et l’état de l’arbre de travail.
--no-condition-checkIgnorer les vérifications de conditions requises comme la validation des tokens et des registries.
--no-testsIgnorer l’étape de test.
--no-buildIgnorer l’étape de build.
--no-publishExécuter le pipeline jusqu’à la publication, sans publier réellement les artefacts.
--skip-releaseIgnorer la création de GitHub Release.

Le mode normal pour les releases locales :

Fenêtre de terminal
pubm

Comportement :

  • 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
Fenêtre de terminal
pubm --dry-run

Utilisez le mode dry-run lorsque vous voulez inspecter le plan des tâches sans effet de bord.

Fenêtre de terminal
pubm --mode ci --phase prepare

Pré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
Fenêtre de terminal
pubm --mode ci --phase publish

Le 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.

VariableUtilisée pour
NODE_AUTH_TOKENauthentification npm en CI
JSR_TOKENauthentification jsr
CARGO_REGISTRY_TOKENauthentification crates.io
PUBM_LOCALELangue de sortie de la CLI (en, ko, zh-cn, fr, de, es)

Les invites sont désactivées automatiquement lorsque :

  • stdin n’est pas un TTY
  • le processus s’exécute sur une plateforme CI reconnue

Publier des versions snapshot pour la prévisualisation et les tests. Prend en charge les projets mono-package et monorepo.

Fenêtre de terminal
pubm snapshot [tag]
OptionDescription
[tag]Tag snapshot (par défaut : snapshot)
-f, --filter <name>Filtrer les packages par nom ou chemin (répétable)
-d, --dry-runSimuler sans effets secondaires
--no-testsIgnorer les tests
--no-buildIgnorer le build
-b, --branch <name>Branche cible (par défaut : main)
-a, --any-branchAutoriser la publication depuis n’importe quelle branche
Fenêtre de terminal
# Snapshot de tous les packages
pubm snapshot
# Snapshot avec un tag personnalisé
pubm snapshot beta
# Snapshot de packages spécifiques
pubm snapshot --filter @pubm/core --filter pubm

Assistant de configuration interactif pour pubm. Nécessite un TTY.

Fenêtre de terminal
pubm init

L’assistant déroule ces étapes :

  1. 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.
  2. Configuration de base : demande la branche de release et la stratégie de versioning (independent ou fixed).
  3. Options de release : pose des questions sur la génération de changelog et les drafts de GitHub Release.
  4. Configuration du workflow : propose d’activer le workflow de changesets (crée .pubm/changesets/, .github/workflows/changeset-check.yml et met à jour .gitignore) et de générer les workflows de release CI (.github/workflows/release.yml).
  5. 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.

Télécharger et installer les skills pour agents de code à utiliser avec pubm.

Fenêtre de terminal
pubm setup-skills

Agents pris en charge et leurs chemins d’installation :

AgentRé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.

Pousser les tokens stockés localement vers GitHub Secrets à l’aide de la CLI gh.

Fenêtre de terminal
pubm secrets sync
pubm secrets sync --registry npm
pubm secrets sync --registry npm,jsr
FlagPar défautDescription
--registry <registries>npm,jsr,cratesLimiter la synchronisation des secrets à des registries spécifiques.

Notes :

  • nécessite que gh soit installé et authentifié
  • utilise les tokens stockés localement, donc lancez d’abord pubm --mode ci --phase prepare si rien n’a encore été sauvegardé

Analyse le dépôt pour trouver les références de version en dehors des manifests.

Fenêtre de terminal
pubm sync --discover

Cette 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.

Met à jour la CLI pubm installée vers la dernière version publiée.

Fenêtre de terminal
pubm update

Créer un changeset pour une release à venir.

Fenêtre de terminal
pubm changesets add
pubm changesets add --packages @acme/core,@acme/react --bump minor

Afficher les changesets en attente.

Fenêtre de terminal
pubm changesets status
pubm changesets status --verbose
FlagDescription
--verboseAfficher des détails supplémentaires sur chaque changeset et le bump calculé.

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.

Fenêtre de terminal
pubm changesets version
pubm changesets version --dry-run
FlagDescription
--dry-runAfficher le plan de version et de changelog sans écrire de fichiers.

Générer le texte du changelog à partir des changesets en attente.

Fenêtre de terminal
pubm changesets changelog
pubm changesets changelog --dry-run
pubm changesets changelog --version 1.8.0
FlagDescription
--dry-runPrévisualiser la sortie du changelog sans écrire CHANGELOG.md.
--version <ver>Utiliser un en-tête de section spécifique au lieu de Unreleased.

Déplacer les fichiers en attente du layout hérité .changeset/ vers .pubm/.

Fenêtre de terminal
pubm changesets migrate

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.

Fenêtre de terminal
pubm init
pubm changesets add
pubm changesets version
pubm --mode ci --phase prepare
pubm --dry-run
pubm
Fenêtre de terminal
pubm --mode ci --phase prepare

Publier uniquement la release taguée courante en CI

Section intitulée « Publier uniquement la release taguée courante en CI »
Fenêtre de terminal
pubm --mode ci --phase publish

Synchroniser les tokens stockés après la préparation

Section intitulée « Synchroniser les tokens stockés après la préparation »
Fenêtre de terminal
pubm secrets sync