Skip to content

Umbrella readme - #1376

Open
cryos wants to merge 11 commits into
NVIDIA:mainfrom
cryos:umbrella-readme
Open

cryos wants to merge 11 commits into
NVIDIA:mainfrom
cryos:umbrella-readme

Conversation

@cryos

@cryos cryos commented Oct 2, 2026

Copy link
Copy Markdown
Collaborator

Summary

Changes for high level README.md etc for the new repository layout.

rparolin and others added 11 commits October 2, 2026 12:01
- Root README.md becomes the umbrella hub: one paragraph per component,
  a table for picking between the SIMT and Tile models, and a per-component
  license table. Modelled on NVIDIA/cuda-python's root README.
- cuda-oxide's existing README moves to cuda-oxide/README.md unchanged.
- docs/index.md is the published landing page. Its toctree links out to the
  component books by absolute URL, which is how cuda-python gets one
  navigation sidebar across independently built sites.
- docs/build_all_docs.sh builds the umbrella page, then each component book,
  and stitches the output into build/html/{,cuda-oxide/,cutile/}. Neither
  book moves. This produces the URL layout issue NVIDIA#2 asks for without
  relocating any sources or conflicting with NVIDIA#1.
- .gitignore no longer ignores /docs/. It was ignored for out-of-band design
  notes; only the build output is ignored now.

All three Sphinx builds pass under `-W --keep-going`.

URLs use https://nvlabs.github.io/cuda-rust/ as a placeholder; the public
umbrella repository does not exist yet.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Rob Parolin <rparolin@nvidia.com>
Issue NVIDIA#2 asks for an agent file at the repository root. There was none, and
there could not be: .gitignore ignored AGENTS.md outright. That entry sat with
.codex/, .agents/ and .mcp/ -- local agent scratch state -- but a committed,
repository-wide agent file is a different thing, so the entry goes and the file
lands.

AGENTS.md covers what applies everywhere: the component map and how the
workspace globs pick crates up, `just` as the entry point for checks rather
than raw cargo, the pinned nightly, DCO sign-off and SPDX headers, and never
pushing to the canonical upstream. It states that a subdirectory's own
AGENTS.md wins for component-specific conventions, which is what keeps the file
useful once cutile arrives. CLAUDE.md is a symlink to it so the two cannot
drift.

Also repoints CONTRIBUTING.md's toolchain link at cuda-oxide/README.md. It said
"see the README", which since the component move resolves to the umbrella
README, where the setup instructions no longer live.

Verified: every recipe and path the file cites resolves, and all ten guard
scripts still pass.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Rob Parolin <rparolin@nvidia.com>
The file was written before the split and two of its statements are now false.
It says the members glob lives in the root Cargo.toml, which has no members at
all, and it points at a root rust-toolchain.toml that does not exist.

The larger problem was an omission. Nothing said there are two workspaces, and
the way that fails is quiet:

    $ cargo test        # from the repository root
    error: the workspace has no members
    $ echo $?
    0

cargo test, build and clippy all report success at the root having compiled
nothing, and an agent reads that as tests passing. That is the same mistake that
broke cuda-intrinsics-gen, three guard scripts and smoketest.sh across three CI
rounds, so it now leads the file instead of being absent from it.

Also added, each a line or two:

- rustup resolves the toolchain from the working directory, so --manifest-path
  does not move it. This is why the recipes and scripts cd rather than pass a
  path, and it is not obvious from reading either.
- cargo deny's split invocation: policy at the root, lockfile in the component.
- Which four CI lanes carry paths filters and which four inherit through
  ci.yml, so a lane that did not run is not mistaken for broken CI.
- Two things that look like bugs and are not: the 13 issue and pull request
  permalinks that deliberately still point at NVlabs/cuda-oxide, and the 10
  trybuild .stderr files whose $WORKSPACE-relative paths any crate move
  rewrites -- with the warning that TRYBUILD=overwrite will bless a real
  regression as readily as a path change.

Verified: every path, recipe and count the file cites resolves against the tree.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Rob Parolin <rparolin@nvidia.com>

@elibol elibol left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

I rebased to address conflict with main in this repo and updated the link to THIRD_PARTY_NOTICES, since that's currently under cuda-oxide. @cryos is that something we want at the top-level? If so let's move it there and update the README. Otherwise LGTM!

This branch has not been deployed

No deployments
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.

4 participants