Skip to content

Docs: qualify APIs by assembly instead of prefixing the namespace - #65

Merged
MaceWindu merged 2 commits into
masterfrom
docs/assembly-qualified-uids
Aug 13, 2026
Merged

Docs: qualify APIs by assembly instead of prefixing the namespace#65
MaceWindu merged 2 commits into
masterfrom
docs/assembly-qualified-uids

Conversation

@MaceWindu

Copy link
Copy Markdown
Contributor

Follow-up to #64. The upstream branch reworked the UID prefix into a distinct assembly component after review feedback on dotnet/docfx#11090, so this switches the site to it:

linq2db.Tools.LinqToDB.Tools.Activity.ActivityStatistics   ->
linq2db.Tools::LinqToDB.Tools.Activity.ActivityStatistics

Why

In #64 the prefix was joined to the namespace with a dot and used as its display name, so the site read as namespaces that do not exist. Fixed here:

before after
namespace page title Namespace linq2db.Tools.LinqToDB.Tools.Activity Namespace LinqToDB.Tools.Activity (linq2db.Tools)
type page said LinqToDB.Tools.Activity, linked to a page titled with the made up name both agree
TOC label for the LinqToDB namespace of two assemblies two invented namespaces LinqToDB (linq2db) and LinqToDB (linq2db.Tools)

Config

assemblyUidPrefixes -> assemblyUids. Every prefix here was already the assembly's own name, which is the new default, so the map collapses to a plain list. uidPrefixOverride -> assemblyUidOverride on the four EntityFrameworkCore entries, which still need it because they all build linq2db.EntityFrameworkCore.

Heads up

Build

0 errors, 2389 API files, 2407 HTML pages — the same counts as before. 6 docfx warnings, all pre-existing: 5 InvalidFileLink from Microsoft docs relative links in linq2db's XML comments, 1 InvalidBookmark from a #remarks anchor. No DuplicateUids, no UidNotFound.

🤖 Generated with Claude Code

MaceWindu and others added 2 commits August 13, 2026 21:41
The upstream branch reworked the UID prefix into a distinct assembly component, following review
feedback on dotnet/docfx#11090, so this switches to it:

    linq2db.Tools.LinqToDB.Tools.Activity.ActivityStatistics   ->
    linq2db.Tools::LinqToDB.Tools.Activity.ActivityStatistics

`assemblyUidPrefixes` becomes `assemblyUids`, and since every prefix here was already the assembly's own
name, the map collapses to a plain list. `uidPrefixOverride` becomes `assemblyUidOverride` on the four
EntityFrameworkCore entries, which still need it because they all build `linq2db.EntityFrameworkCore`.

What this fixes on the site: the prefix used to be joined to the namespace with a dot and used as its
display name, so pages read as namespaces that do not exist. Now:

- `Namespace linq2db.Tools.LinqToDB.Tools.Activity` reads `Namespace LinqToDB.Tools.Activity
  (linq2db.Tools)`.
- The namespace a type reports and the namespace page it links to agree; before, a type page said
  `LinqToDB.Tools.Activity` while the page behind that link was titled with the made up name.
- Table of contents labels name the real namespace and the assembly it comes from, so the `LinqToDB`
  declared by both `linq2db` and `linq2db.Tools` is now `LinqToDB (linq2db)` and `LinqToDB (linq2db.Tools)`
  instead of two invented namespaces.

Page URLs change once more, as the file name carries `--` where the UID has `::`. Two hand written xrefs
in the articles named the old prefixed UIDs and are updated; they were the only ones.

docfx/ rebuilt from fix/8966-uid-prefixes (dd95c86d9). The custom Roslyn 5.6.0 commit is gone: upstream
took that bump in dotnet/docfx#11047, so the vendored build is now the upstream branch unmodified.

Build output: 0 errors, 2389 API files, 2407 HTML pages, and 6 docfx warnings, all pre-existing (5
`InvalidFileLink` from Microsoft docs relative links in linq2db's XML comments, 1 `InvalidBookmark` from a
`#remarks` anchor). No `DuplicateUids` and no `UidNotFound`.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
docfx/ rebuilt from fix/8966-uid-prefixes (9907932d6), which folds in a code review of the assembly
component design:

- a repeated or empty entry in the `assemblyUids` array is reported as an invalid entry instead of
  throwing out of the JSON converter
- with `outputFormat: apiPage` or `markdown`, two assemblies resolving to one component now share a
  single table of contents node
- the new table of contents ordering is skipped when no assembly is qualified, so it cannot affect a
  project that does not use this

No change to `source/docfx.json` and no change to the output: 0 errors, 2389 API files, 2407 HTML pages,
and the same 6 pre-existing docfx warnings.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@MaceWindu
MaceWindu merged commit 1985e50 into master Aug 13, 2026
2 checks passed
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.

1 participant