Skip to main content

LINT.SKIPPED — the run ended without linting anything

  • Category: safety
  • Level: 0
  • Stability: stable
  • Suites: lint

A run can finish having linted nothing, and there are several ordinary ways to get there. This page covers all of them, because what a reader needs to know is the same in every case: why a run can end without having examined a single migration.

The concrete finding reports as LINT.SKIPPED.<reason> — the reason is part of the id, so the report says which of these happened rather than leaving you to guess.

The reasons

  • Nothing pending. Every migration has already run. This is the common one, and on a CI job that migrates before linting it is usually a sign the steps are in the wrong order.
  • The path matched nothing. A --path pointing at a directory with no migrations in it, or a --file that does not exist.
  • Capture produced nothing. The migration ran under pretend and emitted no statements — a migration whose up() is empty, or one whose work is entirely result-dependent and therefore invisible to pretend. The second case is reported as undetermined in its own right by the CAP.PRESCAN.* family.

Why it is a finding rather than a silent zero

Same argument as LINT.NO_ACTIVE_RULES, arrived at from the other side: a run with nothing to lint and a run whose migrations are all clean produce identical output. One of those means your pipeline is not checking anything, and it is worth an explicit sentence.

One page for the whole family

The id is a family — LINT.SKIPPED.NO_MIGRATION_TABLE, LINT.SKIPPED.CONNECTION_UNREACHABLE, LINT.SKIPPED.EMPTY_MIGRATION_PATH, LINT.SKIPPED.MISSING_TOOL — and the registry records that explicitly, so the completeness check does not go looking for a page per reason. LINT.SKIPPED.MISSING_TOOL is the one exception with a page of its own, because its remedy is entirely different.