Repository navigation
docs: make README NuGet-first with runnable templates - #608
Conversation
c37ff8e to
8f26934
Compare
Make the README lead with the actual 2.0 package graph and a Contracts -> Server -> Client Quick Start backed by canonical compiled samples. Add a separate production-shaped TLS/limits/telemetry/drain template and extend the existing package-smoke pipeline with a fresh-cache, local-nupkg three-project RPC smoke that also verifies SDK analyzer distribution and the Contracts no-Runtime boundary. Keep canonical samples non-packable so solution-level release packing still emits only SharpLink product packages. Closes #573
8f26934 to
572a99f
Compare
|
Correction: #609 was created from my mistaken interpretation of default-branch ( |
|
Ready-for-review follow-up is also green on the same head
The first Extended attempt had one unrelated static-cluster timing failure ( No code changes were made in response to either observed timing flake. |
SunSi12138
left a comment
There was a problem hiding this comment.
Self-review found three concrete issues to address before merge: two medium-priority acceptance/validation gaps and one lower-priority sample-semantic issue. The README/package map/version, Quick Start lifecycle, production feature coverage, solution compilation coverage, and exact-head CI evidence otherwise look consistent. Note separately that dev has advanced to b02bffebf3c4f0316f4d047f851555d3261046a1, so this PR is currently 1 commit behind and should be synchronized/revalidated after the review fixes.
Closes #573.
Summary
SharpLink.Sdk; client/server add their runtime packages; the SDK carries the Generator analyzer and does not pullSharpLink.Runtimeinto a contracts-only project.samples/QuickStart.*projects for the minimum real RPC path.samples/ProductionTemplate.*projects covering TLS, timeout/resource limits, logging/telemetry, and graceful drain without insecure certificate shortcuts.samples/Directory.Build.propssupplies the repository-only ProjectReference override..nupkgartifacts with a fresh NuGet cache. Package Source Mapping pinsSharpLink.*to the local feed; QuickStart then runs a real Server/Client RPC.workflow_dispatch; PR metadata edits do not retrigger the heavy validation.Package-smoke assertions
The package smoke verifies that:
SharpLink.*resolves from the freshly packed local feed rather than being silently satisfied by nuget.org;SharpLink.Runtime;SharpLink.SdkcontainsSharpLink.Generator.dllunderanalyzers/dotnet/cs;Hello, SharpLink!), and the Server performs the sample's explicit graceful shutdown path.Review follow-ups
Self-review findings are resolved:
../../srcreferences;UseRequestTimeoutfallback independently.Scope
dev@ba3a16c1c940fa6f516d2d85a631f46408e3f8d9c8b8440ac5458531d52e9e40fa42e0b73a1c240fdev.dev, not docs: make README NuGet-first with runnable templates #608 diff.Validation
Exact-head validation is green:
34294505925— success on rerun, including formatting, maintainability, Release build, generated-assembly Runtime boundary check, Unit Tests, Generator Tests, Load Test Tests, and allocation gate.34294505960— success.34294506090— success, including Debug/Release build, Unit/Generator/Load tests, Integration Tests, NativeAOT transport/topology smoke, Pack, NuGet package-contract verification, source-mapped local-nupkg QuickStart E2E + ProductionTemplate package build, Demo Oneway, Load Smoke, and Chaos Smoke.The first PR Fast attempt on this head had one unrelated 30 s timeout in
IdempotentUnaryShouldRetryRemoteUnavailableAndExposeResponseObservation(1587/1588 Unit Tests passed). The same exact head's PR Quick Unit Tests passed, and the PR Fast rerun passed the full suite. No #608 code was changed in response.