Skip to content

chore(global-router): add the Global Router crates and route lib/global-* to the global router team - #17355

Merged
dmitry-tokarev-nv merged 1 commit into
mainfrom
sachalmalick/global-router-codeowners
Oct 27, 2026
Merged

dmitry-tokarev-nv merged 1 commit into
mainfrom
sachalmalick/global-router-codeowners

Conversation

@sachalmalick

@sachalmalick sachalmalick commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Adds empty crates for the Global Router components and routes them to the global router team. Code for each component can then land later without touching the workspace or code ownership. Each crate is a library containing only a manifest and a one-line doc comment.

Directory Package Purpose
lib/global-common dynamo-global-common Types shared by the Global Router components
lib/global-discovery-client dynamo-global-discovery-client HTTP client for the Global Discovery Service
lib/global-discovery-service dynamo-global-discovery-service Pool discovery for the Global Router, served over HTTP
lib/global-frontend dynamo-global-frontend OpenAI-compatible entry point that forwards requests to Dynamo pools
lib/global-router dynamo-global-router Pool selection for the Global Router
lib/global-view-broadcaster dynamo-global-view-broadcaster Sends pool state from Pool Relays to Global Routers
lib/global-view-receiver dynamo-global-view-receiver Per-pool state received from Pool Relay replicas
  • Workspace. The root Cargo.toml lists the seven crates as members. Cargo.lock adds only these seven packages. CI filters already cover lib/**, and the release scripts find crates from the workspace members, so nothing else needs to change.
  • Code ownership. .github/codeowners/areas.yaml adds lib/global-*/** to the global-router area (@ai-dynamo/dynamo-global-router-codeowners), and CODEOWNERS is regenerated. Because it's a glob, a later lib/global-* crate needs no code-ownership change. The pattern ends in /** rather than / because codeowners_match.py treats a pattern ending in / as a literal prefix and does not expand * in it. That would leave the glob matching nothing.

Validation

  • cargo clippy -p dynamo-global-{common,discovery-client,discovery-service,frontend,router,view-broadcaster,view-receiver} --all-targets -- -D warnings passes. cargo fmt --check on the same crates passes.
  • build_codeowners.py --strict: 7101/7101 tracked files are explicitly owned, with no stale globs.
  • Regenerating CODEOWNERS with emit_codeowners.py produces no drift.
  • who_owns.py routes every new file to @ai-dynamo/dynamo-global-router-codeowners. The PR also requests the ops and process teams because it touches areas.yaml, CODEOWNERS and the root Cargo files.

Related Issues

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features
    • Added foundational Global Router components for pool discovery, request routing, frontend access, and pool-state sharing.
    • Added an OpenAI-compatible entry point that forwards requests to Dynamo pools.
    • Added ownership coverage for the new Global Router components.

Signed-off-by: Sachal Malick <s@chal.ai>
@sachalmalick
sachalmalick requested review from a team as code owners October 26, 2026 22:48
@copy-pr-bot

copy-pr-bot Bot commented Oct 26, 2026

Copy link
Copy Markdown

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

@coderabbitai

coderabbitai Bot commented Oct 26, 2026

Copy link
Copy Markdown
Contributor

Review in Change Stack →

No actionable comments were generated in the recent review.

Recent review info
Run configuration
Commits

Reviewing files that changed from the base of the PR and between b5313e7 and a10d8b9.

