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
wolverine.slnx marks seven projects <Build Project="false" />. Two of them are shipping NuGet packages:
project
package
published
src/Http/Wolverine.Http.Polecat
WolverineFx.Http.Polecat
yes — 6.24.6
src/Http/Wolverine.Http.AspVersioning
WolverineFx.Http.AspVersioning
yes — 6.24.6
Both appear in the explicit nugetProjects array in build/build.cs, so Pack compiles them at publish time. Nothing else does. dotnet build wolverine.slnx — the command CI's Compile target runs, and the one CLAUDE.md tells contributors to run before pushing — skips them entirely.
Both build clean today. This is a missing gate, not a current break. But it means a tightening change in a dependency can break a shipping package and every per-PR CI run stays green; the first thing that fails is a release, at the moment you least want to be debugging.
That is not hypothetical for this repo. CLAUDE.md already carries a warning that wolverine_slim.slnx omitting projects makes a clean slim build insufficient evidence for exactly this class of change (a new AOT/trim annotation in JasperFx, a type lift from Marten/Polecat into JasperFx.Events). Build=false inside the full solution reintroduces the same blind spot one level down, where nobody is looking for it.
I built all of them directly while verifying the JasperFx 2.39.5 upgrade (#3837). Six are clean; PolecatIncidentService.Tests does not compile at all and has not since April — filed separately as #3839. That one is the proof this blind spot is real rather than theoretical: a project sat broken for four months and no gate noticed.
None of the flags carry a comment explaining why. An unexplained Build=false is indistinguishable from an accident, and there is no inventory of what is hidden.
Suggested direction
Re-enable the two shipping projects in wolverine.slnx and confirm the full-solution build stays clean.
For anything that genuinely must stay excluded, require a comment naming the reason next to the flag.
Add the check to the guard proposed in Guard that every CI* target runs somewhere must walk the Nuke dependency graph, not grep workflow files #3816 — that issue is about every CI* target running somewhere, and this is the same failure mode one layer down: something in the build graph that no gate actually executes. A guard that walks the Nuke dependency graph should also assert that every project in nugetProjects is built by the solution.
Related: #3816 (CI-target coverage guard), #3839 (the Polecat sample this surfaced from).
wolverine.slnxmarks seven projects<Build Project="false" />. Two of them are shipping NuGet packages:src/Http/Wolverine.Http.PolecatWolverineFx.Http.Polecatsrc/Http/Wolverine.Http.AspVersioningWolverineFx.Http.AspVersioningBoth appear in the explicit
nugetProjectsarray inbuild/build.cs, soPackcompiles them at publish time. Nothing else does.dotnet build wolverine.slnx— the command CI'sCompiletarget runs, and the oneCLAUDE.mdtells contributors to run before pushing — skips them entirely.Both build clean today. This is a missing gate, not a current break. But it means a tightening change in a dependency can break a shipping package and every per-PR CI run stays green; the first thing that fails is a release, at the moment you least want to be debugging.
That is not hypothetical for this repo.
CLAUDE.mdalready carries a warning thatwolverine_slim.slnxomitting projects makes a clean slim build insufficient evidence for exactly this class of change (a new AOT/trim annotation in JasperFx, a type lift from Marten/Polecat into JasperFx.Events).Build=falseinside the full solution reintroduces the same blind spot one level down, where nobody is looking for it.The full list
I built all of them directly while verifying the JasperFx 2.39.5 upgrade (#3837). Six are clean;
PolecatIncidentService.Testsdoes not compile at all and has not since April — filed separately as #3839. That one is the proof this blind spot is real rather than theoretical: a project sat broken for four months and no gate noticed.None of the flags carry a comment explaining why. An unexplained
Build=falseis indistinguishable from an accident, and there is no inventory of what is hidden.Suggested direction
wolverine.slnxand confirm the full-solution build stays clean.CI*target running somewhere, and this is the same failure mode one layer down: something in the build graph that no gate actually executes. A guard that walks the Nuke dependency graph should also assert that every project innugetProjectsis built by the solution.Related: #3816 (CI-target coverage guard), #3839 (the Polecat sample this surfaced from).