mix soundcheck (soundcheck v0.1.0)

Copy Markdown View Source

Runs soundcheck outside Credo, for what Credo cannot show: every location a finding involves (template, handler, JavaScript), line-level output for findings located only in JavaScript (such as unused hooks), and SARIF with related locations.

mix soundcheck
mix soundcheck --format sarif --output soundcheck.sarif
mix soundcheck --all --strict

The task compiles the project first, because semantic checks read compiled modules. It exits with status 1 when it reports any finding that is not unverifiable.

Options

  • --format - text (default), json, or sarif
  • --output - write to this file instead of standard output
  • --all - run every check, not only the default ones
  • --only - comma-separated check ids to run, such as SC101,SC1002
  • --strict - also report unverifiable findings
  • --path - a glob of Elixir sources, repeatable (default lib/**/*.ex)
  • --js-path - a JavaScript directory, repeatable (default assets/js)
  • --no-compile - do not compile; load the existing build as it is
  • --config-file - the Credo config to read (default .credo.exs)
  • --config-name - the config within it (default default)
  • --baseline - a baseline file whose findings are not reported (default .soundcheck_baseline.exs when it exists)
  • --no-baseline - report every finding
  • --write-baseline - record the current findings in the baseline file and exit 0. Entries of checks that did not run, and with --path, of files outside its globs, stay in the file.

Checks run with the parameters .credo.exs sets for them, as in mix credo, and the checks that file enables or disables are added to or removed from the defaults. --only and --all select checks regardless of the file. The Soundcheck plugin's js_paths param applies unless --js-path is given.