Skip to content

v0.121.0

Choose a tag to compare

@smm-h smm-h released this 12 Sep 23:31
· 1650 commits to main since this release

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.3 companion tag for a root Go module; git refuses that ref name, and
    the root module's proxy tag is the primary v1.2.3 tag itself.
  • mixed-tag-schemes stops reporting a scheme conflict on a member whose
    releasable already declares the one tag_format it tags under.
  • version-consistency reads the targets and publish_mode the releasable
    declares for a member whose path is the repository root, which cannot carry a
    .rlsbl/config.json of its own.
  • The documentation directives vendored the Markdown table renderer they
    imported from selfdoc-core, and the rlsbl[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 bare python3.
  • A release that generates a blog post now invokes selfdoc blog post generate
    and checks for the selfdoc binary, because the separate selfblog command
    no longer exists.

Breaking

  • rlsbl check at 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.json a 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 plain rlsbl instead. The documentation directives vendored the Markdown table renderer they used to import from selfdoc-core, so every derived table now builds under a bare python3 with no extra to install.
  • A release that generates a blog post now invokes selfdoc blog post generate --from-release and requires the selfdoc binary; the separate selfblog command it used before no longer exists

Features

  • A releasable-rename transition-record event kind. rlsbl monorepo rename-releasable records the rename itself beside the boundary alias it creates, and rlsbl transition record --releasable-rename <old> --to <new> declares one performed another way. It is a tag-spelling fact, so rlsbl release reconcile still 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 reconcile reported "Nothing to reconcile" and rlsbl release undo reported "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 status shows 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.jsonl now reds the releasable-residue check 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.3 companion 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 primary v1.2.3 tag itself.
  • The mixed-tag-schemes check no longer errors on a member whose releasable declares a tag_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-consistency no longer fails with a missing publish_mode error 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 the targets and publish_mode its releasable declares.