Repository navigation
v0.120.1
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
ghfailure 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 torlsbl watch. rlsbl release reconcilenow 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 -- whilerlsbl 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 asrlsbl release rundoes). 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, evenrlsbl --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 theinstall_pathsrequirement is reported byrlsbl dev install, the command that has something to install. rlsbl release backfillrepairs an archive whose required fields are empty rather than absent. An archive recorded from a scaffolded release file that nobody filled in carriesbump = ""anddescription = ""; the strict reader refuses it, so the version's ref set is underivable andunpublished-refsreports 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.