rlsbl v0.92.0 /rlsbl release
On this page

Release lifecycle commands: bump and publish versions, scaffold release files, retry CI, sync release notes, undo, and yank past releases.

#rlsbl release

Release orchestration commands. Provides 8 subcommands covering the full release lifecycle: run, resume, init, retry, edit, undo, yank, and scrub.

#release run

Bump version, validate the JSONL changelog, run tests and lint, commit, tag, push, and create a GitHub Release. Reads the bump type (patch, minor, major, or hotfix) and target selection from .rlsbl/releases/unreleased.toml, which can be scaffolded with rlsbl release init. Supports dry-run preview, non-interactive mode with --yes, and --allow-dirty to skip the clean working tree check.

#Flags

Flags
NameShortTypeDefaultEnvDescription
--allow-dirtyboolSkip the clean working tree check and allow releasing with uncommitted changes
--bumpstrBump type: patch, minor, major, hotfix, prerelease. Skips the release file.
--descriptionstrRelease description (required with --bump)
--preidstrPre-release identifier: alpha, beta, rc, stable. Only valid with --bump.
--watchboolAfter release, automatically watch CI runs to completion
--no-watchboolAfter release, print the watch command hint without watching

#release resume

Resume a previously failed release from where it left off. Reads the in-progress state file (.rlsbl/releases/in-progress.json), validates that the current branch matches the saved state, and re-enters the release flow, skipping already-completed steps.

#Flags

Flags
NameShortTypeDefaultEnvDescription
--watchboolAfter release, automatically watch CI runs to completion
--no-watchboolAfter release, print the watch command hint without watching

#release init

Scaffold a .rlsbl/releases/unreleased.toml file by auto-detecting project targets. The generated file contains a default bump type (patch), an include list of all detected targets, and per-target configuration sections for Flutter targets.

#release retry

Dispatch CI/CD workflows for a completed release via gh workflow run. Reads the dispatch list and ref from .rlsbl/releases/retry.toml, which is auto-scaffolded with sensible defaults if missing. Verifies the GitHub Release exists before dispatching. Each workflow in the dispatch list is triggered against the configured ref (defaults to the release tag).

#Flags

Flags
NameShortTypeDefaultEnvDescription
--watchboolAfter retry, automatically watch CI runs to completion
--no-watchboolAfter retry, print the watch command hint without watching

#release edit

Sync the GitHub Release notes for a given version with the corresponding CHANGELOG.md entry. Defaults to the current version if none is specified. Use --dry-run to preview changes without updating GitHub.

#Arguments

Arguments
NameRequiredDescription
versionnoVersion whose GitHub Release notes to sync (defaults to current version)

#release undo

Revert the most recent release by deleting the GitHub Release, removing the git tag from local and remote, and reverting the version bump commit. Requires a manual git push afterward to finalize.

#Flags

Flags
NameShortTypeDefaultEnvDescription
--targetstrTarget a specific registry for version detection (auto-detected if omitted)

#release yank

Mark a past release as deprecated (soft yank) or delete it (hard yank). Soft yank marks the GitHub Release as pre-release and prepends a deprecation notice. Hard yank deletes the release entirely while preserving the git tag.

#Flags

Flags
NameShortTypeDefaultEnvDescription
--reasonstrHuman-readable explanation of why this version is being yanked
--usestrSuggest this version as a replacement in the deprecation notice
--hardboolDelete the release instead of marking as pre-release

#Arguments

Arguments
NameRequiredDescription
versionyesSemver string of the release to yank, with or without v prefix (e.g. 0.9.1)

#release scrub

Scrub sensitive content from git history and update release metadata to match the rewritten commits. Wraps safegit scrub (match or file mode), remaps commit hashes in all JSONL changelog files, regenerates CHANGELOG.md, force-pushes the rewritten history, and recreates GitHub Releases on the new tags. A scrub-result.json file records the SHA mapping for recovery if any post-rewrite step fails.

#Flags

Flags
NameShortTypeDefaultEnvDescription
--reasonstrReason for scrubbing (required, used in commit message)
--patternstrRegex pattern to match against file contents (mutually exclusive with --file)
--filestrPath to the file to remove from git history (mutually exclusive with --pattern)
--replacestrLiteral text to substitute for each match (mutually exclusive with --mangle)
--mangleboolReplace matched content with random ASCII of same length
--from-commitstrSHA of the earliest commit to rewrite (all descendants are also rewritten)
--entire-historyboolRewrite every commit in the repository from the initial commit onward