export PROMPTLM_RELEASE_PROMOTION_MODE=pr_two_phase
CORE / RELEASES
Releases
A release freezes the current content of a PromptSpec at a named
version. promptLM supports two distinct release pipelines, and they
operate at different layers:
-
prompt-level releases — handled by the
prompt releaseCLI command (and the/api/prompts/…/releaseREST endpoints). Stamp the spec withx-releasemetadata and produce a versioned record. Covered on this page. -
bundle-release — a separate CI workflow that packages the entire prompt store as a Maven jar and publishes it to a registry. See the in-repo reference at [
docs/release-classes.md](https://github.com/promptLM/promptlm-app/blob/main/docs/release-classes.md).
Promotion modes
The CLI and API select between two promotion modes via the
promptlm.release.promotion.mode property.
| Mode | Behaviour |
|---|---|
|
|
|
|
Set via env var or application.yml:
CLI
promptlm-cli prompt release --id <prompt-id>
In direct mode this returns the released version. In pr_two_phase
mode it returns a string of the form requested <version> pr#<number>,
and the release is not yet final.
After the release PR merges (two-phase only):
promptlm-cli prompt release complete --id <prompt-id> --pr <pr-number>
The prompt release complete command is hidden by an availability
provider — invoking it under direct mode fails with the message
"prompt release complete is only available when
promptlm.release.promotion.mode=pr_two_phase".
REST endpoints
Both promotion paths are also exposed over HTTP for Studio and integrations:
| Method + path | Purpose |
|---|---|
|
Release by id. |
|
Release by group + name. |
|
Complete a two-phase release (id). |
|
Complete a two-phase release (group + name). |
Release metadata (x-release)
A successful release writes a ReleaseMetadata payload into the
spec’s x-release extension. The shape:
| Field | Meaning |
|---|---|
|
|
|
|
|
The version the spec was released at. |
|
Git tag that anchors the release (if any). |
|
Branch the release was opened on (two-phase). |
|
Release PR number (two-phase). |
|
Release PR URL (two-phase). |
|
|
|
The spec’s |
|
Note
|
|
Bundle-release vs prompt-release
A prompt release updates a single spec on disk. A bundle-release is
a separate CI workflow — bundle-release.yml — that packages the entire
prompts directory of a store repository as a Maven jar and publishes it
to a registry (GitHub Packages by default, Artifactory / Nexus via
BUNDLE_RELEASE_MAVEN_URL). Bundle-release runs in the user’s prompt
store repo, not in promptlm-app, and is triggered by GitHub’s
release.created event or workflow_dispatch.
For the bundle-release reference (triggers, configuration knobs,
acceptance test), see [docs/release-classes.md](https://github.com/promptLM/promptlm-app/blob/main/docs/release-classes.md)
in the repo.