Remove stryker thresholds configuration, add script to fix duplicate projects in solution, and create new solution file for StellaOps.Router with project references.

This commit is contained in:
StellaOps Bot
2025-12-26 21:54:17 +02:00
parent 335ff7da16
commit 9a4cd2e0f7
13 changed files with 9628 additions and 131 deletions

3
.gitignore vendored
View File

@@ -63,10 +63,9 @@ obj/
logs/ logs/
tmp/ tmp/
coverage/ coverage/
# Consolidated NuGet cache (all variants) # Consolidated NuGet cache
.nuget/ .nuget/
.nuget-*/ .nuget-*/
local-nuget*/
devops/offline/packages/ devops/offline/packages/
src/Sdk/StellaOps.Sdk.Generator/tools/jdk-21.0.1+12 src/Sdk/StellaOps.Sdk.Generator/tools/jdk-21.0.1+12

View File

@@ -83,7 +83,7 @@
<PackageReference Update="xunit.assert" Version="2.9.3" /> <PackageReference Update="xunit.assert" Version="2.9.3" />
<PackageReference Update="xunit.extensibility.core" Version="2.9.3" /> <PackageReference Update="xunit.extensibility.core" Version="2.9.3" />
<PackageReference Update="xunit.extensibility.execution" Version="2.9.3" /> <PackageReference Update="xunit.extensibility.execution" Version="2.9.3" />
<PackageReference Update="xunit.runner.visualstudio" Version="3.0.1" /> <PackageReference Update="xunit.runner.visualstudio" Version="2.8.2" />
<PackageReference Update="xunit.abstractions" Version="2.0.3" /> <PackageReference Update="xunit.abstractions" Version="2.0.3" />
<!-- JSON --> <!-- JSON -->

View File

@@ -1,17 +0,0 @@
<Solution>
<Folder Name="/src/" />
<Folder Name="/src/__Libraries/">
<Project Path="src/__Libraries/StellaOps.Microservice.SourceGen/StellaOps.Microservice.SourceGen.csproj" />
<Project Path="src/__Libraries/StellaOps.Microservice/StellaOps.Microservice.csproj" />
<Project Path="src/__Libraries/StellaOps.Router.Common/StellaOps.Router.Common.csproj" />
<Project Path="src/__Libraries/StellaOps.Router.Config/StellaOps.Router.Config.csproj" />
<Project Path="src/__Libraries/StellaOps.Router.Gateway/StellaOps.Router.Gateway.csproj" />
<Project Path="src/__Libraries/StellaOps.Router.Transport.InMemory/StellaOps.Router.Transport.InMemory.csproj" />
</Folder>
<Folder Name="/tests/">
<Project Path="tests/StellaOps.Microservice.Tests/StellaOps.Microservice.Tests.csproj" />
<Project Path="tests/StellaOps.Router.Common.Tests/StellaOps.Router.Common.Tests.csproj" />
<Project Path="tests/StellaOps.Router.Gateway.Tests/StellaOps.Router.Gateway.Tests.csproj" />
<Project Path="tests/StellaOps.Router.Transport.InMemory.Tests/StellaOps.Router.Transport.InMemory.Tests.csproj" />
</Folder>
</Solution>

View File

@@ -1,2 +0,0 @@
<Solution>
</Solution>

View File

@@ -0,0 +1,55 @@
#!/usr/bin/env pwsh
# fix-duplicate-projects.ps1 - Remove duplicate project entries from solution file
param(
[string]$SlnPath = "src/StellaOps.sln"
)
$content = Get-Content $SlnPath -Raw
$lines = $content -split "`r?`n"
$projectNames = @{}
$duplicateGuids = @()
$newLines = @()
$skipNextEndProject = $false
foreach ($line in $lines) {
if ($skipNextEndProject -and $line -eq "EndProject") {
$skipNextEndProject = $false
continue
}
if ($line -match 'Project\(.+\) = "([^"]+)",.*\{([A-F0-9-]+)\}"?$') {
$name = $Matches[1]
$guid = $Matches[2]
if ($projectNames.ContainsKey($name)) {
$duplicateGuids += $guid
Write-Host "Removing duplicate: $name ($guid)"
$skipNextEndProject = $true
continue
} else {
$projectNames[$name] = $true
}
}
$newLines += $line
}
# Also remove duplicate GUIDs from GlobalSection
$finalLines = @()
foreach ($line in $newLines) {
$skip = $false
foreach ($guid in $duplicateGuids) {
if ($line -match $guid) {
$skip = $true
break
}
}
if (-not $skip) {
$finalLines += $line
}
}
$finalLines | Out-File -FilePath $SlnPath -Encoding UTF8 -NoNewline
Write-Host "`nRemoved $($duplicateGuids.Count) duplicate projects"

