Update README dependency graph to match current setup.cfg#1908
Merged
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
This PR updates the project’s dependency diagram assets so the README’s “Dependencies” graph reflects the current dependency set (core vs optional) rather than older Datashader/GDAL-era dependencies.
Changes:
- Rewrote
img/dependencies.dotto reflect currentsetup.cfginstall requirements and optional extras/lazy GPU deps. - Regenerated the rendered SVG dependency diagram from the updated
.dotsource. - Removed legacy nodes/edges for packages no longer intended to appear in the README dependency graph (e.g., datashader/rasterio/GDAL/GEOS chain).
Reviewed changes
Copilot reviewed 1 out of 3 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| img/dependencies.dot | Updates the Graphviz source defining core/optional dependency nodes and edges. |
| img/dependencies.svg | Regenerated rendered dependency diagram to match the updated .dot graph. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comment on lines
+8
to
+14
| subgraph required { | ||
| xarray_spatial -> datashader; | ||
| xarray_spatial -> numba; | ||
| xarray_spatial -> numpy; | ||
| xarray_spatial -> xarray; | ||
| xarray_spatial -> cupy; | ||
| xarray_spatial -> numba; | ||
| xarray_spatial -> scipy; | ||
| xarray_spatial -> matplotlib; | ||
| xarray_spatial -> zstandard; |
Contributor
Author
Comment on lines
+58
to
+61
| kvikio [label=<<b>KvikIO</b><br />(GPUDirect Storage I/O)> fillcolor=lemonchiffon style=filled href="https://github.com/rapidsai/kvikio"]; | ||
| nvcomp [label=<<b>nvCOMP</b><br />(GPU Decompression)> fillcolor=lemonchiffon style=filled href="https://developer.nvidia.com/nvcomp"]; | ||
| dask [label=<<b>Dask</b><br />(Distributed-Ndarray)> fillcolor=lemonchiffon style=filled href="https://dask.org"]; | ||
| dask_geopandas [label=<<b>dask-geopandas</b><br />(Distributed GeoDataFrame)> fillcolor=lemonchiffon style=filled href="https://github.com/geopandas/dask-geopandas"]; |
Contributor
Author
Contributor
Author
PR Review: Update README dependency graph to match current setup.cfgBlockers (must fix before merge)
Suggestions (should fix, not blocking)
Nits (optional improvements)
What looks good
Checklist
|
brendancol
added a commit
that referenced
this pull request
May 15, 2026
brendancol
added a commit
that referenced
this pull request
May 15, 2026
Contributor
Author
PR Review: Update README dependency graph to match current setup.cfg (re-review after rebase)Rebased onto Scope
Blockers
Suggestions
Verification
|
Rewrite img/dependencies.dot and re-render the SVG and PNG so the diagram reflects what xarray-spatial actually depends on today. Required deps (green): numpy, xarray, numba, scipy, matplotlib, zstandard. Optional deps (yellow, dashed): cupy, cuspatial, rtxpy, kvikio, nvcomp, dask, dask-geopandas, shapely, geopandas, awkward, spatialpandas, pyproj, deflate. Removed datashader, holoviews, rasterio, GDAL, GEOS, fiona, rtree, libspatialindex, and pandas. The first four conflict with the README's "Free of GDAL / GEOS Dependencies" claim and the built-in GeoTIFF reader/writer; the rest are no longer in the tree.
- Recolor required nodes ``aquamarine -> palegreen`` so the rendered diagram matches the PR description's "Required (green)" legend. The previous aquamarine fill drifted from the intended green and would mislead readers using the legend as a key. - Rename the ``nvcomp`` node to ``libnvcomp``, update the label to ``libnvcomp.so``, and keep the official nvCOMP product page as the href. The optional dependency is the shared library ``libnvcomp.so`` loaded via kvikio/cuda; spelling it as ``nvcomp`` invited the misread that ``pip install nvcomp`` is the install instruction. - Regenerate the SVG/PNG from the updated .dot so the rendered images match the source.
Contributor
Author
|
Rebased onto current main at |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Rewrite
img/dependencies.dotand re-render the SVG and PNG so the README diagram reflects whatxarray-spatialactually depends on today.numpy,xarray,numba,scipy,matplotlib,zstandard— every entry ininstall_requires.cupy,cuspatial,rtxpy,kvikio,nvcomp,dask,dask-geopandas,shapely,geopandas,awkward,spatialpandas,pyproj,deflate.datashader,holoviews,rasterio,GDAL,GEOS,fiona,rtree,libspatialindex,pandas. The first four contradict the README's "Free of GDAL / GEOS Dependencies" line and the built-in GeoTIFF reader/writer; the rest are no longer in the tree.Closes #1907.
Test plan
grep -E "datashader|holoviews|rasterio|gdal|geos|rtree|libspatialindex|fiona" img/dependencies.dotreturns no matches.kvikio,nvcomp,cuspatial,rtxpy,matplotlib,zstandard,pyproj,deflate,awkward,dask_geopandasappears in the .dot file.dot -Tsvganddot -Tpngregenerate the rendered images cleanly.img/dependencies.pngin the PR and confirms the layout reads well at README width.