Files ignored due to path filters: 1
  • Cargo.lock is excluded by !**/*.lock
Files selected for processing: 17
  • .github/codeowners/areas.yaml
  • CODEOWNERS
  • Cargo.toml
  • lib/global-common/Cargo.toml
  • lib/global-common/src/lib.rs
  • lib/global-discovery-client/Cargo.toml
  • lib/global-discovery-client/src/lib.rs
  • lib/global-discovery-service/Cargo.toml
  • lib/global-discovery-service/src/lib.rs
  • lib/global-frontend/Cargo.toml
  • lib/global-frontend/src/lib.rs
  • lib/global-router/Cargo.toml
  • lib/global-router/src/lib.rs
  • lib/global-view-broadcaster/Cargo.toml
  • lib/global-view-broadcaster/src/lib.rs
  • lib/global-view-receiver/Cargo.toml
  • lib/global-view-receiver/src/lib.rs

Included review availability: This review used your included allowance. Your plan provides up to 12 included reviews per hour; 11 remain after this review.

Walkthrough

The change adds seven Global Router library packages to the Cargo workspace, adds package metadata and module-level descriptions, and routes matching library paths to the Global Router code owners.

Changes

Global Router setup

Layer / File(s) Summary
Register and describe Global Router crates
Cargo.toml, lib/global-*/Cargo.toml, lib/global-*/src/lib.rs
The workspace now includes seven Global Router packages. Each package has workspace-inherited metadata and a module-level description.
Route crate paths to code owners
.github/codeowners/areas.yaml, CODEOWNERS
Both ownership configurations now include matching lib/global-*/** paths for the Global Router code owners.

Priority: Low

Estimated code review effort: 2 (Simple) | ~8 minutes

Merge Risk: Minimal · up to a10d8

The scaffolding matches the stated setup objective, with no merge-blocking risk identified.

Pre-merge checks: Passed 5
Check name Status Explanation
Title check Passed The title clearly summarizes the two main changes: adding Global Router crates and assigning ownership for lib/global-* paths.
Description check Passed The description explains the scope, lists all seven crates, documents workspace and code ownership changes, includes validation results, and references issue #17354. It uses Summary and Validation hea…
Linked Issues check Passed Issue #17354 requires seven empty library crates, workspace membership, and ownership for lib/global-*/**. The reviewed changes add all seven dynamo-global-* manifests and library files, add the s…
Out of Scope Changes check Passed The changes stay within issue #17354. The crate manifests, module documentation, license headers, workspace update, and generated CODEOWNERS update support the requested crate setup and ownership rout…
Docstring Coverage Passed No eligible functions found in the changed files. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 7 files. (10 skipped: 1…
Full details: Description check

Explanation

The description explains the scope, lists all seven crates, documents workspace and code ownership changes, includes validation results, and references issue #17354. It uses Summary and Validation headings instead of every template heading, but it provides the required information.

Full details: Linked Issues check

Explanation

Issue #17354 requires seven empty library crates, workspace membership, and ownership for lib/global-*/**. The reviewed changes add all seven dynamo-global-* manifests and library files, add the seven workspace members, and add the requested ownership mapping. The reported formatting and clippy checks cover the new crates. No additional coding requirement is stated.

Full details: Out of Scope Changes check

Explanation

The changes stay within issue #17354. The crate manifests, module documentation, license headers, workspace update, and generated CODEOWNERS update support the requested crate setup and ownership routing. No unrelated implementation or unrelated product behavior is shown.

Full details: Docstring Coverage

Explanation

No eligible functions found in the changed files. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 7 files. (10 skipped: 10 unsupported.)

  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Comment @coderabbitai help to get the list of available commands.

@sachalmalick

Copy link
Copy Markdown
Contributor Author

/ok to test a10d8b9

@dmitry-tokarev-nv
dmitry-tokarev-nv enabled auto-merge (squash) October 27, 2026 20:39
@dmitry-tokarev-nv
dmitry-tokarev-nv merged commit df1d931 into main Oct 27, 2026
211 of 213 checks passed
@dmitry-tokarev-nv
dmitry-tokarev-nv deleted the sachalmalick/global-router-codeowners branch October 27, 2026 21:26
atchernych added a commit that referenced this pull request Oct 28, 2026
Main now has #17355, which adds empty lib/global-* crates, lib/global-common
among them, and routes lib/global-*/** to the Global Router team. Where both
sides changed the same lines, main's version is kept: the workspace members,
the CODEOWNERS glob, and the crate's package metadata and summary line. This
branch keeps its modules, dependencies, workspace dependency entry and
Cargo.lock entry.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Anna Tchernych <atchernych@nvidia.com>
atchernych added a commit that referenced this pull request Oct 28, 2026
…very-register-router

The base now has main, with #17355's Global Router crates. No conflicts.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Anna Tchernych <atchernych@nvidia.com>
atchernych added a commit that referenced this pull request Oct 28, 2026
…very-pool-registrations

The base now has main, with #17355's Global Router crates. No conflicts.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Anna Tchernych <atchernych@nvidia.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

chore(global-router): add the Global Router crates to main and route them to the global router team

5 participants