microsoft / microsoft/prompty

Narrow schema-repro-check's runtime/csharp/Prompty.Core* triggers once required status checks land

Open
#476 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
1.3k
Forks
127
Avg merge
9h 23m
Merged PRs (30d)
38

Description

Summary

schema-repro-check.yml (#471) triggers on runtime/csharp/Prompty.Core/** and runtime/csharp/Prompty.Core.Tests/**, which is unusual for a schema gate. Those paths exist for a real reason, but that reason should disappear once required status checks are configured.

Why they are there

C# is the only language here where hand-written code is an input to reproducibility. Verified by reading each emitter driver in schema/node_modules/@typra/emitter/dist/src/languages/*/driver.js:

Language What the driver formats Hand-written code affected?
C# dotnet format <projectRoot> — walks up from the emitted dir to the nearest .csproj/.sln, then formats the whole project Yes
Python ruff check --fix / ruff format on the emitted dirs only No
Go gofmt -w on the emitted dirs only No
TypeScript prettier / eslint on the emitted dirs only No

Per schema/tspconfig.yaml the C# targets are ../runtime/csharp/Prompty.Core/Model and ../runtime/csharp/Prompty.Core.Tests/Model, so the driver formats those two whole projects — hand-written files included.

That means a non-format-clean C# change can make the schema gate fail. Adding these triggers makes that failure land on the C# PR that causes it, rather than on the next unrelated schema PR.

Why they should be able to go away

prompty-csharp-check.yml already runs dotnet format --verify-no-changes (since 5609e39f) and already triggers on runtime/csharp/**. It correctly caught this exact drift on #472 — the dotnet format check step failed. #472 merged anyway, because main has no required status checks (see the companion issue).

So these triggers are a backstop for an enforcement gap, not a coverage gap. Once the C# check is required:

  • the C# PR cannot merge non-format-clean in the first place,
  • schema-repro-check no longer needs to run its ~4-minute job on C# PRs touching those two projects,
  • and the runtime/csharp/Prompty.Core* trigger paths can be dropped.

Suggested action

Blocked on required status checks being configured. After that lands, delete the two runtime/csharp/Prompty.Core* entries from schema-repro-check.yml's paths: and confirm the gate still behaves.

Not verified

  • Whether other emitter targets could grow the same whole-project formatting behavior in a future emitter version, which would re-introduce the need.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by checking that the C# status check is required, then open schema-repro-check.yml and inspect its paths: entries for runtime/csharp/Prompty.Core/** and runtime/csharp/Prompty.Core.Tests/**. Remove those entries once enforcement is in place and confirm the schema gate still behaves as expected.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp, github-actions
Domain
ci-cd
Issue type
Refactor
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.