Repository navigation
v0.121.0
Root Go members release correctly; the docs directives need no selfdoc package
Context
Four fixes found while releasing a repository whose root member carries a Go
module beside its npm and PyPI manifests.
- A releasable whose member is the repository root no longer tries to create a
./v1.2.3companion tag for a root Go module; git refuses that ref name, and
the root module's proxy tag is the primaryv1.2.3tag itself. mixed-tag-schemesstops reporting a scheme conflict on a member whose
releasable already declares the onetag_formatit tags under.version-consistencyreads thetargetsandpublish_modethe releasable
declares for a member whose path is the repository root, which cannot carry a
.rlsbl/config.jsonof its own.- The documentation directives vendored the Markdown table renderer they
imported fromselfdoc-core, and therlsbl[docs]extra that pulled it in is
removed. That removal is the breaking change making this a minor bump: derived
tables now build under a barepython3. - A release that generates a blog post now invokes
selfdoc blog post generate
and checks for theselfdocbinary, because the separateselfblogcommand
no longer exists.
Breaking
rlsbl checkat a monorepo workspace root now refuses project-scoped checks instead of degrading, and gains--releasable <name>. Standing at the root, checks that answer for one project reported SKIP "no targets detected" and demanded config keys in a.rlsbl/config.jsona workspace root must not have. They are an error result now, naming both routes; pass--releasable <name>to scope the run to one releasable, or run from a member directory. Workspace-scoped and pre-push checks are unchanged.- The
rlsbl[docs]extra is removed.pip install rlsbl[docs]no longer resolves -- install plainrlsblinstead. The documentation directives vendored the Markdown table renderer they used to import fromselfdoc-core, so every derived table now builds under a barepython3with no extra to install. - A release that generates a blog post now invokes
selfdoc blog post generate --from-releaseand requires theselfdocbinary; the separateselfblogcommand it used before no longer exists
Features
- A
releasable-renametransition-record event kind.rlsbl monorepo rename-releasablerecords the rename itself beside the boundary alias it creates, andrlsbl transition record --releasable-rename <old> --to <new>declares one performed another way. It is a tag-spelling fact, sorlsbl release reconcilestill repairs the refs of releases made under the old name.
Fixes
- A workspace member with no
.rlsbl/of its own no longer falls through to the repository root.rlsbl release reconcilereported "Nothing to reconcile" andrlsbl release undoreported "no releases recorded" when run from such a member -- a false all-clear over the releasable's real release records. Both resolve by workspace membership now, and reconcile hard-errors in a directory belonging to no releasable, naming both routes. rlsbl monorepo statusshows the releasable's version for a publish-suppressed member. Such a member's manifest is never bumped (nothing publishes it), so the table showed it frozen at its creation version while its releasable shipped release after release. The row now reports the releasable's version file -- the same authority the version-consistency check uses -- annotated(version file).- A corrupt
transitions.jsonlnow reds thereleasable-residuecheck in every workspace. The check only opened the repository's transition record when some member released nothing, so a malformed record went unreported in a workspace where every member belongs to a releasable. - A releasable whose member is the repository root and whose Go module sits at the root no longer tries to create a
./v1.2.3companion tag, which git refuses as an invalid ref name after the release candidate has already been pushed and CI has run. A root Go module's proxy tag is the primaryv1.2.3tag itself. - The
mixed-tag-schemescheck no longer errors on a member whose releasable declares atag_format. A member carrying a Go module alongside npm or PyPI manifests -- the shape a repository that used to be standalone keeps at its root -- reported a scheme conflict even though the releasable had already stated the one format it tags under. - Fix.
version-consistencyno longer fails with a missingpublish_modeerror on a workspace member whose path is the repository root. Such a member cannot carry its own.rlsbl/config.json, and the check now reads thetargetsandpublish_modeits releasable declares.