Skip to content

docs: generate API metadata from Release assemblies so extension members appear - #34

Merged
DecSmith42 merged 1 commit into
mainfrom
claude/docfx-extension-members
Oct 14, 2026
Merged

DecSmith42 merged 1 commit into
mainfrom
claude/docfx-extension-members

Conversation

@DecSmith42

Copy link
Copy Markdown
Contributor

Requested by Dec · project thread

Before: DocFX built API metadata from the C# source. That drops members declared in C# 14 extension(...) blocks, so the API reference was missing them.

After: every extension-block member appears in the API reference, with its summary and remarks. This is the same approach logging-extensions already uses.

How:

  • docfx.json now reads metadata from the Release assemblies (src/<Project>/bin/Release/net10.0/<Project>.dll) instead of the csproj files.
  • BuildDocs passes those projects to BuildDocFxDocs as its prebuild list, so they are built in Release before docfx runs.
  • AGENTS.md notes that you need to build Release first when running docfx by hand.

There are two trade-offs: assembly metadata has no "View source" links, and static extension properties render as get_X() accessors.

I checked this locally. From a clean tree, BuildDocs succeeds, and a script confirmed every public extension-block member appears in the generated api/*.yml.

🤖 Generated with Claude Code

https://claude.ai/code/session_01Jy23TCq1bZkdPV2GRWfspU


Generated by Claude Code

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) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Jy23TCq1bZkdPV2GRWfspU
Copilot AI balanced review requested due to automatic review settings October 14, 2026 03:45

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

The configuration, automated build target, and contributor documentation consistently implement the assembly-based metadata workflow.

0 open findings

What changed in this PR

Updates DocFX to generate complete API metadata from Release assemblies, including C# 14 extension members.

Changes:

  • Uses the compiled library assembly for metadata.
  • Prebuilds the library through BuildDocs.
  • Documents the required manual workflow.
File Description
docfx.json Reads API metadata from the Release DLL.
_atom/​IBuild.cs Builds the library before DocFX runs.
AGENTS.md Documents the Release-build prerequisite.

🧠 Review effort: Balanced


💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@DecSmith42
DecSmith42 merged commit 0441e59 into main Oct 14, 2026
8 checks passed
@DecSmith42
DecSmith42 deleted the claude/docfx-extension-members branch October 14, 2026 03:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants