rlsbl v0.40.1 /rlsbl.dep_validation
On this page

Dependency validation for monorepo workspaces.

#rlsbl.dep_validation

#rlsbl.dep_validation

Dependency validation for monorepo workspaces.

Checks for unused declared dependencies and undeclared imports across workspace projects. Uses import scanners to compare actual source imports against manifest-declared dependencies.

#load_dep_overrides

python
def load_dep_overrides(root: str) -> dict[tuple[str, str], str]

Load dep-overrides.toml from the monorepo config directory.

Returns a dict mapping (package, dep) to reason string. Raises ValueError if an entry is missing a required 'reason' field. Returns empty dict if the file does not exist.

#_get_imported_workspace_packages

python
def _get_imported_workspace_packages(project_dir: str, workspace_names: set[str]) -> tuple[set[str], set[str]]

Scan a project for workspace imports, split by context.

Returns (lib_imports, test_imports) where each is a set of workspace package names found in lib/test contexts respectively.

#check_unused_deps

python
def check_unused_deps(project_name: str, project_dir: str, manifest_deps: set[str], workspace_names: set[str], whitelist: dict[tuple[str, str], str]) -> list[str]

Check for declared workspace deps that no source file imports.

Args:

  • project_name: name of the project being checked.
  • project_dir: absolute path to the project directory.
  • manifest_deps: set of declared intra-workspace dependency names.
  • workspace_names: set of all workspace member package names.
  • whitelist: mapping of (package, dep) -> reason for allowed unused deps.

Returns:

  • list of error strings (empty means all good).

#check_undeclared_deps

python
def check_undeclared_deps(project_name: str, project_dir: str, manifest_deps: set[str], workspace_names: set[str]) -> list[str]

Check for imports from workspace packages not declared as deps.

Only checks lib/ imports (non-test context) against declared dependencies. Test files have more lenient rules and are skipped.

Args:

  • project_name: name of the project being checked.
  • project_dir: absolute path to the project directory.
  • manifest_deps: set of declared intra-workspace dependency names.
  • workspace_names: set of all workspace member package names.

Returns:

  • list of error strings (empty means all good).