Skip to content

v0.120.1

Choose a tag to compare

@smm-h smm-h released this 05 Sep 14:42
· 1708 commits to main since this release

Fix-forward patch: release reconcile is releasable-aware in workspaces, an unanswerable target axis no longer kills every command at import, the backfill completes present-but-empty required fields, and a CI run is reported red only when it really concluded red.

Fixes

  • CI verdicts are confirmed against the run's own state. A release could report a red CI verdict while its CI was still running and later passed: a transient gh failure during the in-process wait was read as a failed run. A non-zero watch exit is now checked against the run itself, and only a run GitHub reports as completed with a non-success conclusion is red -- an unfinished or unreadable one is reported as unresolved, whose remedy is to check the runs and resume. The same correction applies to rlsbl watch.
  • rlsbl release reconcile now works in a workspace. In a monorepo it read a release-record directory that does not exist, so it reported "Nothing to reconcile" for every releasable -- while rlsbl check --name unpublished-refs, run from the same directory, listed the missing refs and named reconcile as the remedy. It now resolves the releasable the way the checks do: a member directory names its own, and at the workspace root --releasable <name> says which (required there, refused elsewhere, exactly as rlsbl release run does). The plan file is written beside the release records it reconciled instead of into a stray .rlsbl/.
  • rlsbl runs in a Go repository whose pipeline declares no install_paths. Every invocation from such a directory -- rlsbl status, rlsbl check, even rlsbl --help -- died at import with "target 'go' cannot answer the 'supports_dev_install' support axis", because two per-target support axes probed the current directory instead of asking the target about itself. The axes no longer consult the cwd, and the install_paths requirement is reported by rlsbl dev install, the command that has something to install.
  • rlsbl release backfill repairs an archive whose required fields are empty rather than absent. An archive recorded from a scaffolded release file that nobody filled in carries bump = "" and description = ""; the strict reader refuses it, so the version's ref set is underivable and unpublished-refs reports it -- but the backfill left it alone, because it asked only whether the key existed. An empty required string now counts as unanswered: the description is recovered through the usual chain, the bump derived from version arithmetic, and each replaced value names its source in the archive. Empty lists are untouched -- exclude = [] is a real statement.