rlsbl v0.92.0 /rlsbl.checks.project
On this page

Project checks (tag: project).

#rlsbl.checks.project

#rlsbl.checks.project

Project checks (tag: project) validating version, name, license, and description consistency, config schema, and scaffold conflicts.

Checks: lock, version-consistency, name-consistency, license-consistency, description-consistency, private-hook-stale, config-schema, license-file, private-publish-workflow, npm-private-mismatch, target-version-readable, dunder-version-missing, selfdoc-version-drift, scaffold-conflicts.

#find_conflicted_scaffold_files

python
def find_conflicted_scaffold_files(project_root)

Return (relpath, first_conflict_line) tuples for scaffold files with unresolved git merge conflict markers, sorted by path.

Scans three file sets (skipping files that don't exist):

  • every file listed in .rlsbl/managed-files.json (the

scaffold-managed registry; missing or malformed registry is skipped)

  • all files under .github/workflows/
  • all files under .rlsbl/ (recursively)

A file is conflicted when it contains a line starting with '<<<<<<< ' AND a line starting with '>>>>>>> '. Requiring both avoids false positives on bare '=======' lines (e.g. setext heading underlines). first_conflict_line is the 1-based line number of the first '<<<<<<< ' marker in the file.

Shared by the scaffold-conflicts check and the pre-mutation guard in rlsbl release run.

#_get_releasable_version_for_project

python
def _get_releasable_version_for_project(ctx)

Return the releasable version for the project in ctx, or None.

Returns a version string when ALL of the following hold:

  • The project is inside a monorepo (ctx.workspace_root is not None)
  • The workspace uses explicit releasable mode ([[releasables]] present)
  • The current project has releasable = "" (belongs to a releasable)
  • The releasable's version file exists and is non-empty

Returns None otherwise (implicit mode, non-releasable project, missing version file, or not in a monorepo). Callers should fall through to the standard per-target consistency check when None is returned.

#register_project_checks

python
def register_project_checks(app)

Register project-tag checks on app.