View File

@@ -2,18 +2,18 @@
Status: Published · 2025-11-23 Status: Published · 2025-11-23
Owners: Scanner Guild · BuildX Plugin Guild · Ops Guild Owners: Scanner Guild · BuildX Plugin Guild · Ops Guild
Scope: Unblock SURFACE-ENV-03 and BuildX adoption by pinning package version + offline bundle path for `StellaOps.Scanner.Surface.Env`. Scope: Unblock SURFACE-ENV-03 and BuildX adoption by pinning package version for `StellaOps.Scanner.Surface.Env`.
## Version & Build Inputs ## Version & Build Inputs
- **Package ID:** `StellaOps.Scanner.Surface.Env` - **Package ID:** `StellaOps.Scanner.Surface.Env`
- **Version:** `0.1.0-alpha.20251123` (semantic, date-stamped for sprint 136) - **Version:** `0.1.0-alpha.20251123` (semantic, date-stamped for sprint 136)
- **Source:** `src/Scanner/__Libraries/StellaOps.Scanner.Surface.Env/StellaOps.Scanner.Surface.Env.csproj` - **Source:** `src/Scanner/__Libraries/StellaOps.Scanner.Surface.Env/StellaOps.Scanner.Surface.Env.csproj`
- **Pack command:** - **Pack command:**
- `dotnet pack src/Scanner/__Libraries/StellaOps.Scanner.Surface.Env/StellaOps.Scanner.Surface.Env.csproj -c Release -o local-nugets /p:Version=0.1.0-alpha.20251123` - `dotnet pack src/Scanner/__Libraries/StellaOps.Scanner.Surface.Env/StellaOps.Scanner.Surface.Env.csproj -c Release -o .nuget/packages /p:Version=0.1.0-alpha.20251123`
- **Restore sources:** `local-nugets/; dotnet-public; nuget.org` (per `Directory.Build.props`). - **Restore sources:** configured in `nuget.config` (nuget.org, stellaops internal feed).
## Offline / Air-Gap Artefacts ## Offline / Air-Gap Artefacts
- The `.nupkg` is placed in `local-nugets/` by the pack command above. For air-gap deployments, include this folder in the offline kit. - The `.nupkg` is placed in `.nuget/packages/` by the pack command above. For air-gap deployments, copy this cache to the target environment.
- Manifest entry: - Manifest entry:
- `packageId`: `StellaOps.Scanner.Surface.Env` - `packageId`: `StellaOps.Scanner.Surface.Env`
- `version`: `0.1.0-alpha.20251123` - `version`: `0.1.0-alpha.20251123`
@@ -23,7 +23,7 @@ Scope: Unblock SURFACE-ENV-03 and BuildX adoption by pinning package version + o
- No external network calls are required after packing; the offline kit consumes the local file. - No external network calls are required after packing; the offline kit consumes the local file.
## Consumer Guidance ## Consumer Guidance
- BuildX plugin (`src/Scanner/StellaOps.Scanner.Sbomer.BuildXPlugin`) should reference `0.1.0-alpha.20251123` via the curated feed `local-nugets/`. - BuildX plugin (`src/Scanner/StellaOps.Scanner.Sbomer.BuildXPlugin`) should reference `0.1.0-alpha.20251123`.
- Scanner WebService/Worker should use the same version once Surface.Env integration tests pass (SCANNER-ENV-02). - Scanner WebService/Worker should use the same version once Surface.Env integration tests pass (SCANNER-ENV-02).
- Surface.Validation and Surface.Secrets depend on the env settings; keep prefix defaults and determinism rules from `design/surface-env.md`. - Surface.Validation and Surface.Secrets depend on the env settings; keep prefix defaults and determinism rules from `design/surface-env.md`.
@@ -32,7 +32,6 @@ Scope: Unblock SURFACE-ENV-03 and BuildX adoption by pinning package version + o
- Validate package contents: - Validate package contents:
- Contains `StellaOps.Scanner.Surface.Env.dll` and `StellaOps.Scanner.Surface.Env.xml` docs. - Contains `StellaOps.Scanner.Surface.Env.dll` and `StellaOps.Scanner.Surface.Env.xml` docs.
- `lib/net10.0/` target only; no native assets. - `lib/net10.0/` target only; no native assets.
- Ensure `local-nugets/` feed lists the package with `nuget list -Source local-nugets` before wiring CI.
## Change Log ## Change Log
- 2025-11-23: Initial release note created to unblock SCANNER-ENV-03 and offline kit wiring; version pinned to `0.1.0-alpha.20251123`. - 2025-11-23: Initial release note created to unblock SCANNER-ENV-03 and offline kit wiring; version pinned to `0.1.0-alpha.20251123`.

