Reorganize cuDF documentation to highlight all projects - #22352
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Enterprise Run ID: 📒 Files selected for processing (1)
✅ Files skipped from review due to trivial changes (1)
📝 WalkthroughSummary by CodeRabbit
WalkthroughThis PR reorganizes the cuDF documentation structure, migrating from ChangesDocumentation Structure and Navigation Reorganization
Python Source Code Docstring URL Updates
Configuration and Root-Level Documentation
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes Possibly related PRs
Suggested reviewers
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 4
🧹 Nitpick comments (1)
docs/cudf/source/cudf/io/io.md (1)
180-180: ⚡ Quick winConsider using stable docs instead of nightly.
The link points to the nightly version of the options documentation (
/api/cudf/nightly/cudf/api_docs/options/), but the context doesn't explain why nightly is used instead of stable. For a general usage guide, linking to stable documentation would typically be more appropriate unless there's a specific reason to reference nightly.Consider changing to:
-To read a parquet or json file in low memory mode, there are [cuDF options](https://docs.rapids.ai/api/cudf/nightly/cudf/api_docs/options/#api-options) that must be set globally prior to calling the reader. To set those options, call: +To read a parquet or json file in low memory mode, there are [cuDF options](https://docs.rapids.ai/api/cudf/stable/cudf/api_docs/options/#api-options) that must be set globally prior to calling the reader. To set those options, call:🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@docs/cudf/source/cudf/io/io.md` at line 180, Replace the nightly docs link used in the "[cuDF options]" anchor with the stable docs URL (change "/api/cudf/nightly/cudf/api_docs/options/" to the stable path, e.g. "/api/cudf/stable/cudf/api_docs/options/"), and if the original choice of nightly was intentional, add a brief parenthetical note after the link explaining why nightly is referenced (e.g., "nightly features required") so readers understand the rationale; update the link target in the sentence that begins "To read a parquet or json file in low memory mode..." to point at the stable options docs unless there is a documented reason to keep nightly.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@CONTRIBUTING.md`:
- Line 325: Update the broken documentation link referenced by the "[Python
Developer Guide]" text: replace the incorrect URL that contains the extra
"/cudf/" segment
("https://docs.rapids.ai/api/cudf/stable/cudf/developer_guide/") with the
correct path "https://docs.rapids.ai/api/cudf/stable/developer_guide/" so the
CONTRIBUTING.md link points to the proper developer guide.
In `@docs/cudf/source/cudf_polars/developer_docs.md`:
- Around line 672-679: The doc currently describes `roots`, `partition_info`,
and `nodes` IDs as integers but later says they are serialized as strings;
update the descriptions for `roots`, `partition_info`, and the keys in `nodes`
to call them "string-encoded integer IDs" (e.g., "roots: the string-encoded
integer ID for the root nodes") and change the final note to explicitly state
that all node IDs are string-encoded integer IDs to ensure consistency with
`children` references and the serialization format.
- Around line 119-123: The example calls q.collect(engine=pl.GPUEngine(device=1,
memory_resource=mr)) but never defines mr; update the snippet to create and
assign a GPU memory resource object to mr before passing it to pl.GPUEngine
(e.g., instantiate the appropriate Polars/ CUDA memory resource), so that mr is
a valid memory resource when used by GPUEngine and q.collect.
In `@docs/dask_cudf/source/best_practices.rst`:
- Line 75: The link in best_practices.rst points to a non-existent anchor
'#spilling-to-host-memory' on the cuDF developer guide
(https://docs.rapids.ai/api/cudf/stable/cudf/developer_guide/library_design/);
fix by either adding a corresponding section/anchor titled "Spilling to host
memory" in the cuDF developer_guide/library_design page (so the fragment
`#spilling-to-host-memory` resolves) or update the link in best_practices.rst to a
valid existing target (e.g., remove the fragment or replace it with an existing
anchor on the library_design page) and verify the updated URL resolves.
---
Nitpick comments:
In `@docs/cudf/source/cudf/io/io.md`:
- Line 180: Replace the nightly docs link used in the "[cuDF options]" anchor
with the stable docs URL (change "/api/cudf/nightly/cudf/api_docs/options/" to
the stable path, e.g. "/api/cudf/stable/cudf/api_docs/options/"), and if the
original choice of nightly was intentional, add a brief parenthetical note after
the link explaining why nightly is referenced (e.g., "nightly features
required") so readers understand the rationale; update the link target in the
sentence that begins "To read a parquet or json file in low memory mode..." to
point at the stable options docs unless there is a documented reason to keep
nightly.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: f08a4526-a3f0-4555-aded-8bd3d7f54934
⛔ Files ignored due to path filters (1)
docs/cudf/source/cudf/developer_guide/frame_class_diagram.pngis excluded by!**/*.png
📒 Files selected for processing (177)
.agents/skills/review-cudf/SKILL.mdCONTRIBUTING.mdREADME.mddocs/cudf/README.mddocs/cudf/source/conf.pydocs/cudf/source/cudf/10min.ipynbdocs/cudf/source/cudf/PandasCompat.mddocs/cudf/source/cudf/api_docs/character_normalizer.rstdocs/cudf/source/cudf/api_docs/dataframe.rstdocs/cudf/source/cudf/api_docs/extension_dtypes.rstdocs/cudf/source/cudf/api_docs/general_functions.rstdocs/cudf/source/cudf/api_docs/general_utilities.rstdocs/cudf/source/cudf/api_docs/groupby.rstdocs/cudf/source/cudf/api_docs/index.rstdocs/cudf/source/cudf/api_docs/index_objects.rstdocs/cudf/source/cudf/api_docs/io.rstdocs/cudf/source/cudf/api_docs/options.rstdocs/cudf/source/cudf/api_docs/performance_tracking.rstdocs/cudf/source/cudf/api_docs/series.rstdocs/cudf/source/cudf/api_docs/tokenize_vocabulary.rstdocs/cudf/source/cudf/api_docs/window.rstdocs/cudf/source/cudf/api_docs/wordpiece_tokenizer.rstdocs/cudf/source/cudf/copy-on-write.mddocs/cudf/source/cudf/cupy-interop.ipynbdocs/cudf/source/cudf/data-types.mddocs/cudf/source/cudf/developer_guide/benchmarking.mddocs/cudf/source/cudf/developer_guide/contributing_guide.mddocs/cudf/source/cudf/developer_guide/documentation.mddocs/cudf/source/cudf/developer_guide/index.mddocs/cudf/source/cudf/developer_guide/library_design.mddocs/cudf/source/cudf/developer_guide/options.mddocs/cudf/source/cudf/developer_guide/testing.mddocs/cudf/source/cudf/developer_guide/udf_memory_management.mddocs/cudf/source/cudf/groupby.mddocs/cudf/source/cudf/guide-to-udfs.ipynbdocs/cudf/source/cudf/index.mddocs/cudf/source/cudf/io/index.mddocs/cudf/source/cudf/io/io.mddocs/cudf/source/cudf/io/read-json.mddocs/cudf/source/cudf/memory-profiling.mddocs/cudf/source/cudf/missing-data.ipynbdocs/cudf/source/cudf/options.mddocs/cudf/source/cudf/pandas-2.0-breaking-changes.mddocs/cudf/source/cudf/pandas-comparison.mddocs/cudf/source/cudf/performance-comparisons/index.mddocs/cudf/source/cudf/performance-comparisons/performance-comparisons.ipynbdocs/cudf/source/cudf_pandas/developer_guide.mddocs/cudf/source/cudf_pandas/index.rstdocs/cudf/source/cudf_polars/developer_docs.mddocs/cudf/source/cudf_polars/index.rstdocs/cudf/source/developer_guide/index.mddocs/cudf/source/index.rstdocs/cudf/source/libcudf/api_docs/aggregation_factories.rstdocs/cudf/source/libcudf/api_docs/aggregation_groupby.rstdocs/cudf/source/libcudf/api_docs/aggregation_reduction.rstdocs/cudf/source/libcudf/api_docs/aggregation_rolling.rstdocs/cudf/source/libcudf/api_docs/column_aggregation.rstdocs/cudf/source/libcudf/api_docs/column_apis.rstdocs/cudf/source/libcudf/api_docs/column_classes.rstdocs/cudf/source/libcudf/api_docs/column_copy.rstdocs/cudf/source/libcudf/api_docs/column_factories.rstdocs/cudf/source/libcudf/api_docs/column_hash.rstdocs/cudf/source/libcudf/api_docs/column_interop.rstdocs/cudf/source/libcudf/api_docs/column_join.rstdocs/cudf/source/libcudf/api_docs/column_merge.rstdocs/cudf/source/libcudf/api_docs/column_nullmask.rstdocs/cudf/source/libcudf/api_docs/column_quantiles.rstdocs/cudf/source/libcudf/api_docs/column_reduction.rstdocs/cudf/source/libcudf/api_docs/column_reorder.rstdocs/cudf/source/libcudf/api_docs/column_reshape.rstdocs/cudf/source/libcudf/api_docs/column_search.rstdocs/cudf/source/libcudf/api_docs/column_sort.rstdocs/cudf/source/libcudf/api_docs/column_transformation.rstdocs/cudf/source/libcudf/api_docs/copy_concatenate.rstdocs/cudf/source/libcudf/api_docs/copy_gather.rstdocs/cudf/source/libcudf/api_docs/copy_scatter.rstdocs/cudf/source/libcudf/api_docs/copy_shift.rstdocs/cudf/source/libcudf/api_docs/copy_slice.rstdocs/cudf/source/libcudf/api_docs/copy_split.rstdocs/cudf/source/libcudf/api_docs/cudf_classes.rstdocs/cudf/source/libcudf/api_docs/cudf_namespace.rstdocs/cudf/source/libcudf/api_docs/datetime_apis.rstdocs/cudf/source/libcudf/api_docs/datetime_compute.rstdocs/cudf/source/libcudf/api_docs/datetime_extract.rstdocs/cudf/source/libcudf/api_docs/default_stream.rstdocs/cudf/source/libcudf/api_docs/dictionary_apis.rstdocs/cudf/source/libcudf/api_docs/dictionary_classes.rstdocs/cudf/source/libcudf/api_docs/dictionary_encode.rstdocs/cudf/source/libcudf/api_docs/dictionary_search.rstdocs/cudf/source/libcudf/api_docs/dictionary_update.rstdocs/cudf/source/libcudf/api_docs/expressions.rstdocs/cudf/source/libcudf/api_docs/fixed_point_classes.rstdocs/cudf/source/libcudf/api_docs/index.rstdocs/cudf/source/libcudf/api_docs/interop_arrow.rstdocs/cudf/source/libcudf/api_docs/interop_dlpack.rstdocs/cudf/source/libcudf/api_docs/io_apis.rstdocs/cudf/source/libcudf/api_docs/io_datasinks.rstdocs/cudf/source/libcudf/api_docs/io_datasources.rstdocs/cudf/source/libcudf/api_docs/io_readers.rstdocs/cudf/source/libcudf/api_docs/io_types.rstdocs/cudf/source/libcudf/api_docs/io_utils.rstdocs/cudf/source/libcudf/api_docs/io_writers.rstdocs/cudf/source/libcudf/api_docs/json_apis.rstdocs/cudf/source/libcudf/api_docs/json_object.rstdocs/cudf/source/libcudf/api_docs/label_bins.rstdocs/cudf/source/libcudf/api_docs/labeling_apis.rstdocs/cudf/source/libcudf/api_docs/lists_apis.rstdocs/cudf/source/libcudf/api_docs/lists_classes.rstdocs/cudf/source/libcudf/api_docs/lists_combine.rstdocs/cudf/source/libcudf/api_docs/lists_contains.rstdocs/cudf/source/libcudf/api_docs/lists_elements.rstdocs/cudf/source/libcudf/api_docs/lists_extract.rstdocs/cudf/source/libcudf/api_docs/lists_filling.rstdocs/cudf/source/libcudf/api_docs/lists_filtering.rstdocs/cudf/source/libcudf/api_docs/lists_gather.rstdocs/cudf/source/libcudf/api_docs/lists_modify.rstdocs/cudf/source/libcudf/api_docs/lists_sort.rstdocs/cudf/source/libcudf/api_docs/memory_resource.rstdocs/cudf/source/libcudf/api_docs/nvtext_apis.rstdocs/cudf/source/libcudf/api_docs/nvtext_edit_distance.rstdocs/cudf/source/libcudf/api_docs/nvtext_jaccard.rstdocs/cudf/source/libcudf/api_docs/nvtext_minhash.rstdocs/cudf/source/libcudf/api_docs/nvtext_ngrams.rstdocs/cudf/source/libcudf/api_docs/nvtext_normalize.rstdocs/cudf/source/libcudf/api_docs/nvtext_replace.rstdocs/cudf/source/libcudf/api_docs/nvtext_stemmer.rstdocs/cudf/source/libcudf/api_docs/nvtext_tokenize.rstdocs/cudf/source/libcudf/api_docs/reorder_compact.rstdocs/cudf/source/libcudf/api_docs/reorder_partition.rstdocs/cudf/source/libcudf/api_docs/reshape_transpose.rstdocs/cudf/source/libcudf/api_docs/scalar_classes.rstdocs/cudf/source/libcudf/api_docs/scalar_factories.rstdocs/cudf/source/libcudf/api_docs/set_operations.rstdocs/cudf/source/libcudf/api_docs/strings_apis.rstdocs/cudf/source/libcudf/api_docs/strings_case.rstdocs/cudf/source/libcudf/api_docs/strings_classes.rstdocs/cudf/source/libcudf/api_docs/strings_combine.rstdocs/cudf/source/libcudf/api_docs/strings_contains.rstdocs/cudf/source/libcudf/api_docs/strings_convert.rstdocs/cudf/source/libcudf/api_docs/strings_copy.rstdocs/cudf/source/libcudf/api_docs/strings_extract.rstdocs/cudf/source/libcudf/api_docs/strings_find.rstdocs/cudf/source/libcudf/api_docs/strings_modify.rstdocs/cudf/source/libcudf/api_docs/strings_regex.rstdocs/cudf/source/libcudf/api_docs/strings_replace.rstdocs/cudf/source/libcudf/api_docs/strings_slice.rstdocs/cudf/source/libcudf/api_docs/strings_split.rstdocs/cudf/source/libcudf/api_docs/strings_types.rstdocs/cudf/source/libcudf/api_docs/structs_classes.rstdocs/cudf/source/libcudf/api_docs/table_classes.rstdocs/cudf/source/libcudf/api_docs/tdigest.rstdocs/cudf/source/libcudf/api_docs/timestamp_classes.rstdocs/cudf/source/libcudf/api_docs/transformation_binaryops.rstdocs/cudf/source/libcudf/api_docs/transformation_fill.rstdocs/cudf/source/libcudf/api_docs/transformation_replace.rstdocs/cudf/source/libcudf/api_docs/transformation_transform.rstdocs/cudf/source/libcudf/api_docs/transformation_unaryops.rstdocs/cudf/source/libcudf/api_docs/utility_apis.rstdocs/cudf/source/libcudf/api_docs/utility_bitmask.rstdocs/cudf/source/libcudf/api_docs/utility_dispatcher.rstdocs/cudf/source/libcudf/api_docs/utility_error.rstdocs/cudf/source/libcudf/api_docs/utility_span.rstdocs/cudf/source/libcudf/api_docs/utility_types.rstdocs/cudf/source/libcudf/index.rstdocs/cudf/source/libcudf/md_regex.rstdocs/cudf/source/libcudf/unicode_limitations.rstdocs/cudf/source/libcudf_docs/index.rstdocs/cudf/source/pylibcudf/index.rstdocs/dask_cudf/source/best_practices.rstdocs/dask_cudf/source/index.rstpyproject.tomlpython/cudf/cudf/core/dataframe.pypython/cudf/cudf/core/groupby/groupby.pypython/cudf/cudf/core/series.pypython/cudf/cudf/core/udf/groupby_typing.pypython/cudf/cudf/utils/ioutils.pypython/dask_cudf/README.md
💤 Files with no reviewable changes (2)
- docs/cudf/source/libcudf/api_docs/index.rst
- docs/cudf/source/libcudf_docs/index.rst
vyasr
left a comment
There was a problem hiding this comment.
These changes look fine to me, thanks Matt!
|
/merge |
Follow up to #22352 * Updates outdated information, especially `library_design` which described before we more natively relied on `pylibcudf` * Trims a lot of the "prose" in favor of more bullet-point-instructions so that agents can interpret this documentation (hopefully) more as a checklist to follow * Also edits some of the content towards conventions _I_ have been following over the years Authors: - Matthew Roeschke (https://github.com/mroeschke) Approvers: - Vyas Ramasubramani (https://github.com/vyasr) URL: #22689
One slight complication is that #22352 reorganized the cudf documentation and will take effect in 26.08; therefore, the `stable` links in this PR might still 404 until the 26.08 docs become the new `stable`. i.e. Currently, the links _should_ resolve if `stable` is changed to `nightly` Authors: - Matthew Roeschke (https://github.com/mroeschke) Approvers: - Karthikeyan (https://github.com/karthikeyann) - GALI PREM SAGAR (https://github.com/galipremsagar) - Matthew Murray (https://github.com/Matt711) URL: #23270

Description
The cuDF documentation, https://docs.rapids.ai/api/cudf/stable/, is primarily cudf Python focused. Similar to what was done in #20357 with the README, I think it would be good to reorient our documentation to highlight all projects on the landing page and migrate all our cuDF Python specific pages into the
source/cudf/directory.This PR primarily moves documentation and only renames/modifies content for "unification"
libcudf_docs->libcudf,user_guide->cudf(where all the content was cudf Python focused)I'd recommend reviewing
docs/cudf/source/index.rstas it underwent the most changeChecklist