Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
3f4405e
docs(reference): rebuild Compatibility + Release Artifacts as data-dr…
dagil-nvidia Jul 23, 2026
7aa93a4
docs(reference): version-matrix layout refinements from review
dagil-nvidia Jul 23, 2026
9fb5c28
docs(reference): quality-gate fixes
dagil-nvidia Jul 23, 2026
b76a680
docs(reference): residual-risk fixes from quality gate
dagil-nvidia Jul 23, 2026
b5e4231
docs(reference): release-notes mirror, Known Issues + Deprecations pa…
dagil-nvidia Jul 23, 2026
82c06bf
docs(reference): design-gate fixes for the release-notes suite
dagil-nvidia Jul 23, 2026
801b5aa
docs(reference): quality-gate fixes for the release-notes increment
dagil-nvidia Jul 23, 2026
2e08718
docs(reference): close all gate residuals
dagil-nvidia Jul 23, 2026
9d24d91
ci(fern-docs): fix preview build for the renamed digest posts + root …
dagil-nvidia Jul 23, 2026
0b4b021
docs(reference): Phase B upgrade tooling + Phase C agent surface
dagil-nvidia Jul 23, 2026
f6b69b7
docs(reference): consolidate release history into a Releases section,…
dagil-nvidia Jul 23, 2026
7fab6be
docs(reference): design-rater polish on the Phase B surfaces
dagil-nvidia Jul 23, 2026
696205f
docs(reference): structural quality-gate fixes
dagil-nvidia Jul 23, 2026
245534f
docs(fern): align org and docs instance to dynamo main (nvidia, not a…
dagil-nvidia Jul 23, 2026
3dacc4d
ci(fern): keep the Reference General variant shared across doc versions
dagil-nvidia Jul 23, 2026
50a0a36
docs(reference): fix hrefs broken by the Releases-section restructure…
dagil-nvidia Jul 24, 2026
22edc3b
ci(fern): warn when the shared Reference variant selectors stop matching
dagil-nvidia Jul 24, 2026
80e9729
ci(fern): fix docs-website composition for component doc pages and de…
dagil-nvidia Jul 24, 2026
3ad1d7c
test(fern): commit the docs-website composition regression harness
dagil-nvidia Jul 24, 2026
69b9591
docs(reference): add UCX version per release, coupled to the NIXL pins
dagil-nvidia Jul 24, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
111 changes: 111 additions & 0 deletions .github/workflows/fern-docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,11 @@
# Note: The publish step is included inline because pushes made with GITHUB_TOKEN
# do not trigger other workflows (GitHub's anti-recursion guard), so we cannot
# rely on a separate publish-fern-docs.yml workflow for bot-initiated pushes.
#
# Validation: the sync/release composition (rsync scopes, nav path transforms,
# the shared-Reference machinery) only executes on main pushes and tag cuts.
# Before changing it, replay both jobs locally against the docs-website branch:
# docs/fern/scripts/simulate_docs_website.sh

name: Fern Docs

Expand Down Expand Up @@ -149,6 +154,40 @@ jobs:
--exclude='watch.sh' \
source-checkout/docs/fern/ docs-checkout/fern/pages-dev/

# Component *doc* pages (.md/.mdx) live alongside the React .tsx under
# docs/fern/components/. The main rsync excludes components/ wholesale
# so the .tsx don't double-sync into pages-dev (they go to
# fern/components/ for the docs.yml mdx-components + footer
# resolution). But the nav references component doc pages from both
# the Developer Guide tab and the Reference tab's Components variant,
# and the path transform below rewrites those to
# ../pages-dev/components/. Sync ONLY the doc pages here — never the
# .tsx — so the paths resolve and the per-version snapshot
# (cp -r pages-dev) freezes them correctly.
echo "Syncing component doc pages (.md/.mdx only) to pages-dev/components/..."
rsync -a \
--include='*/' \
--include='*.md' \
--include='*.mdx' \
--exclude='*' \
--prune-empty-dirs \
source-checkout/docs/fern/components/ docs-checkout/fern/pages-dev/components/

# Backend deploy manifests are embedded into templates/{vllm,sglang,
# trtllm}.mdx via build-time <Code src="../../../examples/backends/
# <engine>/deploy/*.yaml"> file reads. Those resolve to the repo-root
# examples/ tree in the source layout, which does not exist on
# docs-website — sync just the referenced deploy/ subtrees to the
# branch root so both ../../../examples (from pages-dev) and the
# versioned snapshots resolve.
echo "Syncing examples/backends/*/deploy/ to branch root..."
rsync -a \
--include='*/' \
--include='backends/*/deploy/**' \
--exclude='*' \
--prune-empty-dirs \
source-checkout/examples/ docs-checkout/examples/

# Sync index.yml as versions/dev.yml and transform paths for docs-website layout
echo "Syncing index.yml to docs-website branch as versions/dev.yml..."
cp source-checkout/docs/fern/index.yml docs-checkout/fern/versions/dev.yml
Expand Down Expand Up @@ -184,6 +223,15 @@ jobs:
cp -r source-checkout/docs/fern/products docs-checkout/fern/products
cp source-checkout/docs/fern/welcome.mdx docs-checkout/fern/welcome.mdx

# Sync root-level assets/ (docs.yml logos/fonts and welcome.mdx reference
# ./assets/ relative to the fern root, not pages-dev). Merge-copy without
# deleting so assets still referenced by older versioned pages survive
# even if they are later removed from the source tree.
if [ -d source-checkout/docs/fern/assets ]; then
echo "Syncing assets/ to docs-website branch..."
cp -r source-checkout/docs/fern/assets/. docs-checkout/fern/assets/
fi

# Community pages move under pages-dev on docs-website. Home and Blog
# continue to reference root-level welcome.mdx and digest/, respectively.
yq -i '(.. | select(has("path")).path) |= sub("^../", "../pages-dev/")' \
Expand All @@ -195,6 +243,10 @@ jobs:
# Keep fern/blogs for older versioned docs that still reference ../blogs.
rm -rf docs-checkout/fern/digest
cp -r source-checkout/docs/fern/digest docs-checkout/fern/digest
# The digest posts were renamed .md -> .mdx at the source; retarget the
# release-managed versions/v*.yml snapshots that still point at the old
# extension. Harmless no-op once every snapshot references .mdx.
sed -i 's|\(path: \.\./digest/.*\)\.md$|\1.mdx|' docs-checkout/fern/versions/v*.yml
fi

# Sync main.css
Expand All @@ -220,6 +272,39 @@ jobs:
yq -i '(.. | select(has("path")).path) |= sub("^digest/", "../digest/")' docs-checkout/fern/versions/dev.yml
yq -i '(.. | select(has("path")).path) |= sub("^([a-zA-Z])", "../pages-dev/${1}")' docs-checkout/fern/versions/dev.yml

- name: Propagate shared Reference nav to released versions
run: |
# The Reference tab's General variant (Compatibility, Release
# Artifacts, Releases, Known Issues, Deprecations, Model EA Builds,
# Glossary) is SHARED across versions: release snapshots keep its nav
# paths on ../pages-dev/ so every version dropdown renders the
# always-current reference. When a page is added to the shared
# reference on main (e.g. a new release-notes page), copy the
# variant's nav block from dev.yml into each released version's yml
# so the new page appears in every dropdown, not just dev. Version
# snapshots cut before the reference rework have no such variant and
# are left untouched (the yq selection matches nothing).
yq '[.navigation[] | select(.tab == "reference") | .variants[] | select(.title == "General")][0]' \
docs-checkout/fern/versions/dev.yml > /tmp/reference_general_variant.yml

if [ "$(yq 'length' /tmp/reference_general_variant.yml)" = "0" ] || \
[ "$(head -c4 /tmp/reference_general_variant.yml)" = "null" ]; then
echo "No shared Reference General variant in dev.yml; skipping propagation"
else
for vfile in docs-checkout/fern/versions/v*.yml; do
[ -e "$vfile" ] || continue
# Only rewrite files that actually carry the shared variant —
# yq -i normalizes whitespace, so touching pre-rework snapshots
# (which have no reference General variant) is pure churn.
if [ "$(yq '[.navigation[] | select(.tab == "reference") | .variants[] | select(.title == "General")] | length' "$vfile")" != "0" ]; then
yq -i '(.navigation[] | select(.tab == "reference") | .variants[] | select(.title == "General")) = load("/tmp/reference_general_variant.yml")' "$vfile"
echo "Synced shared Reference nav into $vfile"
else
echo "Skipped (no shared Reference variant): $vfile"
fi
done
fi

- name: Convert GitHub callouts to Fern format
run: |
echo "Converting GitHub-style callouts to Fern format in pages/..."
Expand Down Expand Up @@ -426,6 +511,24 @@ jobs:
# Copy current pages-dev/ to pages-vX.Y.Z/
cp -r fern/pages-dev "fern/pages-$TAG"

# The Reference tab's General variant is shared (always-current)
# across versions: its nav paths stay on ../pages-dev/ (see the
# version-config step), so drop exactly the files that variant
# references from the snapshot rather than freezing stale copies.
# Everything else under reference/ (observability pages, config
# references) belongs to versioned tabs and stays in the snapshot.
# If the selectors stop matching (tab or variant renamed), this and
# the version-config revert silently no-op and the reference quietly
# freezes per version again — warn loudly so the rename gets fixed.
if [ "$(yq '[.navigation[] | select(.tab == "reference") | .variants[] | select(.title == "General")] | length' fern/versions/dev.yml)" = "0" ]; then
echo "::warning::No Reference General variant found in dev.yml — the shared-reference exclusion is a no-op and $TAG will freeze its own reference copy. If the tab or variant was renamed, update the yq selectors in this workflow."
fi
yq '.navigation[] | select(.tab == "reference") | .variants[] | select(.title == "General") | .. | select(has("path")) | .path' \
fern/versions/dev.yml | sed 's|^\.\./pages-dev/||' | while read -r relpath; do
[ -n "$relpath" ] && rm -f "fern/pages-$TAG/$relpath"
done
find "fern/pages-$TAG/reference" -type d -empty -delete 2>/dev/null || true

echo "Created fern/pages-$TAG/"
ls -la "fern/pages-$TAG/" | head -20

Expand Down Expand Up @@ -479,6 +582,14 @@ jobs:
# Update all page paths from ../pages-dev/ to ../pages-vX.Y.Z/
sed -i "s|path: \.\./pages-dev/|path: ../pages-$TAG/|g" "$VERSION_FILE"

# Revert the Reference tab's General variant to the shared source:
# it is always-current across versions (release metadata is
# cumulative — each page carries per-release sections), so its pages
# render from pages-dev in every version. The Kubernetes API and
# Components variants stay on the frozen snapshot (CRD fields and
# config flags are genuinely per-version).
yq -i "(.navigation[] | select(.tab == \"reference\") | .variants[] | select(.title == \"General\") | .. | select(has(\"path\")).path) |= sub(\"\.\./pages-$TAG/\", \"../pages-dev/\")" "$VERSION_FILE"

# Keep cross-navigation links within the selected documentation version.
sed -i "s|href: /dynamo/dev/|href: /dynamo/$TAG/|g" "$VERSION_FILE"

Expand Down
165 changes: 165 additions & 0 deletions docs/fern/assets/releases-atom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,165 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
SPDX-License-Identifier: Apache-2.0

Generated by docs/fern/scripts/gen_llms_tables.py from docs/fern/components/releases.data.ts - do not edit.
-->
<feed xmlns="http://www.w3.org/2005/Atom">
<title>NVIDIA Dynamo releases</title>
<id>https://docs.nvidia.com/dynamo/dev/reference/releases/release-history</id>
<link rel="alternate" href="https://docs.nvidia.com/dynamo/dev/reference/releases/release-history"/>
<updated>2026-07-20T00:00:00Z</updated>
<author><name>NVIDIA Dynamo</name></author>
<entry>
<title>Dynamo v1.3.0 (stable)</title>
<id>https://github.com/ai-dynamo/dynamo/releases/tag/v1.3.0</id>
<link rel="alternate" href="https://docs.nvidia.com/dynamo/dev/reference/releases/v1-3-0"/>
<updated>2026-07-20T00:00:00Z</updated>
<summary>Tool-calling and reasoning overhaul, RL rollout serving, the largest Router buildout to date, SLA-driven Planner autoscaling, and production GPU Memory Service on Kubernetes.</summary>
</entry>
<entry>
<title>Dynamo v1.2.1 (patch)</title>
<id>https://github.com/ai-dynamo/dynamo/releases/tag/v1.2.1</id>
<link rel="alternate" href="https://docs.nvidia.com/dynamo/dev/reference/releases/v1-2-0"/>
<updated>2026-06-13T00:00:00Z</updated>
<summary>Patch release. Same backend pins as v1.2.0.</summary>
</entry>
<entry>
<title>Dynamo v1.3.0-dev.1 (platform-preview)</title>
<id>https://github.com/ai-dynamo/dynamo/releases/tag/v1.3.0-dev.1</id>
<link rel="alternate" href="https://github.com/ai-dynamo/dynamo/releases/tag/v1.3.0-dev.1"/>
<updated>2026-06-09T00:00:00Z</updated>
<summary>Full-platform preview of v1.3.0: complete runtime matrix, wheels on pypi.nvidia.com, crates, and Helm charts. Superseded by v1.3.0 GA.</summary>
</entry>
<entry>
<title>Dynamo v1.2.0 (stable)</title>
<id>https://github.com/ai-dynamo/dynamo/releases/tag/v1.2.0</id>
<link rel="alternate" href="https://docs.nvidia.com/dynamo/dev/reference/releases/v1-2-0"/>
<updated>2026-06-02T00:00:00Z</updated>
<summary>DGD/DGDR v1beta1, CRTC as the default KV router, inter-pod GPU Memory Service, Dynamo Snapshot on CRI-O/OpenShift, and DeepSeek-V4 recipes on vLLM.</summary>
</entry>
<entry>
<title>Dynamo v1.2.0-deepseek-v4-dev.3 (model-build)</title>
<id>https://github.com/ai-dynamo/dynamo/releases/tag/v1.2.0-deepseek-v4-dev.3</id>
<link rel="alternate" href="https://github.com/ai-dynamo/dynamo/releases/tag/v1.2.0-deepseek-v4-dev.3"/>
<updated>2026-05-09T00:00:00Z</updated>
<summary>DeepSeek-V4 Blackwell preview; vLLM + SGLang containers only.</summary>
</entry>
<entry>
<title>Dynamo v1.1.1 (patch)</title>
<id>https://github.com/ai-dynamo/dynamo/releases/tag/v1.1.1</id>
<link rel="alternate" href="https://docs.nvidia.com/dynamo/dev/reference/releases/v1-1-0"/>
<updated>2026-05-05T00:00:00Z</updated>
<summary>Patch release. Same backend pins as v1.1.0.</summary>
</entry>
<entry>
<title>Dynamo v1.2.0-deepseek-v4-dev.2 (model-build)</title>
<id>https://github.com/ai-dynamo/dynamo/releases/tag/v1.2.0-deepseek-v4-dev.2</id>
<link rel="alternate" href="https://github.com/ai-dynamo/dynamo/releases/tag/v1.2.0-deepseek-v4-dev.2"/>
<updated>2026-05-01T00:00:00Z</updated>
<summary>DeepSeek-V4 Blackwell preview; vLLM + SGLang containers only.</summary>
</entry>
<entry>
<title>Dynamo v1.1.0 (stable)</title>
<id>https://github.com/ai-dynamo/dynamo/releases/tag/v1.1.0</id>
<link rel="alternate" href="https://docs.nvidia.com/dynamo/dev/reference/releases/v1-1-0"/>
<updated>2026-05-01T00:00:00Z</updated>
<summary>Resilient KV routing at scale, Anthropic Messages API support, performance modeling and offline replay, and the multimodal embedding cache.</summary>
</entry>
<entry>
<title>Dynamo v1.0.2 (patch)</title>
<id>https://github.com/ai-dynamo/dynamo/releases/tag/v1.0.2</id>
<link rel="alternate" href="https://docs.nvidia.com/dynamo/dev/reference/releases/v1-0-0"/>
<updated>2026-04-22T00:00:00Z</updated>
<summary>No artifact additions or removals versus v1.0.0.</summary>
</entry>
<entry>
<title>Dynamo v1.1.0-dev.3 (platform-preview)</title>
<id>https://github.com/ai-dynamo/dynamo/releases/tag/v1.1.0-dev.3</id>
<link rel="alternate" href="https://github.com/ai-dynamo/dynamo/releases/tag/v1.1.0-dev.3"/>
<updated>2026-04-18T00:00:00Z</updated>
<summary>Partial platform preview: TRT-LLM runtime image + wheels only.</summary>
</entry>
<entry>
<title>Dynamo v1.1.0-dev.2 (platform-preview)</title>
<id>https://github.com/ai-dynamo/dynamo/releases/tag/v1.1.0-dev.2</id>
<link rel="alternate" href="https://github.com/ai-dynamo/dynamo/releases/tag/v1.1.0-dev.2"/>
<updated>2026-04-09T00:00:00Z</updated>
<summary>Partial platform preview: SGLang + TRT-LLM runtime images + wheels.</summary>
</entry>
<entry>
<title>Dynamo v1.1.0-dev.1 (platform-preview)</title>
<id>https://github.com/ai-dynamo/dynamo/releases/tag/v1.1.0-dev.1</id>
<link rel="alternate" href="https://github.com/ai-dynamo/dynamo/releases/tag/v1.1.0-dev.1"/>
<updated>2026-03-17T00:00:00Z</updated>
<summary>Platform preview: runtime matrix, wheels on pypi.nvidia.com, Helm charts.</summary>
</entry>
<entry>
<title>Dynamo v1.0.1 (patch)</title>
<id>https://github.com/ai-dynamo/dynamo/releases/tag/v1.0.1</id>
<link rel="alternate" href="https://docs.nvidia.com/dynamo/dev/reference/releases/v1-0-0"/>
<updated>2026-03-16T00:00:00Z</updated>
<summary>No artifact additions or removals versus v1.0.0.</summary>
</entry>
<entry>
<title>Dynamo v1.0.0 (stable)</title>
<id>https://github.com/ai-dynamo/dynamo/releases/tag/v1.0.0</id>
<link rel="alternate" href="https://docs.nvidia.com/dynamo/dev/reference/releases/v1-0-0"/>
<updated>2026-03-12T00:00:00Z</updated>
<summary>First GA release: unified configuration, Kubernetes production readiness, multimodal serving, and the agents surface.</summary>
</entry>
<entry>
<title>Dynamo v0.9.1 (patch)</title>
<id>https://github.com/ai-dynamo/dynamo/releases/tag/v0.9.1</id>
<link rel="alternate" href="https://github.com/ai-dynamo/dynamo/releases/tag/v0.9.1"/>
<updated>2026-03-04T00:00:00Z</updated>
<summary>No artifact additions or removals versus v0.9.0.</summary>
</entry>
<entry>
<title>Dynamo v0.9.0 (stable)</title>
<id>https://github.com/ai-dynamo/dynamo/releases/tag/v0.9.0</id>
<link rel="alternate" href="https://github.com/ai-dynamo/dynamo/releases/tag/v0.9.0"/>
<updated>2026-02-11T00:00:00Z</updated>
<summary>First publish of dynamo-tokens crate. Deprecated dynamo-graph Helm chart dropped from the publish stream.</summary>
</entry>
<entry>
<title>Dynamo v0.8.1 (patch)</title>
<id>https://github.com/ai-dynamo/dynamo/releases/tag/v0.8.1</id>
<link rel="alternate" href="https://github.com/ai-dynamo/dynamo/releases/tag/v0.8.1"/>
<updated>2026-01-23T00:00:00Z</updated>
<summary>Post trains .post1/.post2/.post3 republished the TRT-LLM runtime image and PyPI wheels only.</summary>
</entry>
<entry>
<title>Dynamo v0.8.0 (stable)</title>
<id>https://github.com/ai-dynamo/dynamo/releases/tag/v0.8.0</id>
<link rel="alternate" href="https://github.com/ai-dynamo/dynamo/releases/tag/v0.8.0"/>
<updated>2026-01-15T00:00:00Z</updated>
<summary>dynamo-frontend image and CUDA 13 variants for vLLM and SGLang. First publish of dynamo-memory and dynamo-config crates.</summary>
</entry>
<entry>
<title>Dynamo v0.7.1 (patch)</title>
<id>https://github.com/ai-dynamo/dynamo/releases/tag/v0.7.1</id>
<link rel="alternate" href="https://github.com/ai-dynamo/dynamo/releases/tag/v0.7.1"/>
<updated>2025-12-15T00:00:00Z</updated>
</entry>
<entry>
<title>Dynamo v0.7.0 (stable)</title>
<id>https://github.com/ai-dynamo/dynamo/releases/tag/v0.7.0</id>
<link rel="alternate" href="https://github.com/ai-dynamo/dynamo/releases/tag/v0.7.0"/>
<updated>2025-11-26T00:00:00Z</updated>
</entry>
<entry>
<title>Dynamo v0.6.1 (patch)</title>
<id>https://github.com/ai-dynamo/dynamo/releases/tag/v0.6.1</id>
<link rel="alternate" href="https://github.com/ai-dynamo/dynamo/releases/tag/v0.6.1"/>
<updated>2025-11-06T00:00:00Z</updated>
</entry>
<entry>
<title>Dynamo v0.6.0 (stable)</title>
<id>https://github.com/ai-dynamo/dynamo/releases/tag/v0.6.0</id>
<link rel="alternate" href="https://github.com/ai-dynamo/dynamo/releases/tag/v0.6.0"/>
<updated>2025-10-28T00:00:00Z</updated>
<summary>Oldest release tracked on this page.</summary>
</entry>
</feed>
Loading
Loading