Zum Inhalt springen

CLI-Referenz

Diese Referenz ist nach Befehlen gegliedert:

  • der top-level Publish-Befehl: pubm [version]
  • Verwaltungsbefehle wie init, secrets und sync
  • Changeset-Workflows unter pubm changesets ...
  • der Befehl pubm snapshot für Vorschau- und Test-Releases

Für den Alltag ist der wichtigste Befehl:

Terminal-Fenster
pubm

Wenn du pubm ohne Versionsargument aufrufst, landest du im interaktiven Ablauf. Dort kannst du im Terminal die nächste Version waehlen, bevor die Release-Pipeline weiterlaeuft.

BefehlZweck
pubm [version]Fuehrt die Publish-Pipeline mit einem Release-Typ oder einer expliziten SemVer aus.
pubm snapshot [tag]Veröffentlicht Snapshot-Versionen für Vorschau und Tests.
pubm initInteraktiver Setup-Wizard für Paketerkennung, Konfiguration, Changesets, CI-Workflows und Coding-Agent-Skills.
pubm setup-skillsCoding-Agent-Skills herunterladen und installieren (Claude Code, Codex, Gemini).
pubm secrets syncSchiebt lokal gespeicherte Tokens über gh in GitHub Secrets.
pubm sync --discoverDurchsucht das Repository nach Versionsverweisen außerhalb von Manifest-Dateien.
pubm updateAktualisiert die CLI selbst auf die neueste veröffentlichte Version.
pubm changesets addErstellt ein neues Changeset.
pubm changesets statusZeigt ausstehende Changesets und ihre Versionssprung-Auswirkung.
pubm changesets versionVerbraucht Changesets und schreibt neue Versionen.
pubm changesets changelogRendert Changelog-Text aus ausstehenden Changesets.
pubm changesets migrateMigriert von .changeset/ nach .pubm/.
Terminal-Fenster
pubm [version] [flags]

[version] kann sein:

  • ein SemVer-Versionssprungtyp: patch, minor, major
  • ein Pre-Release-Versionssprungtyp: prepatch, preminor, premajor, prerelease
  • eine explizite Version wie 1.8.0

Wenn du die Version weglässt:

  • interaktive Terminals koennen nach der nächsten Version fragen
  • CI-Laeufe verlangen, dass die Version nicht interaktiv aufgeloest wird
Terminal-Fenster
pubm

Typischer Ablauf:

  1. pubm ausführen
  2. patch, minor oder major waehlen
  3. pubm durch Checks, Build, Tagging und Publish weiterlaufen lassen
Terminal-Fenster
pubm
pubm --dry-run
pubm 1.8.0
pubm --registry npm,jsr
pubm --tag beta
FlagStandardBeschreibung
-d, --dry-runfalseZeigt den Task-Graphen an, ohne den Git-Zustand zu ändern oder zu veröffentlichen.
--mode <mode>localAusführungsmodus: local (interaktiv) oder ci (nicht interaktiv, tag-basiert).
--phase <phase>-Pipeline-Phase: prepare (validieren und Dry-Run) oder publish (vom neuesten Tag veröffentlichen).
--release-draftfalseErstellt einen Draft-GitHub-Release statt eines veröffentlichten Releases.
-b, --branch <name>mainVerlangt, dass der aktuelle Branch vor dem Release uebereinstimmt.
-a, --any-branchfalseDeaktiviert den Branch-Schutz für den aktuellen Lauf.
-t, --tag <name>latestVerwendet einen bestimmten Dist-Tag wie beta oder next.
-c, --contents <path>noneWechselt vor dem Release-Flow in ein Unterverzeichnis.
--registry <registries>npm,jsrKommagetrennte Ziel-Registries. Unterstützt npm, jsr, crates oder benutzerdefinierte Registry-URLs.
--test-script <script>testScript-Name für den Test-Schritt.
--build-script <script>buildScript-Name für den Build-Schritt.
--no-save-tokenfalseSpeichert unterstützte Tokens nicht für spätere Laeufe.
--dangerously-allow-unpublishfalseErlaubt Registry-Unpublish/Yank während des Rollbacks in Nicht-TTY-Umgebungen.
--locale <locale>enSprache der CLI-Ausgabe festlegen. Unterstützt: en, ko, zh-cn, fr, de, es.
--create-prfalseErstellt einen Pull Request für den Version-Bump anstatt direkt zu pushen.
FlagBeschreibung
--no-pre-checkÜberspringt Voraussetzungen wie Branch- und Working-Tree-Prüfung.
--no-condition-checkÜberspringt Pflichtprüfungen wie Token- und Registry-Validierung.
--no-testsÜberspringt den Test-Schritt.
--no-buildÜberspringt den Build-Schritt.
--no-publishLaeuft bis zum Publish, veröffentlicht Artefakte aber nicht wirklich.
--skip-releaseÜberspringt die GitHub-Release-Erstellung.