View File

@@ -42,5 +42,5 @@
## Tooling ## Tooling
- Target `net10.0`; use latest Microsoft.* packages compatible with net10. - Target `net10.0`; use latest Microsoft.* packages compatible with net10.
- NuGet: prefer local cache `/local-nugets`; avoid floating versions. - NuGet: use `.nuget/packages/` cache; avoid floating versions.
- Linting/analyzers: keep nullable enabled; treat warnings as errors where feasible. - Linting/analyzers: keep nullable enabled; treat warnings as errors where feasible.

View File

@@ -45,7 +45,7 @@
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.14.0" /> <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.14.0" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Testing" Version="10.0.0" /> <PackageReference Include="Microsoft.AspNetCore.Mvc.Testing" Version="10.0.0" />
<PackageReference Include="xunit" Version="2.9.3" /> <PackageReference Include="xunit" Version="2.9.3" />
<PackageReference Include="xunit.runner.visualstudio" Version="3.0.1" /> <PackageReference Include="xunit.runner.visualstudio" Version="2.8.2" />
<PackageReference Include="Microsoft.Extensions.TimeProvider.Testing" Version="10.0.0" /> <PackageReference Include="Microsoft.Extensions.TimeProvider.Testing" Version="10.0.0" />
<Compile Include="$(ConcelierSharedTestsPath)AssemblyInfo.cs" Link="Shared\AssemblyInfo.cs" Condition="'$(ConcelierSharedTestsPath)' != ''" /> <Compile Include="$(ConcelierSharedTestsPath)AssemblyInfo.cs" Link="Shared\AssemblyInfo.cs" Condition="'$(ConcelierSharedTestsPath)' != ''" />
<Compile Include="$(ConcelierSharedTestsPath)ConcelierFixtureCollection.cs" Link="Shared\ConcelierFixtureCollection.cs" Condition="'$(ConcelierSharedTestsPath)' != ''" /> <Compile Include="$(ConcelierSharedTestsPath)ConcelierFixtureCollection.cs" Link="Shared\ConcelierFixtureCollection.cs" Condition="'$(ConcelierSharedTestsPath)' != ''" />

View File

@@ -199,7 +199,7 @@ See: `docs/implplan/SPRINT_3800_0000_0000_summary.md`
## Engineering Rules ## Engineering Rules
- Target `net10.0`; prefer latest C# preview allowed in repo. - Target `net10.0`; prefer latest C# preview allowed in repo.
- Offline-first: no new external network calls; use cached feeds (`/local-nugets`). - Offline-first: no new external network calls; use `.nuget/packages/` cache.
- Determinism: stable ordering, UTC ISO-8601 timestamps, no `DateTime.Now`/random without seed; normalize path separators. - Determinism: stable ordering, UTC ISO-8601 timestamps, no `DateTime.Now`/random without seed; normalize path separators.
- Logging: structured (`ILogger` message templates); avoid secrets/paths leakage. - Logging: structured (`ILogger` message templates); avoid secrets/paths leakage.
- Security: no executing untrusted payloads; keep analyzers pure; include redaction guidance for runtime capture adapters. - Security: no executing untrusted payloads; keep analyzers pure; include redaction guidance for runtime capture adapters.

