Skip to content

Run project validate in CI #1528

Description

Technical TODO

My hands-on validation tour showed that verifier output is inconsistent and noisy:

  • formatter/fixer tools leak raw banners and progress;
  • concurrent tool output can interleave;
  • machine formats can lose useful source locations;
  • JUnit can represent warnings as failures even when they do not gate the CLI.

This makes validation harder to understand and gives the new project dev Validation experience an inconsistent foundation.

Related: #1544

Acceptance criteria

  • Raw tool banners/progress no longer leak into final verifier output.
  • The same finding keeps the same severity and source location across formats.
  • JUnit preserves warning/error semantics instead of turning non-gating warnings into failures.
  • Machine-readable output remains clean and usable in CI.
  • Existing --format values continue to work.

Out of scope

  • New validation rules or fixes
  • CLI-wide output normalization outside verifier commands

Activity

  1. lasomethingsomething commented on Sep 11, 2026

    @lasomethingsomething
    ContributorAuthor

    One shape this could take, from hands-on testing of extension format: the CLI relays each tool's native stdout rather than presenting its own. A single run prints PHP-CS-Fixer's version banner, the loaded-config path, a "ask for help" URL, a progress bar, and Prettier's per-file lines — two tools' raw output side by side, no shared voice.

    A unified summary the tools report into would fix both the human and machine cases at once, e.g.:

    format: 2 files checked, 0 changed (php-cs-fixer, prettier)
    

    The underlying change is that each verifier tool currently owns its own stdout; normalizing means giving them one presentation layer to write structured results into, instead of printing past it.

    Three invocations:

    Image
  2. changed the title [-]Normalize human and machine output across verifier commands[/-] [+]Run `project validate` in CI[/+] on Sep 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Fields

    No fields configured for Improvement.

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions