You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- unit tests currently use `NUnit` through the default `VSTest` runner
131
131
- UI tests live in `DotPilot.UITests` and are a mandatory part of normal verification; the harness must provision or resolve browser-driver prerequisites automatically instead of skipping when local setup is missing
132
132
-`format` uses `dotnet format --verify-no-changes`
133
133
- coverage uses the `coverlet.collector` integration on `DotPilot.Tests` with the repo runsettings file to keep generated Uno artifacts out of the coverage path
134
-
- desktop artifact validation uses `dotnet publish DotPilot/DotPilot.csproj -c Release -f net10.0-desktop` and the CI workflow must upload publish outputs for macOS, Windows, and Linux
134
+
- desktop artifact validation uses `dotnet publish DotPilot/DotPilot.csproj -c Release -f net10.0-desktop -p:GenerateDocumentationFile=true -p:NoWarn=CS1591` so publish-time analyzer plumbing stays green without weakening the normal `analyze` gate, and the CI workflow must upload publish outputs for macOS, Windows, and Linux
135
135
-`LangVersion` is pinned to `latest` at the root
136
136
- the repo-root lowercase `.editorconfig` is the source of truth for formatting, naming, style, and analyzer severity
137
137
-`Directory.Build.props` owns the shared analyzer and warning policy for future projects
Copy file name to clipboardExpand all lines: ci-pr-validation.plan.md
+9Lines changed: 9 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -104,6 +104,7 @@ Fix the GitHub Actions CI path used by `managedcode/dotPilot` so it builds with
104
104
- Local `dotnet test DotPilot.Tests/DotPilot.Tests.csproj --collect:"XPlat Code Coverage"` reproduced a second blocker: coverage did not crash, but `coverlet.collector` spent minutes instrumenting generated Uno artifacts before test execution began, which was not acceptable for PR validation.
105
105
- The workflow also lacked any desktop publish stage, so pull requests produced no downloadable app artifacts for human verification across macOS, Windows, and Linux.
106
106
- After the first PR push, GitHub rejected the new workflow before any jobs started because `timeout-minutes` used `fromJSON(env.STEP_TIMEOUT_MINUTES)` at the job level, where the `env` context is not available during workflow validation.
107
+
- After the first valid PR run started, the desktop artifact jobs failed during `dotnet publish` because Roslyn enforced `IDE0005` on build without `GenerateDocumentationFile=true`, while enabling that property globally also surfaced repo-wide `CS1591` documentation warnings as errors.
107
108
108
109
## Failing Tests And Checks Tracker
109
110
@@ -137,6 +138,12 @@ Fix the GitHub Actions CI path used by `managedcode/dotPilot` so it builds with
137
138
Intended fix path: replace the dynamic timeout expression with literal timeout values and lint the workflow locally before pushing again.
138
139
Status: fixed by the literal `timeout-minutes: 60` update and local `actionlint` validation.
139
140
141
+
-[x]`Desktop publish on macOS and Linux: Roslyn IDE0005 failure`
142
+
Failure symptom: the PR workflow created the desktop artifact jobs, but the macOS and Linux publish steps failed before artifact upload.
143
+
Suspected cause: publish invoked code-style analysis with `IDE0005`, and the repo did not set `GenerateDocumentationFile=true`, which Roslyn now requires for that analyzer path on those runners; once that path was enabled, redundant global and file-level `using` directives in the app shell were also exposed.
144
+
Intended fix path: scope the publish fix to the artifact command by passing `GenerateDocumentationFile=true` and suppressing `CS1591` only for publish-time artifact generation, while keeping the normal `analyze` gate unchanged and removing the redundant `using` directives that publish surfaced.
145
+
Status: fixed by the scoped publish properties in `.github/workflows/ci.yml`, the documented `publish-desktop` command, and the `App.xaml.cs`/`GlobalUsings.cs` cleanup.
146
+
140
147
## Validation Notes
141
148
142
149
-`dotnet format DotPilot.slnx --verify-no-changes` passed.
@@ -148,6 +155,8 @@ Fix the GitHub Actions CI path used by `managedcode/dotPilot` so it builds with
148
155
-`dotnet test DotPilot.slnx` passed and included both the unit and UI suites.
149
156
-`dotnet publish DotPilot/DotPilot.csproj -c Release -f net10.0-desktop` passed locally on macOS and produced a publish directory under `artifacts/local-macos-publish`.
150
157
-`actionlint .github/workflows/ci.yml` initially failed on invalid job-level `env` usage for `timeout-minutes`; after the fix it passed locally.
158
+
- GitHub PR run `23013702026` exposed a publish-time analyzer failure on desktop artifact jobs; the final fix kept `GenerateDocumentationFile` and `CS1591` handling scoped to the publish command so the normal analyzer gate remains strict.
159
+
- After removing redundant `using` directives surfaced by the publish path, the final local validation reran successfully with `format`, `build`, `analyze`, unit tests, coverage, UI tests, full solution tests, and the scoped `publish-desktop` command.
151
160
- GitHub repository ruleset `Require Full CI Validation` was created in active mode and initially required `Quality`, `Unit Tests`, `Coverage`, and `UI Tests` on the default branch and `refs/heads/release/*`; it now also needs the new desktop artifact checks after the workflow is pushed and verified.
0 commit comments