Skip to content

Validation tells developers what actually ran #1502

Description

As a developer running validation, I want the CLI to tell me which checks actually ran and reject selections it cannot execute, so that a green result cannot mean nothing was checked.

Problem

Hands-on testing found explicit selections that silently became a different check or no check at all:

  • extension validate --only phpstan without --full ran sw-cli instead of failing, because --full was missing; 16 metadata findings, not PHPStan's. The type error in TypeTrouble.php goes uncaught.
  • project validate --only sw-cli returned 0 problems although sw-cli does no project check
  • extension fix --only phpstan exited successfully without doing anything; no fix ran and no files changed
  • In a disposable copy of FroshTools, ESLint reported one no-unused-expressions error. Running extension fix --only eslint --allow-non-git printed the same finding but produced no file changes, showing that validation can report an error without the selected fixer resolving it.

This makes a green result ambiguous. It also prevents project upgrade from honestly reporting compatibility coverage: if the CLI cannot say what executed, it cannot distinguish "verified" from "not checked."

Expected

An explicit selection either runs or fails clearly. For example:

$ shopware-cli extension validate --only phpstan
Error: phpstan requires --full

$ shopware-cli project validate --only sw-cli
Error: sw-cli does not support project validation

$ shopware-cli extension fix --only phpstan
Error: phpstan does not provide a fix operation

Successful validation reports its coverage:

Checks: phpstan ✓
0 problems

Acceptance criteria

  • An explicitly selected tool runs or fails clearly; it is never silently replaced or ignored.
  • Validation reports checks that ran and checks skipped/unsupported.
  • 0 problems cannot result from a no-op selection.
  • The same coverage information is available to machine-readable output and project upgrade.

Readiness checklist

  • Acceptance criteria are clearly defined.
  • Backward compatibility impact addressed.
  • Documentation written.
  • Tests added or adjusted accordingly.

Metadata

Metadata

Labels

No labels
No labels

Type

Fields

Priority

None yet

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions