On this page
Top-level rlsbl package: strictcli-based CLI with 18 commands and 3 groups, version detection, and target auto-detection across 17 registries.
#rlsbl
#rlsbl
rlsbl: Release orchestration and project scaffolding for npm, PyPI, Go, Cargo, Deno, Zig, Swift, Hex, Docker, Maven, and more, automating version bumps, changelogs, tags, GitHub Releases, and CI/CD.
#_detect_version
def _detect_version()Detect package version, preferring pyproject.toml over installed metadata.
Order: pyproject.toml in the source tree (accurate during editable installs) -> importlib.metadata (works for regular installs) -> "unknown".
#detect_registries
def detect_registries()Detect all registries/targets applicable in the current directory.
Returns a list of name strings, e.g. ["npm"], ["pypi"], or ["npm", "pypi"]. Delegates to detect_targets() so all registered targets (including docker, cargo, deno, hex, maven, etc.) are auto-detected when no config exists.
#_require_project_root
def _require_project_root()Find the rlsbl project root, chdir to it, or exit with an error.
#_resolve_target
def _resolve_target(target)Validate and resolve a --target flag value.
If target is a string, validates it against TARGETS. If None, auto-detects from the current directory. Returns the resolved registry name string or exits on error.
#_check_context_factory
def _check_context_factory()Create the appropriate check context for the current project.
Returns WorkspaceCheckContext if in a monorepo, otherwise ProjectCheckContext. Imports are deferred to avoid circular dependencies and to keep the factory lazy.
#cmd_release
def cmd_release(dry_run, yes, quiet, allow_dirty, **_kwargs)#cmd_release_init
def cmd_release_init(**_kwargs)#cmd_status
def cmd_status(target, json, **_kwargs)#cmd_scaffold
def cmd_scaffold(target, force, update, private, no_commit, skip_shared, no_tag, dry_run, **_kwargs)#cmd_check_name
def cmd_check_name(target, delay, **_kwargs)#cmd_edit_release
def cmd_edit_release(dry_run, version=None, **_kwargs)#cmd_undo
def cmd_undo(target, yes, **_kwargs)#cmd_yank
def cmd_yank(reason, use, hard, dry_run, version, **_kwargs)#cmd_discover
def cmd_discover(mine, **_kwargs)#cmd_watch
def cmd_watch(target, sha=None, **_kwargs)#cmd_pre_push_check
def cmd_pre_push_check(**_kwargs)#cmd_prs
def cmd_prs(**_kwargs)#cmd_unreleased
def cmd_unreleased(json, **_kwargs)#cmd_targets
def cmd_targets(**_kwargs)#cmd_record_gif
def cmd_record_gif(width, height, font_size, duration, **_kwargs)#cmd_migrate
def cmd_migrate(dry_run, status, **_kwargs)#cmd_deploy
def cmd_deploy(target, dry_run, force, target_name=None, **_kwargs)#cmd_commit
def cmd_commit(message, **_kwargs)#cmd_chlog_add
def cmd_chlog_add(commits, description, type, no_user_facing, no_commit, **_kwargs)#cmd_chlog_generate
def cmd_chlog_generate(dry_run, no_commit, **_kwargs)#cmd_chlog_amend
def cmd_chlog_amend(version, commits, description, type, no_user_facing, no_resolve, **_kwargs)#cmd_mono_init
def cmd_mono_init(no_commit, **_kwargs)#cmd_mono_add
def cmd_mono_add(name, target, watch, subtree_remote, depends_on, library, no_commit, path, **_kwargs)#cmd_mono_remove
def cmd_mono_remove(path, **_kwargs)#cmd_mono_list
def cmd_mono_list(**_kwargs)#cmd_mono_sync
def cmd_mono_sync(no_commit, **_kwargs)#cmd_mono_status
def cmd_mono_status(**_kwargs)#cmd_mono_check_names
def cmd_mono_check_names(target, prefix, suffix, delay, **_kwargs)#cmd_mono_release_order
def cmd_mono_release_order(**_kwargs)#cmd_mono_outdated
def cmd_mono_outdated(**_kwargs)#cmd_mono_snapshot
def cmd_mono_snapshot(check, **_kwargs)#cmd_mono_graph
def cmd_mono_graph(format, output, root, reverse, depth=None, **_kwargs)#cmd_mono_impact
def cmd_mono_impact(format, depth=None, since='', **_kwargs)#cmd_mono_release
def cmd_mono_release(dry_run, yes, quiet, allow_dirty, **_kwargs)#cmd_dev_install
def cmd_dev_install(all, include, exclude, uninstall, global_, venv, **_kwargs)#_extract_variadic_args
def _extract_variadic_args()Extract variadic positional args from sys.argv for commands that need them.
For 'check', 'commit', and 'monorepo check-names', removes positional args from sys.argv and returns them. This must be called before app.run() since strictcli does not support variadic positional args.
#main
def main()