Skip to content

Show concise TSV rule results without compiler noise - #46879

Merged
Timothee Guerin (timotheeguerin) merged 5 commits into
mainfrom
tsv-compiler-output
Sep 30, 2026
Merged

Timothee Guerin (timotheeguerin) merged 5 commits into
mainfrom
tsv-compiler-output

Conversation

@timotheeguerin

@timotheeguerin Timothee Guerin (timotheeguerin) commented Sep 30, 2026 •

Copy link
Copy Markdown
Member

Successful TSV runs still print compiler banners, emitted-file inventories, and Git diagnostics; failed commands can repeat stderr inside a second Command failed message. This is PR 3 of the TSV output cleanup, following #46834.

Normal successful single-spec runs print only the final summary, for example 9 passed | 3 skipped. Errors and warnings remain visible. Early failures include a count of rules not run. The single-line summary follows Vitest-style visual hierarchy: green passes, bold red failures, yellow warnings, gray skipped/suppressed/not-run counts, and dim separators. A blank line separates preceding diagnostics or verbose output from the prefix-free summary; quiet successful runs print only that summary. With --verbose, per-rule results use compact checkmarks/crosses (✔ / ×), ! for warnings, and labeled dashes for skipped/suppressed rules.

Successful compiler/formatter output and inventory/diff details are verbose-only. Native failures preserve their codes, source excerpts, related locations, and colors once. Generated-file and formatting mismatches list affected paths and remediation rather than dumping Git status and full diffs. Unexpected successful command output remains visible.

The stale-Swagger check is unchanged: --list-files is still captured internally in quiet mode; only its presentation is debug-only. Compile/Format now return structured diagnostics, completing removal of the legacy stdOutput/errorOutput path. Whole-run batch aggregation and CLI input-error cleanup remain PR 4.

Complete single-spec examples

pnpm tsv specification/contosowidgetmanager/Contoso.Management
Scenario Before After Exit code (both)
Passing spec 47 lines 1 line 0
Native compiler failure 23 lines 16 lines 1
Formatting mismatch 64 lines 5 lines 1

These are actual runs in isolated worktrees, with complete stdout and stderr and no omitted lines. Checkout/Node executable paths are normalized to <repo>/<node>; ANSI colors are removed for readability. Controlled failure configurations are not included in this PR.

Passing spec (47 -> 1 lines)

Compilation and formatting succeed without file drift. The only output is the final rule summary.

Focused output diff (timing differences ignored)
@@ -1,47 +1 @@
-Running TypeSpecValidation on folder:  <repo>/specification/contosowidgetmanager/Contoso.Management
-TypeSpec compiler v1.16.0
-
-    specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/preview/2021-10-01-preview/contoso.json
-    specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/preview/2021-10-01-preview/examples/Operations_List.json
-    specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/preview/2021-10-01-preview/examples/Employees_Get.json
-    specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/preview/2021-10-01-preview/examples/Employees_CreateOrUpdate.json
-    specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/preview/2021-10-01-preview/examples/Employees_Update.json
-    specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/preview/2021-10-01-preview/examples/Employees_Delete.json
-    specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/preview/2021-10-01-preview/examples/Employees_ListByResourceGroup.json
-    specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/preview/2021-10-01-preview/examples/Employees_ListBySubscription.json
-    specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/stable/2021-11-01/contoso.json
-    specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/stable/2021-11-01/examples/Operations_List.json
-    specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/stable/2021-11-01/examples/Employees_Get.json
-    specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/stable/2021-11-01/examples/Employees_CreateOrUpdate.json
-    specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/stable/2021-11-01/examples/Employees_Update.json
-    specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/stable/2021-11-01/examples/Employees_Delete.json
-    specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/stable/2021-11-01/examples/Employees_ListByResourceGroup.json
-    specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/stable/2021-11-01/examples/Employees_ListBySubscription.json
-    specification/contosowidgetmanager/Contoso.Management/service.yaml
-
-Compilation completed successfully.
-
-- Compiling...
-✔ Compiling
-- Running @azure-tools/typespec-autorest...
-✔ @azure-tools/typespec-autorest <duration> specification/contosowidgetmanager/
-
-Generated Swaggers:
-specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/preview/2021-10-01-preview/contoso.json
-specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/stable/2021-11-01/contoso.json
-
-Output folder:
-specification/contosowidgetmanager/resource-manager/Microsoft.Contoso
-
-Swaggers matching output folder and filename:
-specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/stable/2021-11-01/contoso.json
-specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/preview/2021-10-01-preview/contoso.json
-
-Swaggers excluded via suppressions.yaml:
-
-
-Remaining swaggers:
-specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/stable/2021-11-01/contoso.json
-specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/preview/2021-10-01-preview/contoso.json
-Running git diff on folder <repo>/specification/contosowidgetmanager
-Running git diff on folder <repo>/specification/contosowidgetmanager
+9 passed | 3 skipped
Before — complete stdout and stderr
Running TypeSpecValidation on folder:  <repo>/specification/contosowidgetmanager/Contoso.Management
TypeSpec compiler v1.16.0

    specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/preview/2021-10-01-preview/contoso.json
    specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/preview/2021-10-01-preview/examples/Operations_List.json
    specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/preview/2021-10-01-preview/examples/Employees_Get.json
    specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/preview/2021-10-01-preview/examples/Employees_CreateOrUpdate.json
    specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/preview/2021-10-01-preview/examples/Employees_Update.json
    specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/preview/2021-10-01-preview/examples/Employees_Delete.json
    specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/preview/2021-10-01-preview/examples/Employees_ListByResourceGroup.json
    specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/preview/2021-10-01-preview/examples/Employees_ListBySubscription.json
    specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/stable/2021-11-01/contoso.json
    specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/stable/2021-11-01/examples/Operations_List.json
    specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/stable/2021-11-01/examples/Employees_Get.json
    specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/stable/2021-11-01/examples/Employees_CreateOrUpdate.json
    specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/stable/2021-11-01/examples/Employees_Update.json
    specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/stable/2021-11-01/examples/Employees_Delete.json
    specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/stable/2021-11-01/examples/Employees_ListByResourceGroup.json
    specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/stable/2021-11-01/examples/Employees_ListBySubscription.json
    specification/contosowidgetmanager/Contoso.Management/service.yaml

Compilation completed successfully.

- Compiling...
✔ Compiling
- Running @azure-tools/typespec-autorest...
✔ @azure-tools/typespec-autorest 262ms specification/contosowidgetmanager/

Generated Swaggers:
specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/preview/2021-10-01-preview/contoso.json
specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/stable/2021-11-01/contoso.json

Output folder:
specification/contosowidgetmanager/resource-manager/Microsoft.Contoso

Swaggers matching output folder and filename:
specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/stable/2021-11-01/contoso.json
specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/preview/2021-10-01-preview/contoso.json

Swaggers excluded via suppressions.yaml:


Remaining swaggers:
specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/stable/2021-11-01/contoso.json
specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/preview/2021-10-01-preview/contoso.json
Running git diff on folder <repo>/specification/contosowidgetmanager
Running git diff on folder <repo>/specification/contosowidgetmanager
After — complete stdout and stderr
9 passed | 3 skipped

Native compiler failure (23 -> 16 lines)

The fixture selects nonexistent autorest version: "1900-01-01". Native diagnostic details remain visible, followed by the summary.

Focused output diff (timing differences ignored)
@@ -1,2 +1,2 @@
-Running TypeSpecValidation on folder:  <repo>/specification/contosowidgetmanager/Contoso.Management
+error tsv/compile: TypeSpec compilation failed (exit code 1).
 TypeSpec compiler v1.16.0
@@ -10,10 +10,2 @@ specification/contosowidgetmanager/Contoso.Management/main.tsp:18:21 - error @az
 Found 1 error.
-
-- Compiling...
-✔ Compiling
-- Running @azure-tools/typespec-autorest...
-× @azure-tools/typespec-autorest <duration> specification/contosowidgetmanager/
-
-Rule Compile failed
-Command failed: <node> <repo>/node_modules/@typespec/compiler/cmd/tsp.js compile --list-files --warn-as-error <repo>/specification/contosowidgetmanager/Contoso.Management
 - Compiling...
@@ -23 +15,2 @@ Command failed: <node> <repo>/node_modules/@typespec/compiler/cmd/tsp.js compile
 
+6 passed | 1 failed | 1 skipped | 4 not run
Before — complete stdout and stderr
Running TypeSpecValidation on folder:  <repo>/specification/contosowidgetmanager/Contoso.Management
TypeSpec compiler v1.16.0

Diagnostics were reported during compilation:

specification/contosowidgetmanager/Contoso.Management/main.tsp:18:21 - error @azure-tools/typespec-autorest/no-matching-version-found: The emitter did not emit any files because the specified version option does not match any versions of the service.
> 18 | namespace Microsoft.Contoso;
     |                     ^^^^^^^

Found 1 error.

- Compiling...
✔ Compiling
- Running @azure-tools/typespec-autorest...
× @azure-tools/typespec-autorest 1ms specification/contosowidgetmanager/

Rule Compile failed
Command failed: <node> <repo>/node_modules/@typespec/compiler/cmd/tsp.js compile --list-files --warn-as-error <repo>/specification/contosowidgetmanager/Contoso.Management
- Compiling...
✔ Compiling
- Running @azure-tools/typespec-autorest...
× @azure-tools/typespec-autorest 1ms specification/contosowidgetmanager/

After — complete stdout and stderr
error tsv/compile: TypeSpec compilation failed (exit code 1).
TypeSpec compiler v1.16.0

Diagnostics were reported during compilation:

specification/contosowidgetmanager/Contoso.Management/main.tsp:18:21 - error @azure-tools/typespec-autorest/no-matching-version-found: The emitter did not emit any files because the specified version option does not match any versions of the service.
> 18 | namespace Microsoft.Contoso;
     |                     ^^^^^^^

Found 1 error.
- Compiling...
✔ Compiling
- Running @azure-tools/typespec-autorest...
× @azure-tools/typespec-autorest 1ms specification/contosowidgetmanager/

6 passed | 1 failed | 1 skipped | 4 not run

Formatting mismatch (64 -> 5 lines)

The fixture commits extra spaces after default: in tspconfig.yaml. Formatting corrects the spacing and TSV still exits 1 with the affected file, fix command, and summary.

Focused output diff (timing differences ignored)
@@ -1,64 +1,5 @@
-Running TypeSpecValidation on folder:  <repo>/specification/contosowidgetmanager/Contoso.Management
-TypeSpec compiler v1.16.0
+specification/contosowidgetmanager/Contoso.Management - error tsv/format-changed: Files changed by formatting (repository-relative paths):
+specification/contosowidgetmanager/Contoso.Management/tspconfig.yaml
+  help: Run `pnpm exec tsp format "../**/*.tsp" tspconfig.yaml` from the project folder and include the changes.
 
-    specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/preview/2021-10-01-preview/contoso.json
-    specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/preview/2021-10-01-preview/examples/Operations_List.json
-    specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/preview/2021-10-01-preview/examples/Employees_Get.json
-    specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/preview/2021-10-01-preview/examples/Employees_CreateOrUpdate.json
-    specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/preview/2021-10-01-preview/examples/Employees_Update.json
-    specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/preview/2021-10-01-preview/examples/Employees_Delete.json
-    specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/preview/2021-10-01-preview/examples/Employees_ListByResourceGroup.json
-    specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/preview/2021-10-01-preview/examples/Employees_ListBySubscription.json
-    specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/stable/2021-11-01/contoso.json
-    specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/stable/2021-11-01/examples/Operations_List.json
-    specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/stable/2021-11-01/examples/Employees_Get.json
-    specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/stable/2021-11-01/examples/Employees_CreateOrUpdate.json
-    specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/stable/2021-11-01/examples/Employees_Update.json
-    specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/stable/2021-11-01/examples/Employees_Delete.json
-    specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/stable/2021-11-01/examples/Employees_ListByResourceGroup.json
-    specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/stable/2021-11-01/examples/Employees_ListBySubscription.json
-    specification/contosowidgetmanager/Contoso.Management/service.yaml
-
-Compilation completed successfully.
-
-- Compiling...
-✔ Compiling
-- Running @azure-tools/typespec-autorest...
-✔ @azure-tools/typespec-autorest <duration> specification/contosowidgetmanager/
-
-Generated Swaggers:
-specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/preview/2021-10-01-preview/contoso.json
-specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/stable/2021-11-01/contoso.json
-
-Output folder:
-specification/contosowidgetmanager/resource-manager/Microsoft.Contoso
-
-Swaggers matching output folder and filename:
-specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/stable/2021-11-01/contoso.json
-specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/preview/2021-10-01-preview/contoso.json
-
-Swaggers excluded via suppressions.yaml:
-
-
-Remaining swaggers:
-specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/stable/2021-11-01/contoso.json
-specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/preview/2021-10-01-preview/contoso.json
-Running git diff on folder <repo>/specification/contosowidgetmanager
-Running git diff on folder <repo>/specification/contosowidgetmanager
-Rule Format failed
-- Formatting
-✔ 1 formatted, 5 unchanged
-{"not_added":[],"conflicted":[],"created":[],"deleted":[],"modified":["specification/contosowidgetmanager/Contoso.Management/tspconfig.yaml"],"renamed":[],"files":[{"path":"specification/contosowidgetmanager/Contoso.Management/tspconfig.yaml","index":" ","working_dir":"M"}],"staged":[],"ahead":0,"behind":0,"current":"HEAD","tracking":null,"detached":true}diff --git a/specification/contosowidgetmanager/Contoso.Management/tspconfig.yaml b/specification/contosowidgetmanager/Contoso.Management/tspconfig.yaml
-index 92c2d2eb68a..6e46b2099ee 100644
---- a/specification/contosowidgetmanager/Contoso.Management/tspconfig.yaml
-+++ b/specification/contosowidgetmanager/Contoso.Management/tspconfig.yaml
-@@ -1,6 +1,6 @@
- parameters:
-   "service-dir":
--    default:    "sdk/contoso"
-+    default: "sdk/contoso"
- emit:
-   - "@azure-tools/typespec-autorest"
- options:
-
-Files have been changed by formatting. Run `pnpm exec tsp format "../**/*.tsp" tspconfig.yaml` from the project folder and include the changes.
+7 passed | 1 failed | 1 skipped | 3 not run
Before — complete stdout and stderr
Running TypeSpecValidation on folder:  <repo>/specification/contosowidgetmanager/Contoso.Management
TypeSpec compiler v1.16.0

    specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/preview/2021-10-01-preview/contoso.json
    specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/preview/2021-10-01-preview/examples/Operations_List.json
    specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/preview/2021-10-01-preview/examples/Employees_Get.json
    specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/preview/2021-10-01-preview/examples/Employees_CreateOrUpdate.json
    specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/preview/2021-10-01-preview/examples/Employees_Update.json
    specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/preview/2021-10-01-preview/examples/Employees_Delete.json
    specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/preview/2021-10-01-preview/examples/Employees_ListByResourceGroup.json
    specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/preview/2021-10-01-preview/examples/Employees_ListBySubscription.json
    specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/stable/2021-11-01/contoso.json
    specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/stable/2021-11-01/examples/Operations_List.json
    specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/stable/2021-11-01/examples/Employees_Get.json
    specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/stable/2021-11-01/examples/Employees_CreateOrUpdate.json
    specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/stable/2021-11-01/examples/Employees_Update.json
    specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/stable/2021-11-01/examples/Employees_Delete.json
    specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/stable/2021-11-01/examples/Employees_ListByResourceGroup.json
    specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/stable/2021-11-01/examples/Employees_ListBySubscription.json
    specification/contosowidgetmanager/Contoso.Management/service.yaml

