Skip to main content

PUBLISH PRE-RELEASE VERSIONS

This guide shows you how to publish pre-release extension versions through the beta and rc channels, and promote them to stable after validation.

Prerequisites

  • A published extension (see Create and Publish)
  • A Swamp account with membership in the extension's namespace collective

Push a beta version

Pass --channel beta to publish to the beta channel:

$ swamp extension push extensions/behaviors/manifest.yaml --channel beta

The version is published to the beta channel. Stable consumers are unaffected — swamp extension pull @name continues to resolve the latest stable version.

Pull the beta for testing

In a CI environment or test repo, pull the beta version:

$ swamp extension pull @mycollective/my-ext --channel beta

This installs the latest beta version. The lockfile records the channel, so subsequent swamp extension update checks stay within beta.

To install a specific version, use the @name@version form. Add --channel with the channel the version is on, so update follows that channel:

$ swamp extension pull @mycollective/my-ext@2026.06.10.1 --channel beta

Without --channel, the version still installs, but pull warns that swamp extension update keeps following stable:

extension·pull: @mycollective/my-ext@2026.06.10.1 is a beta release, and --channel was not passed: swamp extension update keeps following stable for @mycollective/my-ext. Run swamp extension pull @mycollective/my-ext --channel beta to follow beta.

swamp extension list tags such an install [beta, following stable].

Promote beta to rc

After integration tests pass, promote the version to the rc channel:

$ swamp extension promote @mycollective/my-ext 2026.06.10.1 --channel rc

The archive content does not change. The version is now visible to --channel rc consumers.

Promote to stable

After validation, promote to stable:

$ swamp extension promote @mycollective/my-ext 2026.06.10.1 --channel stable

The version is now the latest stable release. Default consumers (pull without --channel) receive it on their next update.

This works from either rc or beta — a beta version can skip rc and promote directly to stable.

From the extension's checkout, pass the manifest instead of the name and version; the registry reports which channel the version is on:

$ swamp extension promote extensions/behaviors/manifest.yaml --channel stable

Running swamp extension push --channel stable interactively on a version already published to beta offers the same promotion as its first choice.

Search for pre-release versions

To find extensions with pre-release versions available:

$ swamp extension search my-ext --channel rc --channel beta

--channel is repeatable — pass it multiple times to include results from more than one channel. Omitting --channel returns stable-only results.