Der normale Modus für lokale Releases:

Terminal-Fenster
pubm

Verhalten:

  • startet mit interaktiver Versionsauswahl, wenn kein Versionsargument angegeben ist
  • Prompts koennen erscheinen, wenn erforderliche Informationen fehlen
  • Tests und Build laufen, sofern sie nicht uebersprungen werden
  • Versionierung, Publish, Push und GitHub-Release-Schritte laufen in dieser Reihenfolge
Terminal-Fenster
pubm --dry-run

Verwende den Dry-Run-Modus, wenn du den Task-Plan ohne Nebenwirkungen ansehen willst.

Terminal-Fenster
pubm --mode ci --phase prepare

CI-Vorbereitung:

  • sammelt fehlende Tokens interaktiv ein
  • kann sie mit GitHub Secrets synchronisieren
  • schaltet auf nicht interaktives Verhalten um, um CI nachzubilden
  • fuehrt Prüfungen für Voraussetzungen und Bedingungen aus
  • fuehrt Publish für konfigurierte Registries als Dry-Run aus
Terminal-Fenster
pubm --mode ci --phase publish

Der CI-Publish-Modus veröffentlicht vom neuesten Git-Tag und erstellt einen GitHub Release über die API. Verwende ihn, wenn Versionssprung und Tagging vorher schon in der Pipeline passiert sind. Mit --release-draft erstellst du statt eines veröffentlichten Releases einen Draft.

VariableZweck
NODE_AUTH_TOKENnpm-Authentifizierung in CI
JSR_TOKENjsr-Authentifizierung
CARGO_REGISTRY_TOKENAuthentifizierung für crates.io
PUBM_LOCALESprache der CLI-Ausgabe (en, ko, zh-cn, fr, de, es)

Prompts werden automatisch deaktiviert, wenn:

  • stdin kein TTY ist
  • der Prozess auf einer erkannten CI-Plattform laeuft

Veröffentlicht Snapshot-Versionen für Vorschau und Tests. Unterstützt Einzelpaket- und Monorepo-Projekte.

Terminal-Fenster
pubm snapshot [tag]
OptionBeschreibung
[tag]Snapshot-Tag (Standard: snapshot)
-f, --filter <name>Pakete nach Name oder Pfad filtern (wiederholbar)
-d, --dry-runSimulieren ohne Nebeneffekte
--no-testsTests ueberspringen
--no-buildBuild ueberspringen
-b, --branch <name>Ziel-Branch (Standard: main)
-a, --any-branchVeröffentlichung von beliebigem Branch erlauben
Terminal-Fenster
# Snapshot aller Pakete
pubm snapshot
# Snapshot mit eigenem Tag
pubm snapshot beta
# Snapshot bestimmter Pakete
pubm snapshot --filter @pubm/core --filter pubm

Interaktiver Setup-Wizard für pubm. Erfordert ein TTY.

Terminal-Fenster
pubm init

Der Wizard führt diese Schritte der Reihe nach aus:

  1. Paketerkennung: durchsucht das Repository nach Manifest-Dateien (package.json, jsr.json, deno.json, deno.jsonc, Cargo.toml) und Workspace-Konfiguration, bestaetigt dann die erkannten Pakete und Registries.
  2. Grundkonfiguration: fragt nach dem Release-Branch und der Versionierungsstrategie (independent oder fixed).
  3. Release-Optionen: fragt nach Changelog-Erzeugung und GitHub-Release-Entwuerfen.
  4. Workflow-Setup: bietet an, den Changesets-Workflow zu aktivieren (erstellt .pubm/changesets/, .github/workflows/changeset-check.yml und aktualisiert .gitignore) und CI-Release-Workflows zu erzeugen (.github/workflows/release.yml).
  5. Coding-Agent-Skills: bietet an, Coding-Agent-Skills für Claude Code, Codex CLI oder Gemini CLI herunterzuladen und zu installieren. Das entspricht pubm setup-skills.

Eine pubm.config.ts-Datei wird nur erstellt, wenn deine Auswahl von den Standardwerten abweicht. Wenn alle Werte den Standardwerten entsprechen, wird keine Config-Datei geschrieben.

Dieser Befehl akzeptiert keine Flags oder Optionen. Alle Konfiguration wird interaktiv abgefragt.

Coding-Agent-Skills für die Verwendung mit pubm herunterladen und installieren.

Terminal-Fenster
pubm setup-skills

Unterstützte Agenten und ihre Installationspfade:

AgentSkill-Verzeichnis
Claude Code.claude/skills/pubm/
Codex CLI.agents/skills/pubm/
Gemini CLI.gemini/skills/pubm/

Skills werden aus dem pubm-GitHub-Repository heruntergeladen (neuester Release-Tag, mit Fallback auf den main-Branch).

Dieser Befehl ist auch als letzter Schritt von pubm init verfügbar.

Schiebt lokal gespeicherte Tokens mit der gh-CLI in GitHub Secrets.

Terminal-Fenster
pubm secrets sync
pubm secrets sync --registry npm
pubm secrets sync --registry npm,jsr
FlagStandardBeschreibung
--registry <registries>npm,jsr,cratesBeschraenkt die Secret-Synchronisierung auf bestimmte Registries.

Hinweise:

  • erfordert, dass gh installiert und authentifiziert ist
  • nutzt lokal gespeicherte Tokens, daher solltest du pubm --mode ci --phase prepare zuerst ausführen, wenn noch nichts gespeichert wurde

Durchsucht das Repository nach Versionsverweisen außerhalb von Manifest-Dateien.

Terminal-Fenster
pubm sync --discover

Der Befehl ist dazu gedacht, Version-Sync-Plugins einzurichten. Er ueberspringt häufige generierte Verzeichnisse und Lockfiles und gibt dann Kandidaten-Dateien sowie JSON-Pfade oder passende Zeilen aus, die du in Plugin-Config uebernehmen kannst.

Aktualisiert die installierte pubm-CLI auf die neueste veröffentlichte Version.

Terminal-Fenster
pubm update

Alle Befehle für den Changeset-Lebenszyklus liegen unter pubm changesets.

Erstellt ein neues Changeset.

Terminal-Fenster
pubm changesets add
pubm changesets add --empty
pubm changesets add --packages @acme/core,@acme/react --bump minor --message "Add public metrics API."
FlagBeschreibung
--emptyErstellt eine leere Changeset-Datei.
--packages <list>Kommagetrennte Paketnamen für die nicht interaktive Erstellung.
--bump <type>Einer von patch, minor, major.
--message <text>Zusammenfassung für den Changeset-Body und das Changelog.

Prüft ausstehende Changesets.

Terminal-Fenster
pubm changesets status
pubm changesets status --verbose
pubm changesets status --since origin/main
FlagBeschreibung
--verboseGibt die Zusammenfassung jedes erfassten Changesets aus.
--since <ref>Prüft ab einem Git-Ref.

Verbraucht Changesets, aktualisiert Manifest-Versionen, schreibt Changelogs und committet das Ergebnis.

Für Pakete ohne ausstehende Changeset-Dateien kann pubm changesets version auf Conventional Commits zurückfallen, um den Bump-Typ zu bestimmen. Dieses Verhalten wird durch die Konfigurationsoption versionSources gesteuert. Weitere Details im Konfigurationsleitfaden.

Terminal-Fenster
pubm changesets version
pubm changesets version --dry-run
FlagBeschreibung
--dry-runGibt den Plan für Version und Changelog aus, ohne Dateien zu schreiben.

Erzeugt Changelog-Text aus ausstehenden Changesets.

Terminal-Fenster
pubm changesets changelog
pubm changesets changelog --dry-run
pubm changesets changelog --version 1.8.0
FlagBeschreibung
--dry-runZeigt den Changelog-Ausgang an, ohne CHANGELOG.md zu schreiben.
--version <ver>Verwendet eine bestimmte Abschnittsueberschrift statt Unreleased.

Verschiebt ausstehende Dateien vom alten .changeset/-Layout nach .pubm/.

Terminal-Fenster
pubm changesets migrate

pubm gibt einen von null verschiedenen Exitcode zurück, wenn:

  • eine Voraussetzung oder Pflichtprüfung fehlschlaegt
  • die Versionsauflösung nicht abgeschlossen werden kann
  • ein Publish auf einem Ziel fehlschlaegt
  • ein Subcommand ungueltige Eingaben erhält

Im normalen Publish-Modus fuehren Fehler nach Möglichkeit auch zu einem Rollback.

Terminal-Fenster
pubm init
pubm changesets add
pubm changesets version
pubm --mode ci --phase prepare
pubm --dry-run
pubm
Terminal-Fenster
pubm --mode ci --phase prepare

Nur den aktuell getaggten Release in CI veröffentlichen

Abschnitt betitelt „Nur den aktuell getaggten Release in CI veröffentlichen“
Terminal-Fenster
pubm --mode ci --phase publish

Gespeicherte Tokens nach der Vorbereitung synchronisieren

Abschnitt betitelt „Gespeicherte Tokens nach der Vorbereitung synchronisieren“
Terminal-Fenster
pubm secrets sync