rlsbl v0.92.0 /rlsbl.commands.monorepo.batch_release_init
On this page

Scaffold a batch release file for all workspace projects, auto-detecting targets and commenting out packages with no unreleased commits.

#rlsbl.commands.monorepo.batch_release_init

#rlsbl.commands.monorepo.batch_release_init

Scaffold a batch release file for all workspace projects, auto-detecting targets and commenting out packages with no unreleased commits.

#_get_unreleased_commit_count

python
def _get_unreleased_commit_count(proj, workspace_root)

Return the number of unreleased commits touching a project's files.

Uses the project's monorepo tag glob to find the last version tag, then counts commits since that tag that touch files within the project's path or watch globs. Returns (count, last_tag) where last_tag is the tag string or None if no tags exist.

#_build_pkg_section

python
def _build_pkg_section(proj, workspace_root, target_names)

Build a tomlkit table for a single package section.

#_render_commented_section

python
def _render_commented_section(name, target_names, reason, section_key='packages')

Render a package/releasable section as TOML comments.

Returns a string of comment lines (each prefixed with '# ') that represent the section the user would uncomment if they want to include it.

#_collect_releasable_targets

python
def _collect_releasable_targets(releasable_name, member_projects, workspace_root)

Collect targets for a releasable.

Delegates to collect_releasable_targets in rlsbl.targets. Kept as a thin wrapper for backward compatibility with existing callers that import this private name.

#_cmd_batch_release_init

python
def _cmd_batch_release_init(project_root, packages=None)

Create .rlsbl-monorepo/releases/unreleased.toml with per-package or per-releasable sections.

In explicit mode (workspace has [[releasables]]), scaffolds [releasables.] sections grouped by releasable. In implicit mode, scaffolds [packages.] sections per package.

Iterates over all releasable units (skipping non-releasable projects), detects targets for each, and scaffolds sections with empty bump/description and the detected include list.

Items with zero unreleased commits are included as commented-out sections.

Args:

  • project_root: Path to the project root directory.
  • packages: Optional comma-separated string of names to include.

In explicit mode these are releasable names; in implicit mode, package names.

#_scaffold_releasable_sections

python
def _scaffold_releasable_sections(workspace_root, projects, batch_path, filter_names)

Scaffold [releasables.] sections for explicit mode.

#_scaffold_package_sections

python
def _scaffold_package_sections(workspace_root, projects, batch_path, filter_names)

Scaffold [packages.] sections for implicit mode (original behavior).