From 87473d361629d667d1038307c844dfeb5035730c Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 14 Oct 2026 03:43:51 +0000 Subject: [PATCH] docs: generate API metadata from Release assemblies DocFX source extraction drops members declared in C# 14 extension blocks (the containing class is emitted with no children). Read the built assemblies instead, as logging-extensions does, and have BuildDocs build the documented projects in Release first. Co-Authored-By: Claude Opus 5.5 (1M context) Claude-Session: https://claude.ai/code/session_01Jy23TCq1bZkdPV2GRWfspU --- AGENTS.md | 5 +++++ _atom/IBuild.cs | 6 +++++- docfx.json | 2 +- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index 7c34d71..31af1ab 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -35,9 +35,14 @@ dotnet test Invex.Process.slnx Build the docs site: ```shell +dotnet build Invex.Process.slnx --configuration Release docfx docfx.json # add --serve to preview locally ``` +DocFX reads the compiled `bin/Release/net10.0` assembly and its XML documentation file, because +source extraction omits members declared in C# 14 extension blocks. Build in Release before +regenerating docs; `atom BuildDocs` does this for you. + ## Architecture overview The entire public surface is four types in the `Invex.Process` namespace: diff --git a/_atom/IBuild.cs b/_atom/IBuild.cs index b3d849f..9425463 100644 --- a/_atom/IBuild.cs +++ b/_atom/IBuild.cs @@ -172,7 +172,11 @@ await UnlistPrereleasesBelowVersionForPackages(NugetFeed, t => t .DescribedAs("Builds the DocFX documentation.") .ProducesArtifact(GeneratedDocsArtifactName) - .Executes(cancellationToken => BuildDocFxDocs(cancellationToken: cancellationToken)); + .Executes(cancellationToken => + BuildDocFxDocs([ + Projects.Invex_Process.Path(RootedFileSystem), + ], + cancellationToken)); Target ServeDocs => t => t diff --git a/docfx.json b/docfx.json index a5eabba..872914c 100644 --- a/docfx.json +++ b/docfx.json @@ -5,7 +5,7 @@ "src": [ { "files": [ - "src/**/*.csproj" + "src/Invex.Process/bin/Release/net10.0/Invex.Process.dll" ] } ],