-
Notifications
You must be signed in to change notification settings - Fork 56
Description
Description
The rapidsai/notebooks image is an extension of rapidsai/base that that has Jupyterlab. It comes pre-loaded with some RAPIDS notebooks and all the dependencies to run them.
It also includes some libraries that aren't needed for those purposes, like pytest and some pytest plugins.
Those should be removed.
Benefits of this work
- smaller images = faster pull times, less disk footprint, and data transfer
- faster image builds here
- reduced maintenance burden (reduced risk of environment-solving issues)
- reduced risk of scanning tools detecting CVEs or other issues
Acceptance Criteria
rapidsai/notebooks only includes libraries that users need to run RAPIDS workloads, including all of the notebooks they come pre-loaded with.
Approach
rapidsai/notebooks should only contain the libraries needed to run RAPIDS workloads, including the provided notebooks.
It'll take a little design work to find a resilient way to achieve that, but I can at least point out how the testing dependencies are getting in today. During builds, the dependencies.yaml files in cuDF, cuML, and cuGraph are inspected and the contents of their test_python dependency groups are merged into a conda environment:
Lines 32 to 39 in 74a51c5
| if [ -f "$REPO/dependencies.yaml" ] && yq -e '.files.test_notebooks' "$REPO/dependencies.yaml" >/dev/null; then | |
| echo "Running dfg on $REPO" | |
| rapids-dependency-file-generator \ | |
| --config "$REPO/dependencies.yaml" \ | |
| --file-key test_notebooks \ | |
| --matrix "cuda=${CUDA_VER%.*};arch=$(arch);py=${PYTHON_VER}" \ | |
| --output conda >"/dependencies/${REPO}_notebooks_tests_dependencies.yaml" | |
| fi |
That should be sufficient to get "dependencies needed to run these notebooks", but it also ends up pulling things only used in CI testing of those notebooks, like pytest.
$ docker run --rm rapidsai/notebooks:25.12-cuda13-py3.13 conda env export
name: base
channels:
- conda-forge
- rapidsai
dependencies:
...
- coverage=7.13.0=py313h3dea7bd_0
...
- pytest=8.4.2=pyhcf101f3_1
- pytest-benchmark=5.2.3=pyhd8ed1ab_0
- pytest-cov=7.0.0=pyhcf101f3_1
- pytest-xdist=3.8.0=pyhd8ed1ab_0
...
full env.yaml, 509 conda packages - (click me)
name: base
channels:
- conda-forge
- rapidsai
dependencies:
- _libgcc_mutex=0.1=conda_forge
- _openmp_mutex=4.5=2_gnu
- _python_abi3_support=1.0=hd8ed1ab_2
- aiohappyeyeballs=2.6.1=pyhd8ed1ab_0
- aiohttp=3.13.2=py313h321d83c_0
- aiosignal=1.4.0=pyhd8ed1ab_0
- anyio=4.12.0=pyhcf101f3_0
- aom=3.9.1=hac33072_0
- archspec=0.2.5=pyhd8ed1ab_0
- argon2-cffi=25.1.0=pyhd8ed1ab_0
- argon2-cffi-bindings=25.1.0=py313h07c4f96_2
- arrow=1.4.0=pyhcf101f3_0
- asttokens=3.0.1=pyhd8ed1ab_0
- async-lru=2.0.5=pyh29332c3_0
- attr=2.5.2=h39aace5_0
- attrs=25.4.0=pyhcf101f3_1
- aws-c-auth=0.9.1=h48c9088_3
- aws-c-cal=0.9.2=he7b75e1_1
- aws-c-common=0.12.4=hb03c661_0
- aws-c-compression=0.3.1=h92c474e_6
- aws-c-event-stream=0.5.6=h82d11aa_3
- aws-c-http=0.10.4=h94feff3_3
- aws-c-io=0.22.0=h57f3b0d_1
- aws-c-mqtt=0.13.3=h2b1cf8c_6
- aws-c-s3=0.8.6=h4e5ac4b_5
- aws-c-sdkutils=0.2.4=h92c474e_1
- aws-checksums=0.2.7=h92c474e_2
- aws-crt-cpp=0.34.4=h60c762c_0
- aws-sdk-cpp=1.11.606=h32384e2_4
- azure-core-cpp=1.16.0=h3a458e0_1
- azure-identity-cpp=1.12.0=ha729027_0
- azure-storage-blobs-cpp=12.14.0=hb1c9500_1
- azure-storage-common-cpp=12.10.0=hebae86a_2
- azure-storage-files-datalake-cpp=12.12.0=h8b27e44_3
- babel=2.17.0=pyhd8ed1ab_0
- beautifulsoup4=4.14.3=pyha770c72_0
- bleach=6.3.0=pyhcf101f3_0
- bleach-with-css=6.3.0=h5f6438b_0
- blosc=1.21.6=he440d0b_1
- bokeh=3.8.1=pyhd8ed1ab_0
- boltons=25.0.0=pyhd8ed1ab_0
- branca=0.8.2=pyhd8ed1ab_0
- brotli=1.1.0=hb03c661_4
- brotli-bin=1.1.0=hb03c661_4
- brotli-python=1.1.0=py313h7033f15_4
- brunsli=0.1=he3183e4_1
- bzip2=1.0.8=hda65f42_8
- c-ares=1.34.5=hb9d3cd8_0
- c-blosc2=2.22.0=h4cfbee9_0
- ca-certificates=2025.11.12=hbd8a1cb_0
- cached-property=1.5.2=hd8ed1ab_1
- cached_property=1.5.2=pyha770c72_1
- cachetools=6.2.4=pyhd8ed1ab_0
- certifi=2025.11.12=pyhd8ed1ab_0
- cffi=2.0.0=py313hf46b229_1
- charls=2.4.2=h59595ed_0
- charset-normalizer=3.4.4=pyhd8ed1ab_0
- click=8.3.1=pyh8f84b5b_1
- cloudpickle=3.1.2=pyhcf101f3_1
- colorama=0.4.6=pyhd8ed1ab_1
- colorcet=3.1.0=pyhd8ed1ab_1
- comm=0.2.3=pyhe01879c_0
- conda=25.9.1=py313h78bf25f_0
- conda-libmamba-solver=25.4.0=pyhd8ed1ab_0
- conda-package-handling=2.4.0=pyh7900ff3_2
- conda-package-streaming=0.12.0=pyhd8ed1ab_0
- contourpy=1.3.3=py313h7037e92_3
- coverage=7.13.0=py313h3dea7bd_0
- cpp-expected=1.3.1=h171cf75_0
- cpython=3.13.11=py313hd8ed1ab_100
- cucim=25.12.00=cuda13_py313_251210_ghg0ea8217_gn0_phc494990
- cuda-bindings=13.1.1=py313h08cd8bf_1
- cuda-cccl_linux-64=13.0.85=ha770c72_0
- cuda-core=0.3.2=py313hb1ccf29_0
- cuda-crt-dev_linux-64=13.0.88=ha770c72_0
- cuda-crt-tools=13.0.88=ha770c72_0
- cuda-cudart=13.0.96=hecca717_0
- cuda-cudart-dev=13.0.96=hecca717_0
- cuda-cudart-dev_linux-64=13.0.96=h376f20c_0
- cuda-cudart-static=13.0.96=hecca717_0
- cuda-cudart-static_linux-64=13.0.96=h376f20c_0
- cuda-cudart_linux-64=13.0.96=h376f20c_0
- cuda-nvcc-dev_linux-64=13.0.88=he91c749_0
- cuda-nvcc-impl=13.0.88=h85509e4_0
- cuda-nvcc-tools=13.0.88=he02047a_0
- cuda-nvrtc=13.0.88=hecca717_0
- cuda-nvvm-dev_linux-64=13.0.88=ha770c72_0
- cuda-nvvm-impl=13.0.88=h4bc722e_0
- cuda-nvvm-tools=13.0.88=h4bc722e_0
- cuda-pathfinder=1.3.3=pyhcf101f3_0
- cuda-profiler-api=13.0.85=h7938cbb_0
- cuda-python=13.1.1=pyhc455866_1
- cuda-version=13.0=hc7b4dd1_3
- cudf=25.12.00=cuda13_py313_251210_580975be
- cudf-polars=25.12.00=cuda13_py313_251210_580975be
- cudf_kafka=25.12.00=cuda13_py313_251210_580975be
- cugraph=25.12.02=cuda13_py313_251211_9765e20f
- cuml=25.12.00=cuda13_py313_251211_5c22c200
- cupy=13.6.0=py313h727d180_2
- cupy-core=13.6.0=py313h0630d88_2
- custreamz=25.12.00=cuda13_py313_251210_580975be
- cuvs=25.12.00=cuda13_py313_251211_fc27938b
- cuxfilter=25.12.00=cuda13_py313_251211_0e91a395
- cycler=0.12.1=pyhcf101f3_2
- cyrus-sasl=2.1.28=hd9c7081_0
- cytoolz=1.1.0=py313h07c4f96_1
- dask=2025.9.1=pyhcf101f3_0
- dask-core=2025.9.1=pyhcf101f3_0
- dask-cuda=25.12.00=py313_251210_7edf2c69
- dask-cudf=25.12.00=cuda13_py313_251210_580975be
- dask-glm=0.3.2=pyhd8ed1ab_0
- dask-labextension=7.0.0=pyhd8ed1ab_1
- dask-ml=2023.3.24=pyhd8ed1ab_1
- datashader=0.18.2=pyhd8ed1ab_0
- dav1d=1.2.1=hd590300_0
- debugpy=1.8.19=py313hb7f33ac_0
- decorator=5.2.1=pyhd8ed1ab_0
- defusedxml=0.7.1=pyhd8ed1ab_0
- distributed=2025.9.1=pyhcf101f3_0
- distributed-ucxx=0.47.00=py_251210_5d6f0af3_hf4a1fa9
- distro=1.9.0=pyhd8ed1ab_1
- dlpack=0.8=h59595ed_3
- exceptiongroup=1.3.1=pyhd8ed1ab_0
- execnet=2.1.2=pyhd8ed1ab_0
- executing=2.2.1=pyhd8ed1ab_0
- fastrlock=0.8.3=py313h5d5ffb9_2
- fmt=11.2.0=h07f6e7f_0
- folium=0.20.0=pyhd8ed1ab_0
- fonttools=4.61.1=py313h3dea7bd_0
- fqdn=1.5.1=pyhd8ed1ab_1
- freetype=2.14.1=ha770c72_0
- freexl=2.0.0=h9dce30a_2
- frozendict=2.4.6=py313h07c4f96_1
- frozenlist=1.7.0=py313h6b9daa2_0
- fsspec=2025.12.0=pyhd8ed1ab_0
- geopandas=1.1.1=pyhd8ed1ab_1
- geopandas-base=1.1.1=pyha770c72_1
- geos=3.14.0=h480dda7_0
- gflags=2.2.2=h5888daf_1005
- giflib=5.2.2=hd590300_0
- glog=0.7.1=hbabe93e_0
- h11=0.16.0=pyhd8ed1ab_0
- h2=4.3.0=pyhcf101f3_0
- holoviews=1.22.1=pyhd8ed1ab_0
- hpack=4.1.0=pyhd8ed1ab_0
- httpcore=1.0.9=pyh29332c3_0
- httpx=0.28.1=pyhd8ed1ab_0
- hyperframe=6.1.0=pyhd8ed1ab_0
- icu=75.1=he02047a_0
- idna=3.11=pyhd8ed1ab_0
- imagecodecs=2025.8.2=py313h24102ce_5
- imageio=2.37.0=pyhfb79c49_0
- importlib-metadata=8.7.0=pyhe01879c_1
- importlib_resources=6.5.2=pyhd8ed1ab_0
- iniconfig=2.3.0=pyhd8ed1ab_0
- ipykernel=7.1.0=pyha191276_0
- ipython=9.8.0=pyh53cf698_0
- ipython_pygments_lexers=1.1.1=pyhd8ed1ab_0
- ipywidgets=8.1.8=pyhd8ed1ab_0
- isoduration=20.11.0=pyhd8ed1ab_1
- jedi=0.19.2=pyhd8ed1ab_1
- jinja2=3.1.6=pyhcf101f3_1
- joblib=1.5.3=pyhd8ed1ab_0
- json-c=0.18=h6688a6e_0
- json5=0.12.1=pyhd8ed1ab_0
- jsonpatch=1.33=pyhd8ed1ab_1
- jsonpointer=3.0.0=py313h78bf25f_2
- jsonschema=4.25.1=pyhe01879c_0
- jsonschema-specifications=2025.9.1=pyhcf101f3_0
- jsonschema-with-format-nongpl=4.25.1=he01879c_0
- jupyter=1.1.1=pyhd8ed1ab_1
- jupyter-lsp=2.3.0=pyhcf101f3_0
- jupyter-server-proxy=4.4.0=pyhd8ed1ab_1
- jupyter_client=8.7.0=pyhcf101f3_0
- jupyter_console=6.6.3=pyhd8ed1ab_1
- jupyter_core=5.9.1=pyhc90fa1f_0
- jupyter_events=0.12.0=pyh29332c3_0
- jupyter_server=2.17.0=pyhcf101f3_0
- jupyter_server_terminals=0.5.3=pyhd8ed1ab_1
- jupyterlab=4.5.1=pyhd8ed1ab_0
- jupyterlab-nvdashboard=0.13.0=py_250303_g0c72239_0
- jupyterlab_pygments=0.3.0=pyhd8ed1ab_2
- jupyterlab_server=2.28.0=pyhcf101f3_0
- jupyterlab_widgets=3.0.16=pyhcf101f3_1
- jxrlib=1.1=hd590300_3
- keyutils=1.6.3=hb9d3cd8_0
- kiwisolver=1.4.9=py313hc8edb43_2
- krb5=1.21.3=h659f571_0
- lark=1.3.1=pyhd8ed1ab_0
- lazy-loader=0.4=pyhd8ed1ab_2
- lazy_loader=0.4=pyhd8ed1ab_2
- lcms2=2.17=h717163a_0
- ld_impl_linux-64=2.44=h1aa0949_5
- lerc=4.0.0=h0aef613_1
- libabseil=20250512.1=cxx17_hba17884_0
- libaec=1.1.4=h3f801dc_0
- libarchive=3.8.1=gpl_h98cc613_100
- libarrow=21.0.0=h56a6dad_8_cpu
- libarrow-acero=21.0.0=h635bf11_8_cpu
- libarrow-compute=21.0.0=h8c2c5c3_8_cpu
- libarrow-dataset=21.0.0=h635bf11_8_cpu
- libarrow-substrait=21.0.0=h3f74fd7_8_cpu
- libavif16=1.3.0=h6395336_2
- libblas=3.11.0=5_h4a7cf45_openblas
- libbrotlicommon=1.1.0=hb03c661_4
- libbrotlidec=1.1.0=hb03c661_4
- libbrotlienc=1.1.0=hb03c661_4
- libcap=2.77=h3ff7636_0
- libcblas=3.11.0=5_h0358290_openblas
- libcrc32c=1.1.2=h9c3ff4c_0
- libcublas=13.1.0.3=h676940d_0
- libcublas-dev=13.1.0.3=h676940d_0
- libcucim=25.12.00=cuda13_251210_ghg0ea8217_gn0_phe835b31
- libcudf=25.12.00=cuda13_251210_580975be
- libcudf_kafka=25.12.00=cuda13_251210_580975be
- libcufft=12.0.0.61=hecca717_0
- libcufile=1.15.1.6=hbc026e6_0
- libcufile-dev=1.15.1.6=hecca717_0
- libcugraph=25.12.02=cuda13_251211_9765e20f
- libcugraph_etl=25.12.02=cuda13_251211_9765e20f
- libcuml=25.12.00=cuda13_251211_5c22c200
- libcumlprims=25.12.00=cuda13_py310_251211_7e1ef293
- libcurand=10.4.0.35=h676940d_1
- libcurand-dev=10.4.0.35=h676940d_1
- libcurl=8.17.0=h4e3cde8_0
- libcusolver=12.0.4.66=h676940d_1
- libcusolver-dev=12.0.4.66=h676940d_1
- libcusparse=12.6.3.3=hecca717_0
- libcusparse-dev=12.6.3.3=hecca717_0
- libcuvs=25.12.00=cuda13_251211_fc27938b
- libcuvs-headers=25.12.00=cuda13_251211_fc27938b
- libdeflate=1.24=h86f0d12_0
- libedit=3.1.20250104=pl5321h7949ede_0
- libev=4.33=hd590300_2
- libevent=2.1.12=hf998b51_1
- libexpat=2.7.1=hecca717_0
- libffi=3.5.2=h9ec8514_0
- libfreetype=2.14.1=ha770c72_0
- libfreetype6=2.14.1=h73754d4_0
- libgcc=15.2.0=h767d61c_7
- libgcc-ng=15.2.0=h69a702a_7
- libgdal-core=3.11.4=h14edee0_0
- libgfortran=15.2.0=h69a702a_16
- libgfortran5=15.2.0=h68bc16d_16
- libgomp=15.2.0=h767d61c_7
- libgoogle-cloud=2.39.0=hdb79228_0
- libgoogle-cloud-storage=2.39.0=hdbdcf42_0
- libgrpc=1.73.1=h3288cfb_1
- libhwy=1.3.0=h4c17acf_1
- libiconv=1.18=h3b78370_2
- libjpeg-turbo=3.1.2=hb03c661_0
- libjxl=0.11.1=h6cb5226_4
- libkml=1.3.0=haa4a5bd_1022
- libkvikio=25.12.00=cuda13_251210_61297197
- liblapack=3.11.0=5_h47877c9_openblas
- liblzma=5.8.1=hb9d3cd8_2
- libmamba=2.3.2=hae34dd5_2
- libmambapy=2.3.2=py313h2dcffc8_2
- libmpdec=4.0.0=hb9d3cd8_0
- libnghttp2=1.67.0=had1ee68_0
- libnl=3.11.0=hb9d3cd8_0
- libnsl=2.0.1=hb9d3cd8_1
- libntlm=1.8=hb9d3cd8_0
- libnuma=2.0.18=hb9d3cd8_3
- libnvcomp=5.0.0.6=h7bcfba5_3
- libnvcomp-dev=5.0.0.6=h7bcfba5_3
- libnvimgcodec=0.6.0=hd8ed1ab_0
- libnvimgcodec0=0.6.0=h7bcfba5_0
- libnvjitlink=13.1.80=hecca717_0
- libnvjpeg=13.0.1.86=hecca717_0
- libnvjpeg2k0=0.9.0.43=h276d11f_1
- libnvptxcompiler-dev=13.0.88=ha770c72_0
- libnvptxcompiler-dev_linux-64=13.0.88=ha770c72_0
- libnvtiff=0.5.1.75=ha770c72_0
- libnvtiff0=0.5.1.75=h276d11f_0
- libopenblas=0.3.30=pthreads_h94d23a6_4
- libopentelemetry-cpp=1.21.0=hb9b0907_1
- libopentelemetry-cpp-headers=1.21.0=ha770c72_1
- libparquet=21.0.0=h790f06f_8_cpu
- libpng=1.6.53=h421ea60_0
- libprotobuf=6.31.1=h49aed37_2
- libraft=25.12.00=cuda13_251211_d226bc96
- libraft-headers=25.12.00=cuda13_251211_d226bc96
- libraft-headers-only=25.12.00=cuda13_251211_d226bc96
- librdkafka=2.8.0=h2e2c4f7_0
- libre2-11=2025.11.05=h7b12aa8_0
- librmm=25.12.00=cuda13_251210_86731e05
- librttopo=1.1.0=h96cd706_19
- libsodium=1.0.20=h4ab18f5_0
- libsolv=0.7.35=h9463b59_0
- libspatialite=5.1.0=h7250436_15
- libsqlite=3.51.0=hee844dc_0
- libssh2=1.11.1=hcf80075_0
- libstdcxx=15.2.0=h8f9b012_7
- libstdcxx-ng=15.2.0=h4852527_7
- libsystemd0=258.3=h6569c3e_0
- libthrift=0.22.0=h454ac66_1
- libtiff=4.7.1=h8261f1e_0
- libucxx=0.47.00=cuda13_251210_5d6f0af3
- libudev1=258.3=h6569c3e_0
- libutf8proc=2.11.2=hfe17d71_0
- libuuid=2.41.2=he9a06e4_0
- libuv=1.51.0=hb03c661_1
- libwebp-base=1.6.0=hd42ef1d_0
- libxcb=1.17.0=h8a09558_0
- libxcrypt=4.4.36=hd590300_1
- libxgboost=3.1.2=rapidsai_h1e42af5_1
- libxml2=2.13.9=h04c0eec_0
- libzlib=1.3.1=hb9d3cd8_2
- libzopfli=1.0.3=h9c3ff4c_0
- linkify-it-py=2.0.3=pyhd8ed1ab_1
- llvmlite=0.44.0=py313hfdae721_2
- locket=1.0.0=pyhd8ed1ab_0
- lz4=4.4.5=py313h28739b2_1
- lz4-c=1.10.0=h5888daf_1
- lzo=2.10=h280c20c_1002
- mamba=2.3.2=h4a52834_2
- mapclassify=2.10.0=pyhd8ed1ab_1
- markdown=3.10=pyhcf101f3_1
- markdown-it-py=4.0.0=pyhd8ed1ab_0
- markupsafe=3.0.3=py313h3dea7bd_0
- matplotlib-base=3.10.8=py313h683a580_0
- matplotlib-inline=0.2.1=pyhd8ed1ab_0
- mdit-py-plugins=0.5.0=pyhd8ed1ab_0
- mdurl=0.1.2=pyhd8ed1ab_1
- menuinst=2.4.1=py313h78bf25f_0
- minizip=4.0.10=h05a5f5f_0
- mistune=3.1.4=pyhcf101f3_0
- msgpack-python=1.1.2=py313h7037e92_1
- multidict=6.7.0=py313h3dea7bd_0
- multipledispatch=0.6.0=pyhd8ed1ab_1
- munkres=1.1.4=pyhd8ed1ab_1
- muparser=2.3.5=h5888daf_0
- narwhals=2.14.0=pyhcf101f3_0
- nbclient=0.10.2=pyhd8ed1ab_0
- nbconvert-core=7.16.6=pyhcf101f3_1
- nbformat=5.10.4=pyhd8ed1ab_1
- nccl=2.28.9.1=hd557bf5_1
- ncurses=6.5=h2d0b736_3
- nest-asyncio=1.6.0=pyhd8ed1ab_1
- networkx=3.6.1=pyhcf101f3_0
- nlohmann_json=3.12.0=h54a6638_1
- nlohmann_json-abi=3.12.0=h0f90c79_1
- nodejs=24.9.0=heeeca48_0
- notebook=7.5.1=pyhcf101f3_0
- notebook-shim=0.2.4=pyhd8ed1ab_1
- numba=0.61.2=py313hd8e3f9f_2
- numba-cuda=0.19.1=pyhcf101f3_2
- numpy=2.2.6=py313h17eae1a_0
- nvidia-ml-py=12.575.51=pyhd8ed1ab_0
- nvtx=0.2.14=py313h07c4f96_0
- nx-cugraph=25.12.00=py_251211_d629d07a
- openjpeg=2.5.4=h55fea9a_0
- openssl=3.6.0=h26f9b46_0
- orc=2.2.1=hd747db4_0
- overrides=7.7.0=pyhd8ed1ab_1
- packaging=25.0=pyh29332c3_1
- pandas=2.3.3=py313h08cd8bf_2
- pandocfilters=1.5.0=pyhd8ed1ab_0
- panel=1.8.4=pyhd8ed1ab_0
- param=2.3.1=pyhc455866_0
- parso=0.8.5=pyhcf101f3_0
- partd=1.4.2=pyhd8ed1ab_0
- patsy=1.0.2=pyhcf101f3_0
- pcre2=10.46=h1321c63_0
- pexpect=4.9.0=pyhd8ed1ab_1
- pillow=12.0.0=py313hfc0919a_1
- pip=25.3=pyh145f28c_0
- platformdirs=4.5.0=pyhcf101f3_0
- pluggy=1.6.0=pyhd8ed1ab_0
- polars=1.34.0=pyh6a1acc5_0
- polars-runtime-32=1.34.0=py310hffdcd12_0
- proj=9.6.2=h18fbb6c_2
- prometheus-cpp=1.3.0=ha5d0236_0
- prometheus_client=0.23.1=pyhd8ed1ab_0
- prompt-toolkit=3.0.52=pyha770c72_0
- prompt_toolkit=3.0.52=hd8ed1ab_0
- propcache=0.3.1=py313h8060acc_0
- psutil=7.1.3=py313h54dd161_0
- pthread-stubs=0.4=hb9d3cd8_1002
- ptyprocess=0.7.0=pyhd8ed1ab_1
- pure_eval=0.2.3=pyhd8ed1ab_1
- py-cpuinfo=9.0.0=pyhd8ed1ab_1
- py-xgboost=3.1.2=rapidsai_pyh395bae7_1
- pyarrow=21.0.0=py313h78bf25f_1
- pyarrow-core=21.0.0=py313he109ebe_1_cpu
- pybind11-abi=4=hd8ed1ab_3
- pycosat=0.6.6=py313h07c4f96_3
- pycparser=2.22=pyh29332c3_1
- pyct=0.6.0=pyhd8ed1ab_0
- pygments=2.19.2=pyhd8ed1ab_0
- pylibcudf=25.12.00=cuda13_py313_251210_580975be
- pylibcugraph=25.12.02=cuda13_py313_251211_9765e20f
- pylibraft=25.12.00=cuda13_py313_251211_d226bc96
- pynvml=12.0.0=pyhd8ed1ab_0
- pyogrio=0.11.1=py313h8b61037_1
- pyparsing=3.2.5=pyhcf101f3_0
- pyproj=3.7.2=py313hcfca4fd_1
- pysocks=1.7.1=pyha55dd90_7
- pytest=8.4.2=pyhcf101f3_1
- pytest-benchmark=5.2.3=pyhd8ed1ab_0
- pytest-cov=7.0.0=pyhcf101f3_1
- pytest-xdist=3.8.0=pyhd8ed1ab_0
- python=3.13.9=hc97d973_101_cp313
- python-confluent-kafka=2.8.0=py313h536fd9c_0
- python-dateutil=2.9.0.post0=pyhe01879c_2
- python-fastjsonschema=2.21.2=pyhe01879c_0
- python-gil=3.13.11=h4df99d1_100
- python-json-logger=2.0.7=pyhd8ed1ab_0
- python-louvain=0.16=pyhd8ed1ab_1
- python-tzdata=2025.3=pyhd8ed1ab_0
- python_abi=3.13=8_cp313
- pytz=2025.2=pyhd8ed1ab_0
- pyviz_comms=3.0.6=pyhd8ed1ab_0
- pywavelets=1.9.0=py313h29aa505_2
- pyyaml=6.0.3=py313h3dea7bd_0
- pyzmq=27.1.0=py312hfb55c3c_0
- qhull=2020.2=h434a139_5
- raft-dask=25.12.00=cuda13_py313_251211_d226bc96
- rapids=25.12.00=cuda13_251211_be953127
- rapids-cli=0.1.2=py313_250529_189e5c5d
- rapids-dask-dependency=25.12.00=251210_fc4bbcd3
- rapids-logger=0.2.3=h98325ef_0
- rapids-xgboost=25.12.00=cuda13_251211_be953127
- rav1e=0.7.1=h8fae777_3
- rdma-core=60.0=hecca717_0
- re2=2025.11.05=h5301d42_0
- readline=8.2=h8c095d6_2
- referencing=0.37.0=pyhcf101f3_0
- reproc=14.2.5.post0=hb9d3cd8_0
- reproc-cpp=14.2.5.post0=h5888daf_0
- requests=2.32.5=pyhd8ed1ab_0
- rfc3339-validator=0.1.4=pyhd8ed1ab_1
- rfc3986-validator=0.1.1=pyh9f0ad1d_0
- rfc3987-syntax=1.1.0=pyhe01879c_1
- rich=14.2.0=pyhcf101f3_0
- rich-click=1.9.4=pyhd8ed1ab_0
- rmm=25.12.00=cuda13_py313_251210_86731e05
- rpds-py=0.30.0=py313h843e2db_0
- ruamel.yaml=0.18.16=py313h07c4f96_0
- ruamel.yaml.clib=0.2.14=py313h07c4f96_0
- s2n=1.5.26=h5ac9029_0
- scikit-image=0.24.0=py313ha87cce1_3
- scikit-learn=1.8.0=np2py313h16d504d_1
- scipy=1.16.3=py313h11c21cd_1
- seaborn=0.13.2=hd8ed1ab_3
- seaborn-base=0.13.2=pyhd8ed1ab_3
- send2trash=1.8.3=pyh0d859eb_1
- setuptools=80.9.0=pyhff2d567_0
- shapely=2.1.2=py313hfc84eb1_0
- simdjson=4.0.7=hb700be7_0
- simpervisor=1.0.0=pyhd8ed1ab_1
- six=1.17.0=pyhe01879c_1
- snappy=1.2.2=h03e3b7b_1
- sniffio=1.3.1=pyhd8ed1ab_2
- sortedcontainers=2.4.0=pyhd8ed1ab_1
- soupsieve=2.8=pyhd8ed1ab_0
- sparse=0.17.0=pyhcf101f3_0
- sqlite=3.51.0=heff268d_0
- stack_data=0.6.3=pyhd8ed1ab_1
- statsmodels=0.14.6=py313h29aa505_0
- streamz=0.6.4=pyhd8ed1ab_1
- svt-av1=3.1.2=hecca717_0
- tblib=3.2.2=pyhcf101f3_0
- terminado=0.18.1=pyh0d859eb_0
- threadpoolctl=3.6.0=pyhecae5ae_0
- tifffile=2025.12.12=pyhd8ed1ab_0
- tinycss2=1.5.1=pyhcf101f3_0
- tk=8.6.13=noxft_ha0e22de_103
- tomli=2.3.0=pyhcf101f3_0
- toolz=1.1.0=pyhd8ed1ab_1
- tornado=6.5.4=py313hd02dea0_0
- tqdm=4.67.1=pyhd8ed1ab_1
- traitlets=5.14.3=pyhd8ed1ab_1
- treelite=4.6.1=py313h93401c0_0
- truststore=0.10.3=pyhe01879c_0
- typing-extensions=4.15.0=h396c80c_0
- typing_extensions=4.15.0=pyhcf101f3_0
- typing_utils=0.1.0=pyhd8ed1ab_1
- tzdata=2025b=h78e105d_0
- uc-micro-py=1.0.3=pyhd8ed1ab_1
- ucx=1.19.1=h567e125_0
- ucxx=0.47.00=cuda13_py313_251210_5d6f0af3
- uri-template=1.3.0=pyhd8ed1ab_1
- uriparser=0.9.8=hac33072_0
- urllib3=2.5.0=pyhd8ed1ab_0
- wcwidth=0.2.14=pyhd8ed1ab_0
- webcolors=25.10.0=pyhd8ed1ab_0
- webencodings=0.5.1=pyhd8ed1ab_3
- websocket-client=1.9.0=pyhd8ed1ab_0
- wheel=0.45.1=pyhd8ed1ab_1
- widgetsnbextension=4.0.15=pyhd8ed1ab_0
- xarray=2025.12.0=pyhcf101f3_0
- xerces-c=3.2.5=h988505b_2
- xgboost=3.1.2=rapidsai_pyh3432f66_1
- xorg-libxau=1.0.12=hb03c661_1
- xorg-libxdmcp=1.1.5=hb03c661_1
- xyzservices=2025.11.0=pyhd8ed1ab_0
- yaml=0.2.5=h280c20c_3
- yaml-cpp=0.8.0=h3f2d84a_0
- yarl=1.22.0=py313h3dea7bd_0
- zeromq=4.3.5=h387f397_9
- zfp=1.0.1=h909a3a2_3
- zict=3.0.0=pyhd8ed1ab_1
- zipp=3.23.0=pyhcf101f3_1
- zlib=1.3.1=hb9d3cd8_2
- zlib-ng=2.2.5=hde8ca8f_1
- zstandard=0.25.0=py313h54dd161_1
- zstd=1.5.7=hb8e6e7a_2
prefix: /opt/condaOptions include some mix of:
- changing those
dependencies.yamlfiles in the relevant repos - changing the way the notebook-running environment is created here
- factoring third-party dependencies out of RAPIDS notebooks wherever they aren't adding much value
- something else
Notes
Doing nothing could be fine. The extra libraries are probably not contributing to image size or pull times THAT much.
But it'd be good to cut unnecessary things out of these images if we find the time, for the reasons mentioned above.