Compilation completed successfully.

- Compiling...
✔ Compiling
- Running @azure-tools/typespec-autorest...
✔ @azure-tools/typespec-autorest 268ms specification/contosowidgetmanager/

Generated Swaggers:
specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/preview/2021-10-01-preview/contoso.json
specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/stable/2021-11-01/contoso.json

Output folder:
specification/contosowidgetmanager/resource-manager/Microsoft.Contoso

Swaggers matching output folder and filename:
specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/stable/2021-11-01/contoso.json
specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/preview/2021-10-01-preview/contoso.json

Swaggers excluded via suppressions.yaml:


Remaining swaggers:
specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/stable/2021-11-01/contoso.json
specification/contosowidgetmanager/resource-manager/Microsoft.Contoso/preview/2021-10-01-preview/contoso.json
Running git diff on folder <repo>/specification/contosowidgetmanager
Running git diff on folder <repo>/specification/contosowidgetmanager
Rule Format failed
- Formatting
✔ 1 formatted, 5 unchanged
{"not_added":[],"conflicted":[],"created":[],"deleted":[],"modified":["specification/contosowidgetmanager/Contoso.Management/tspconfig.yaml"],"renamed":[],"files":[{"path":"specification/contosowidgetmanager/Contoso.Management/tspconfig.yaml","index":" ","working_dir":"M"}],"staged":[],"ahead":0,"behind":0,"current":"HEAD","tracking":null,"detached":true}diff --git a/specification/contosowidgetmanager/Contoso.Management/tspconfig.yaml b/specification/contosowidgetmanager/Contoso.Management/tspconfig.yaml
index 92c2d2eb68a..6e46b2099ee 100644
--- a/specification/contosowidgetmanager/Contoso.Management/tspconfig.yaml
+++ b/specification/contosowidgetmanager/Contoso.Management/tspconfig.yaml
@@ -1,6 +1,6 @@
 parameters:
   "service-dir":
-    default:    "sdk/contoso"
+    default: "sdk/contoso"
 emit:
   - "@azure-tools/typespec-autorest"
 options:

