Alpha and other prereleases
Setpreid: "alpha" in the version target’s options or pass it on the CLI:
0.0.1 becomes 1.0.0-alpha.0. Further releasable
changes increment the counter (1.0.0-alpha.1, 1.0.0-alpha.2). If a change
requires a higher stable version, a new sequence starts: a feature from
1.0.1-alpha.2 becomes 1.1.0-alpha.0. With no releasable commits, the command
still does nothing unless releaseAs is supplied.
Changing preid to beta starts at .0 for that identifier. Versions must always
increase; switching from beta back to alpha on the same base version is
rejected. Valid identifiers include alpha, beta, rc, and alpha.preview.
An exact releaseAs overrides preid, including one saved in project options.
To promote 1.0.0-alpha.2 to stable without requiring new commits:
{version} / {tag} placeholder. syncVersions and
skipCommit keep their normal behavior. History is measured from the latest
matching release tag, including prerelease tags; each changelog entry contains
changes since that tag.
Publish an alpha package and create a GitHub release
This example belongs to a project namedmy-package in packages/my-package.
It builds into dist/my-package, publishes the generated package to npm, and
creates a GitHub release. Install @isox-sh/js for the build target and adjust
the TypeScript configuration path to your project.
build, publish, and github in that order. The build reads the updated version.
After editing project.json, refresh workspace discovery and preview the release:
preid, so the same publishing targets work for stable
releases. Remove preid from the configuration when future releases should also
be stable, then refresh discovery again.
The post-target values follow the final version:
"{prerelease}" becomes a boolean before the GitHub executor runs, despite being
written as a string in JSON. Placeholders resolve only when called through release
postTargets; invoking publish or github directly requires concrete options.
Publish multiple projects with one shared version
Use a root project as the release coordinator. In this example,utils and
api-client each define their own build and publish targets as above, with
matching TypeScript and output paths. Their publish commands use {npmTag}.
v tag and combined
notes, and only the root changelog is written.
These examples leave skipCommit at its default false so pushed tags contain
the updated manifests. See Skipping the release commit
if you prefer to stage generated files without committing them.
Back to releases.