From 3f3c0cc4c6e47cf24efb7f9240fb0c1f637f9d49 Mon Sep 17 00:00:00 2001 From: Intron7 Date: Sat, 21 Mar 2026 19:50:41 +0100 Subject: [PATCH 1/2] v0.15.0rc5 release prep --- .coderabbit.yaml | 19 ++++++++++++++++--- cuda_agents.md => .coderabbit/cuda_agents.md | 0 .../python_agents.md | 0 .../release-notes/{0.15.0.md => 0.15.0rc5.md} | 2 +- docs/release-notes/index.md | 2 +- 5 files changed, 18 insertions(+), 5 deletions(-) rename cuda_agents.md => .coderabbit/cuda_agents.md (100%) rename python_agents.md => .coderabbit/python_agents.md (100%) rename docs/release-notes/{0.15.0.md => 0.15.0rc5.md} (96%) diff --git a/.coderabbit.yaml b/.coderabbit.yaml index 3875e5b6..bb7db82f 100644 --- a/.coderabbit.yaml +++ b/.coderabbit.yaml @@ -7,7 +7,7 @@ reviews: collapse_walkthrough: true sequence_diagrams: false poem: false - request_changes_workflow: false + request_changes_workflow: true review_status: false auto_review: enabled: true @@ -22,6 +22,19 @@ reviews: gitleaks: enabled: true path_instructions: + - path: "src/rapids_singlecell/**" + instructions: | + For every code change, check whether the PR includes adequate test coverage in tests/. + If new functionality is added or existing behavior is changed and no tests are added or updated, flag this. + However, if a change is a pure internal optimization (e.g., replacing CuPy operations with a fused kernel, rewriting a RawKernel as nanobind C++) + and the existing tests already cover the affected behavior, new tests are not required — note this in the review. + Codecov line-coverage numbers alone are not meaningful — check that tests verify the specific behavior being changed, not just that the code path is hit. + Multi-GPU / cross-device: NEVER inline cross-device cp.asarray D2D copies with arithmetic + (e.g., `sums += cp.asarray(data["sums"])`). This fuses allocation + copy + addition and can + surface stale CUDA async errors through cudaMalloc (cudaErrorLaunchFailure), especially without + RMM pool allocation. Always split into a separate assignment first: + `dev0_sums = cp.asarray(data["sums"])` then `sums += dev0_sums`. + Sync non-blocking streams explicitly, not the null stream. - path: "src/rapids_singlecell/_cuda/**" instructions: | These are nanobind CUDA C++ kernels. Pay close attention to: @@ -60,8 +73,8 @@ knowledge_base: opt_out: false code_guidelines: filePatterns: - - "python_agents.md" - - "cuda_agents.md" + - ".coderabbit/python_agents.md" + - ".coderabbit/cuda_agents.md" - "docs/contributing.md" chat: auto_reply: true diff --git a/cuda_agents.md b/.coderabbit/cuda_agents.md similarity index 100% rename from cuda_agents.md rename to .coderabbit/cuda_agents.md diff --git a/python_agents.md b/.coderabbit/python_agents.md similarity index 100% rename from python_agents.md rename to .coderabbit/python_agents.md diff --git a/docs/release-notes/0.15.0.md b/docs/release-notes/0.15.0rc5.md similarity index 96% rename from docs/release-notes/0.15.0.md rename to docs/release-notes/0.15.0rc5.md index 95485c2e..ad2caddd 100644 --- a/docs/release-notes/0.15.0.md +++ b/docs/release-notes/0.15.0rc5.md @@ -1,4 +1,4 @@ -### 0.15.0 {small}`the-future` +### 0.15.0 {small}`2026-03-21` ```{rubric} Features ``` diff --git a/docs/release-notes/index.md b/docs/release-notes/index.md index 03e6fc25..e72bff3d 100644 --- a/docs/release-notes/index.md +++ b/docs/release-notes/index.md @@ -5,7 +5,7 @@ ## Version 0.15.0 -```{include} /release-notes/0.15.0.md +```{include} /release-notes/0.15.0rc5.md ``` ```{include} /release-notes/0.15.0rc4.md ``` From bf5e7ae9c303b1da85fc11b478449960125ba0a8 Mon Sep 17 00:00:00 2001 From: Intron7 Date: Sat, 21 Mar 2026 23:55:36 +0100 Subject: [PATCH 2/2] fix lable --- docs/release-notes/0.15.0rc5.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release-notes/0.15.0rc5.md b/docs/release-notes/0.15.0rc5.md index 8dfc189e..b9eb925c 100644 --- a/docs/release-notes/0.15.0rc5.md +++ b/docs/release-notes/0.15.0rc5.md @@ -1,4 +1,4 @@ -### 0.15.0 {small}`2026-03-21` +### 0.15.0rc5 {small}`2026-03-21` ```{rubric} Features ```