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

Batch release command for monorepo workspaces that reads unreleased.toml, resolves topological order, and releases each package sequentially.

#rlsbl.commands.monorepo.batch_release

#rlsbl.commands.monorepo.batch_release

Batch release command for monorepo workspaces.

Reads .rlsbl-monorepo/releases/unreleased.toml, validates all listed items, determines topological release order, and releases each sequentially by delegating to the existing single-package release flow.

In explicit mode ([releasables.*] sections), iterates releasables in dependency order (a releasable's position = max topological position of its member packages). For each releasable, picks one representative member package and releases through it.

In implicit mode ([packages.*] sections), iterates packages directly in topological order (original behavior).

#_releasable_release_order

python
def _releasable_release_order(batch_names, releasables, projects, graph)

Compute release order for releasables based on member topological positions.

A releasable's position is the maximum topological position of its member packages. This ensures that a releasable whose members depend on members of another releasable is released after the dependency.

Returns an ordered list of releasable names from the batch.

#_cmd_batch_release

python
def _cmd_batch_release(flags, project_root)

Execute a batch release of multiple monorepo packages or releasables.

#_batch_release_releasables

python
def _batch_release_releasables(flags, workspace_root, batch_path, batch_config, projects)

Execute batch release in releasable mode.

#_batch_release_packages

python
def _batch_release_packages(flags, workspace_root, batch_path, batch_config, projects)

Execute batch release in package mode (implicit, original behavior).

#_finalize_batch_file

python
def _finalize_batch_file(batch_path, log)

Rename the batch release file to a timestamped name and lock it.