View File

@@ -19,7 +19,7 @@
## Engineering Rules ## Engineering Rules
- Target `net10.0`; prefer latest C# preview permitted in repo. - Target `net10.0`; prefer latest C# preview permitted in repo.
- Offline-first: no new external calls; use cached feeds (`/local-nugets`) and configurable endpoints. - Offline-first: no new external calls; use `.nuget/packages/` cache and configurable endpoints.
- Determinism: stable ordering, UTC ISO-8601 timestamps, seeded randomness; avoid host-specific paths in outputs/events. - Determinism: stable ordering, UTC ISO-8601 timestamps, seeded randomness; avoid host-specific paths in outputs/events.
- Observability: use structured logging; keep metric/label names consistent with published dashboards (`policy_simulation_*`, `graph_*`, `overlay_*`). - Observability: use structured logging; keep metric/label names consistent with published dashboards (`policy_simulation_*`, `graph_*`, `overlay_*`).
- Security: tenant isolation on all queues/stores; avoid leaking PII/secrets in logs or metrics. - Security: tenant isolation on all queues/stores; avoid leaking PII/secrets in logs or metrics.

16
src/StellaOps.Router.slnx Normal file
View File

@@ -0,0 +1,16 @@
<Solution>
<Folder Name="/__Libraries/">
<Project Path="__Libraries/StellaOps.Microservice.SourceGen/StellaOps.Microservice.SourceGen.csproj" />
<Project Path="__Libraries/StellaOps.Microservice/StellaOps.Microservice.csproj" />
<Project Path="__Libraries/StellaOps.Router.Common/StellaOps.Router.Common.csproj" />
<Project Path="__Libraries/StellaOps.Router.Config/StellaOps.Router.Config.csproj" />
<Project Path="__Libraries/StellaOps.Router.Gateway/StellaOps.Router.Gateway.csproj" />
<Project Path="__Libraries/StellaOps.Router.Transport.InMemory/StellaOps.Router.Transport.InMemory.csproj" />
</Folder>
<Folder Name="/tests/">
<Project Path="../tests/StellaOps.Microservice.Tests/StellaOps.Microservice.Tests.csproj" />
<Project Path="../tests/StellaOps.Router.Common.Tests/StellaOps.Router.Common.Tests.csproj" />
<Project Path="../tests/StellaOps.Router.Gateway.Tests/StellaOps.Router.Gateway.Tests.csproj" />
<Project Path="../tests/StellaOps.Router.Transport.InMemory.Tests/StellaOps.Router.Transport.InMemory.Tests.csproj" />
</Folder>
</Solution>

File diff suppressed because it is too large Load Diff

View File

@@ -1,43 +0,0 @@
{
"$schema": "https://raw.githubusercontent.com/stryker-mutator/stryker-net/master/src/Stryker.Core/Stryker.Core/assets/stryker-config.schema.json",
"stryker-config": {
"comment": "Per-module mutation score thresholds. Sprint: SPRINT_0353_0001_0001",
"thresholds": {
"high": 80,
"low": 60,
"break": 50
},
"module-thresholds": {
"Scanner.Core": {
"high": 80,
"low": 70,
"break": 65
},
"Policy.Engine": {
"high": 80,
"low": 68,
"break": 60
},
"Authority.Core": {
"high": 85,
"low": 75,
"break": 70
},
"Signer.Core": {
"high": 80,
"low": 70,
"break": 60
},
"Attestor.Core": {
"high": 80,
"low": 65,
"break": 55
},
"Reachability.Core": {
"high": 75,
"low": 60,
"break": 50
}
}
}
}