From 134bcc9d96ad6977368a7da1bc355e041577635c Mon Sep 17 00:00:00 2001 From: Intron7 Date: Mon, 16 Dec 2024 15:24:48 +0100 Subject: [PATCH 01/14] test --- .readthedocs.yml | 6 ++---- hatch.toml | 5 +++++ 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/.readthedocs.yml b/.readthedocs.yml index 668b1931..30b5452f 100644 --- a/.readthedocs.yml +++ b/.readthedocs.yml @@ -12,11 +12,9 @@ build: - asdf install uv latest - asdf global uv latest - # Use uv to synchronize dependencies - - uv pip install --system .[doc] + - uv sync --extra doc + - uv run -m sphinx -T -b html -d docs/_build/doctrees -D language=en docs $READTHEDOCS_OUTPUT/html - # Build documentation using sphinx - - python -m sphinx -T -b html -d docs/_build/doctrees -D language=en docs $READTHEDOCS_OUTPUT/html sphinx: configuration: docs/conf.py diff --git a/hatch.toml b/hatch.toml index 7d11867b..46538fe6 100644 --- a/hatch.toml +++ b/hatch.toml @@ -9,3 +9,8 @@ features = ["test", "rapids12"] features = ["doc"] scripts.build = "sphinx-build -M html docs docs/_build {args}" scripts.clean = "git clean -fXd docs" + +[envs.hatch-test.pip] +extra_index_urls = [ + "https://pypi.nvidia.com" +] From ae7cae4e5b9fe712c3a07d653116cf42f8b780aa Mon Sep 17 00:00:00 2001 From: Intron7 Date: Mon, 16 Dec 2024 15:26:41 +0100 Subject: [PATCH 02/14] update --- .readthedocs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.readthedocs.yml b/.readthedocs.yml index 30b5452f..c5852e2c 100644 --- a/.readthedocs.yml +++ b/.readthedocs.yml @@ -5,7 +5,7 @@ submodules: build: os: ubuntu-24.04 tools: - python: "3.12" + python: "3.11" commands: # Install and set up uv - asdf plugin add uv From 6bc95d2f90efde1610f57f40a1fb57e67e669298 Mon Sep 17 00:00:00 2001 From: Intron7 Date: Mon, 16 Dec 2024 15:29:35 +0100 Subject: [PATCH 03/14] update hatch --- hatch.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hatch.toml b/hatch.toml index 46538fe6..e3b2ce0c 100644 --- a/hatch.toml +++ b/hatch.toml @@ -10,7 +10,7 @@ features = ["doc"] scripts.build = "sphinx-build -M html docs docs/_build {args}" scripts.clean = "git clean -fXd docs" -[envs.hatch-test.pip] +[envs.default.pip] extra_index_urls = [ "https://pypi.nvidia.com" ] From 4dfdf23f891f61ff0321bc1ac2a7ac122872c9b1 Mon Sep 17 00:00:00 2001 From: Intron7 Date: Mon, 16 Dec 2024 15:31:52 +0100 Subject: [PATCH 04/14] update read the docs --- .readthedocs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.readthedocs.yml b/.readthedocs.yml index c5852e2c..5cff94ca 100644 --- a/.readthedocs.yml +++ b/.readthedocs.yml @@ -12,7 +12,7 @@ build: - asdf install uv latest - asdf global uv latest - - uv sync --extra doc + - uv sync --extra docs - uv run -m sphinx -T -b html -d docs/_build/doctrees -D language=en docs $READTHEDOCS_OUTPUT/html From 8658421d9a61d1f91457f3c0d7bfcdc82d839ab5 Mon Sep 17 00:00:00 2001 From: Intron7 Date: Mon, 16 Dec 2024 16:04:35 +0100 Subject: [PATCH 05/14] test rapids --- pyproject.toml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index acb60ac9..fca05e44 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,7 +5,7 @@ build-backend = "hatchling.build" [project] name = "rapids_singlecell" description = "running single cell analysis on Nvidia GPUs" -requires-python = ">=3.10" +requires-python = ">=3.10, <3.13" license = {file = "LICENSE"} authors = [{name = "Severin Dicks"}] readme = {file = "README.md", content-type="text/markdown"} @@ -26,8 +26,8 @@ dependencies = [ ] [project.optional-dependencies] -rapids11 = ["cupy-cuda11x","cudf-cu11==24.10.*", "cuml-cu11==24.10.*", "cugraph-cu11==24.10.*"] -rapids12 = ["cupy-cuda12x","cudf-cu12==24.10.*", "cuml-cu12==24.10.*", "cugraph-cu12==24.10.*"] +#rapids11 = ["cupy-cuda11x","cudf-cu11==24.10.*", "cuml-cu11==24.10.*", "cugraph-cu11==24.10.*"] +rapids12 = ["cupy-cuda12x","cudf-cu12==24.12.*", "cuml-cu12==24.12.*", "cugraph-cu12==24.12.*"] doc = [ "sphinx>=4.5.0", "sphinx-copybutton", From 67335608d0118d160b53394fcf8037ce1b6aaf73 Mon Sep 17 00:00:00 2001 From: Intron7 Date: Mon, 16 Dec 2024 16:12:01 +0100 Subject: [PATCH 06/14] update for rapids-24.12 --- .readthedocs.yml | 8 +++++--- pyproject.toml | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/.readthedocs.yml b/.readthedocs.yml index 5cff94ca..668b1931 100644 --- a/.readthedocs.yml +++ b/.readthedocs.yml @@ -5,16 +5,18 @@ submodules: build: os: ubuntu-24.04 tools: - python: "3.11" + python: "3.12" commands: # Install and set up uv - asdf plugin add uv - asdf install uv latest - asdf global uv latest - - uv sync --extra docs - - uv run -m sphinx -T -b html -d docs/_build/doctrees -D language=en docs $READTHEDOCS_OUTPUT/html + # Use uv to synchronize dependencies + - uv pip install --system .[doc] + # Build documentation using sphinx + - python -m sphinx -T -b html -d docs/_build/doctrees -D language=en docs $READTHEDOCS_OUTPUT/html sphinx: configuration: docs/conf.py diff --git a/pyproject.toml b/pyproject.toml index fca05e44..e32d47ed 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -26,7 +26,7 @@ dependencies = [ ] [project.optional-dependencies] -#rapids11 = ["cupy-cuda11x","cudf-cu11==24.10.*", "cuml-cu11==24.10.*", "cugraph-cu11==24.10.*"] +#rapids11 = ["cupy-cuda11x","cudf-cu11==24.12.*", "cuml-cu11==24.12.*", "cugraph-cu11==24.12.*"] rapids12 = ["cupy-cuda12x","cudf-cu12==24.12.*", "cuml-cu12==24.12.*", "cugraph-cu12==24.12.*"] doc = [ "sphinx>=4.5.0", From a1bd7f810b84f7ea5081c2de0fefa474dac6edb6 Mon Sep 17 00:00:00 2001 From: Intron7 Date: Mon, 16 Dec 2024 16:20:00 +0100 Subject: [PATCH 07/14] use python-3.12 for tests --- .github/workflows/test-gpu-dev.yml | 2 +- .github/workflows/test-gpu.yml | 2 +- pyproject.toml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test-gpu-dev.yml b/.github/workflows/test-gpu-dev.yml index b47355fa..5abaf615 100644 --- a/.github/workflows/test-gpu-dev.yml +++ b/.github/workflows/test-gpu-dev.yml @@ -42,7 +42,7 @@ jobs: - name: Install Python uses: actions/setup-python@v5 with: - python-version: "3.11" + python-version: "3.12" - name: Install UV uses: hynek/setup-cached-uv@v2 diff --git a/.github/workflows/test-gpu.yml b/.github/workflows/test-gpu.yml index f2fef56a..1ff2011c 100644 --- a/.github/workflows/test-gpu.yml +++ b/.github/workflows/test-gpu.yml @@ -42,7 +42,7 @@ jobs: - name: Install Python uses: actions/setup-python@v5 with: - python-version: "3.11" + python-version: "3.12" - name: Install UV uses: hynek/setup-cached-uv@v2 diff --git a/pyproject.toml b/pyproject.toml index e32d47ed..9a5612e8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -26,7 +26,7 @@ dependencies = [ ] [project.optional-dependencies] -#rapids11 = ["cupy-cuda11x","cudf-cu11==24.12.*", "cuml-cu11==24.12.*", "cugraph-cu11==24.12.*"] +rapids11 = ["cupy-cuda11x","cudf-cu11==24.12.*", "cuml-cu11==24.12.*", "cugraph-cu11==24.12.*"] rapids12 = ["cupy-cuda12x","cudf-cu12==24.12.*", "cuml-cu12==24.12.*", "cugraph-cu12==24.12.*"] doc = [ "sphinx>=4.5.0", From f71ebac7ffcf6a754e7b09831be2aa1318c4e4a7 Mon Sep 17 00:00:00 2001 From: Intron7 Date: Mon, 16 Dec 2024 16:33:57 +0100 Subject: [PATCH 08/14] test CI --- .github/workflows/test-gpu-dev.yml | 1 + .github/workflows/test-gpu.yml | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test-gpu-dev.yml b/.github/workflows/test-gpu-dev.yml index 5abaf615..84f76858 100644 --- a/.github/workflows/test-gpu-dev.yml +++ b/.github/workflows/test-gpu-dev.yml @@ -55,6 +55,7 @@ jobs: "scanpy @ git+https://github.com/scverse/scanpy.git" "anndata @ git+https://github.com/scverse/anndata.git" --extra-index-url=https://pypi.nvidia.com + --index-strategy unsafe-best-match - name: Run test run: pytest diff --git a/.github/workflows/test-gpu.yml b/.github/workflows/test-gpu.yml index 1ff2011c..450b361b 100644 --- a/.github/workflows/test-gpu.yml +++ b/.github/workflows/test-gpu.yml @@ -50,7 +50,7 @@ jobs: cache-dependency-path: pyproject.toml - name: Install rapids-singlecell - run: uv pip install --system -e .[test,rapids12] --extra-index-url=https://pypi.nvidia.com + run: uv pip install --system -e .[test,rapids12] --extra-index-url=https://pypi.nvidia.com --index-strategy unsafe-best-match - name: Pip list run: pip list From eb632e77adb4a92ab2c51ca7516cb7c5ee43bd85 Mon Sep 17 00:00:00 2001 From: Intron7 Date: Mon, 16 Dec 2024 16:54:28 +0100 Subject: [PATCH 09/14] add flag to install --- docs/Installation.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/Installation.md b/docs/Installation.md index bce93e67..64bc5507 100644 --- a/docs/Installation.md +++ b/docs/Installation.md @@ -21,6 +21,10 @@ pip install 'rapids-singlecell[rapids12]' --extra-index-url=https://pypi.nvidia. ``` It is important to ensure that the CUDA environment is set up correctly so that RAPIDS and Cupy can locate the necessary libraries. +```{note} +If you are using `python=3.12` with `uv`, you might need to add the `--index-strategy unsafe-best-match` flag to ensure compatibility. +``` + ## Docker We also offer a Docker container for `rapids-singlecell`. This container includes all the necessary dependencies, making it even easier to get started with `rapids-singlecell`. From 33cf94491a2876f99bbe3fe4a2a24b6d3acb3ca0 Mon Sep 17 00:00:00 2001 From: Intron7 Date: Mon, 16 Dec 2024 16:55:33 +0100 Subject: [PATCH 10/14] update install --- conda/{rsc_rapids_24.08.yml => rsc_rapids_24.12.yml} | 4 ++-- docs/Installation.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) rename conda/{rsc_rapids_24.08.yml => rsc_rapids_24.12.yml} (91%) diff --git a/conda/rsc_rapids_24.08.yml b/conda/rsc_rapids_24.12.yml similarity index 91% rename from conda/rsc_rapids_24.08.yml rename to conda/rsc_rapids_24.12.yml index 8f3b3f38..b57125df 100644 --- a/conda/rsc_rapids_24.08.yml +++ b/conda/rsc_rapids_24.12.yml @@ -5,8 +5,8 @@ channels: - conda-forge - bioconda dependencies: - - rapids=24.08 - - python=3.11 + - rapids=24.12 + - python=3.12 - cuda-version=12.5 - cudnn - cutensor diff --git a/docs/Installation.md b/docs/Installation.md index 64bc5507..cb8c5c39 100644 --- a/docs/Installation.md +++ b/docs/Installation.md @@ -2,9 +2,9 @@ ## Conda The easiest way to install *rapids-singlecell* is to use one of the *yaml* file provided in the [conda](https://github.com/scverse/rapids_singlecell/tree/main/conda) folder. These *yaml* files install everything needed to run the example notebooks and get you started. ``` -conda env create -f conda/rsc_rapids_24.06.yml #default CUDA-11.8 +conda env create -f conda/rsc_rapids_24.08.yml #default CUDA-11.8 # or -mamba env create -f conda/rsc_rapids_24.08.yml #default CUDA-12.5 +mamba env create -f conda/rsc_rapids_24.12.yml #default CUDA-12.5 ``` ## PyPI As of version 0.4.0 *rapids-singlecell* is now on PyPI. From c15ecf72addb4fe1ff35877b1f088ddf9625bf51 Mon Sep 17 00:00:00 2001 From: Intron7 Date: Mon, 16 Dec 2024 16:59:17 +0100 Subject: [PATCH 11/14] keep rapids-24.08 --- conda/{rsc_rapids_24.10.yml => rsc_rapids_24.08.yml} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename conda/{rsc_rapids_24.10.yml => rsc_rapids_24.08.yml} (95%) diff --git a/conda/rsc_rapids_24.10.yml b/conda/rsc_rapids_24.08.yml similarity index 95% rename from conda/rsc_rapids_24.10.yml rename to conda/rsc_rapids_24.08.yml index c21bf794..8f3b3f38 100644 --- a/conda/rsc_rapids_24.10.yml +++ b/conda/rsc_rapids_24.08.yml @@ -5,7 +5,7 @@ channels: - conda-forge - bioconda dependencies: - - rapids=24.10 + - rapids=24.08 - python=3.11 - cuda-version=12.5 - cudnn From 6e9b0869825949eef05be5a668121f41f875cc3b Mon Sep 17 00:00:00 2001 From: Severin Dicks <37635888+Intron7@users.noreply.github.com> Date: Mon, 16 Dec 2024 17:43:21 +0100 Subject: [PATCH 12/14] Update .github/workflows/test-gpu-dev.yml Co-authored-by: Philipp A. --- .github/workflows/test-gpu-dev.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test-gpu-dev.yml b/.github/workflows/test-gpu-dev.yml index 84f76858..2d5cd25f 100644 --- a/.github/workflows/test-gpu-dev.yml +++ b/.github/workflows/test-gpu-dev.yml @@ -55,7 +55,7 @@ jobs: "scanpy @ git+https://github.com/scverse/scanpy.git" "anndata @ git+https://github.com/scverse/anndata.git" --extra-index-url=https://pypi.nvidia.com - --index-strategy unsafe-best-match + --index-strategy=unsafe-best-match - name: Run test run: pytest From c1b35a4011e38c79c79318085dd3fd647c332a67 Mon Sep 17 00:00:00 2001 From: Severin Dicks <37635888+Intron7@users.noreply.github.com> Date: Mon, 16 Dec 2024 17:43:26 +0100 Subject: [PATCH 13/14] Update .github/workflows/test-gpu.yml Co-authored-by: Philipp A. --- .github/workflows/test-gpu.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test-gpu.yml b/.github/workflows/test-gpu.yml index 450b361b..40d0c931 100644 --- a/.github/workflows/test-gpu.yml +++ b/.github/workflows/test-gpu.yml @@ -50,7 +50,7 @@ jobs: cache-dependency-path: pyproject.toml - name: Install rapids-singlecell - run: uv pip install --system -e .[test,rapids12] --extra-index-url=https://pypi.nvidia.com --index-strategy unsafe-best-match + run: uv pip install --system -e .[test,rapids12] --extra-index-url=https://pypi.nvidia.com --index-strategy=unsafe-best-match - name: Pip list run: pip list From 247f75a584899c4b6db0198b76d6375eb16728e3 Mon Sep 17 00:00:00 2001 From: Severin Dicks <37635888+Intron7@users.noreply.github.com> Date: Mon, 16 Dec 2024 17:43:31 +0100 Subject: [PATCH 14/14] Update docs/Installation.md Co-authored-by: Philipp A. --- docs/Installation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Installation.md b/docs/Installation.md index cb8c5c39..54b01c5c 100644 --- a/docs/Installation.md +++ b/docs/Installation.md @@ -22,7 +22,7 @@ pip install 'rapids-singlecell[rapids12]' --extra-index-url=https://pypi.nvidia. It is important to ensure that the CUDA environment is set up correctly so that RAPIDS and Cupy can locate the necessary libraries. ```{note} -If you are using `python=3.12` with `uv`, you might need to add the `--index-strategy unsafe-best-match` flag to ensure compatibility. +If you are using `python=3.12` with `uv`, you might need to add the `--index-strategy=unsafe-best-match` flag to ensure compatibility. ``` ## Docker