Files have been changed by formatting. Run `pnpm exec tsp format "../**/*.tsp" tspconfig.yaml` from the project folder and include the changes.
After — complete stdout and stderr
specification/contosowidgetmanager/Contoso.Management - error tsv/format-changed: Files changed by formatting (repository-relative paths):
specification/contosowidgetmanager/Contoso.Management/tspconfig.yaml
  help: Run `pnpm exec tsp format "../**/*.tsp" tspconfig.yaml` from the project folder and include the changes.

7 passed | 1 failed | 1 skipped | 3 not run

Add --verbose (or use a CI debug rerun) for compact per-rule indicators and detailed execution logs. NO_COLOR/FORCE_COLOR controls also apply to captured subprocesses, without mutating the parent environment.

Repository template selector (this is tooling-only, not an API or SDK configuration change)

Choose a PR Template

Switch to "Preview" on this description then select one of the choices below.

Click here to open a PR for a Data Plane API.

Click here to open a PR for a Control Plane (ARM) API.

Click here to open a PR for only SDK configuration.

@github-actions

github-actions Bot commented Sep 30, 2026 •

Copy link
Copy Markdown

Next Steps to Merge

Next steps that must be taken to merge this PR:
  • ❌ The required check named Protected Files has failed. Refer to the check in the PR's 'Checks' tab for details on how to fix it and consult the aka.ms/ci-fix guide


Comment generated by summarize-checks workflow run.

@timotheeguerin Timothee Guerin (timotheeguerin) changed the title Make TSV compiler output quiet without hiding failures Show concise TSV rule results without compiler noise Sep 30, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟢 Approval recommended

The output refactor is coherent and backed by focused unit and end-to-end coverage.

Review effort: Balanced
Findings: None

What changed in this PR

Streamlines TypeSpec Validation output while preserving diagnostics, stale-file checks, and verbose troubleshooting details.

Changes:

  • Adds concise rule statuses and final summaries.
  • Converts compiler/formatter output into structured diagnostics.
  • Adds command color handling and extensive unit/integration coverage.
File Description
.github/​shared/​src/​exec.ts Supports command-specific environments.
.github/​shared/​test/​exec.test.ts Tests environment forwarding.
eng/​tools/​typespec-validation/​README.md Documents concise and verbose output.
eng/​tools/​typespec-validation/​src/​command-output.ts Classifies and reports command output.
eng/​tools/​typespec-validation/​src/​diagnostics.ts Formats statuses, summaries, and output details.
eng/​tools/​typespec-validation/​src/​index.ts Aggregates and prints rule results.
eng/​tools/​typespec-validation/​src/​rule-result.ts Adds structured multiline diagnostic output.
eng/​tools/​typespec-validation/​src/​rules/​compile.ts Produces structured compilation diagnostics.
eng/​tools/​typespec-validation/​src/​rules/​format.ts Produces structured formatting diagnostics.
eng/​tools/​typespec-validation/​src/​utils.ts Controls subprocess colors and concise Git reporting.
eng/​tools/​typespec-validation/​test/​cli.test.ts Updates CLI output expectations.
eng/​tools/​typespec-validation/​test/​command-output.test.ts Covers command-output classification.
eng/​tools/​typespec-validation/​test/​compile.test.ts Covers concise compilation behavior.
eng/​tools/​typespec-validation/​test/​compiler-cli.test.ts Adds end-to-end CLI coverage.
eng/​tools/​typespec-validation/​test/​diagnostics.test.ts Tests summary and status formatting.
eng/​tools/​typespec-validation/​test/​diagnostics.ts Includes output in test diagnostic text.
eng/​tools/​typespec-validation/​test/​format.test.ts Covers formatter diagnostics and drift.
eng/​tools/​typespec-validation/​test/​generated-files.test.ts Tests service-scoped generated-file detection.
eng/​tools/​typespec-validation/​test/​mocks.ts Updates mocked Git status data.
eng/​tools/​typespec-validation/​test/​run-node-bin.test.ts Tests subprocess color policy.
eng/​tools/​typespec-validation/​test/​run-rules.test.ts Tests summaries and verbose statuses.
eng/​tools/​typespec-validation/​test/​util.test.ts Updates utility tests for logger-aware Git checks.

💡 Add a code-review agent skill for context-aware, tailored reviews. Learn more in the docs.

@timotheeguerin
Timothee Guerin (timotheeguerin) marked this pull request as ready for review September 30, 2026 14:50
@timotheeguerin
Timothee Guerin (timotheeguerin) merged commit 5df694b into main Sep 30, 2026
93 of 104 checks passed
@timotheeguerin
Timothee Guerin (timotheeguerin) deleted the tsv-compiler-output branch September 30, 2026 14:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants