Fix scKirby to full rworkflows standards - #9
Open
NathanSkene wants to merge 27 commits into
Open
Conversation
Phase 1: Python/Conda CI Setup - Add conda environment file (inst/conda/environment.yml) for Python/anndata - Update rworkflows.yml with Mambaforge support and GHCR Docker registry - Add write-all permissions for Docker publishing Phase 2: Dependency Fixes - Pin SeuratDisk to v0.0.0.9020 for stable installation - Add SeuratWrappers to Suggests and Remotes - Fix seurat_to_cds.R conditional loading of SeuratWrappers Phase 3: Test Coverage Expansion - Add helper-skip.R with skip conditions for optional dependencies - Add test-to_seurat.R (10 tests for all input formats) - Add test-to_se.R (8 tests including as_sce parameter) - Add test-to_anndata.R (5 tests with Python dependency skips) - Add test-ingest_data.R (7 tests for core ingestion workflow) - Add test-get_x.R (11 tests for data extraction) - Add test-get_obs.R (9 tests for observation metadata) - Add test-save_data.R (7 tests for save formats) Vignette Fixes: - Add conda environment activation in setup chunk - Fix Seurat v5 slot access using get_x() instead of @assays$RNA@counts Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Mambaforge was merged into Miniforge3 and is no longer available as a separate download. Using Miniforge3 which now includes mamba by default. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The conda-incubator/setup-miniconda action runs before checkout in the rworkflows composite action, causing environment.yml to not be found. The package already depends on echoconda which handles Python environment setup at runtime. This is more reliable than trying to configure conda in the CI workflow. Changes: - Remove miniforge_variant, environment_file, activate_environment params - Remove inst/conda/environment.yml - Revert vignette setup to simple library load Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The seurat-disk repo has no git tags, so @v0.0.0.9020 returns 404. Using default branch (master) instead. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The R anndata package has basilisk.utils compatibility issues with newer Bioconductor versions. Moving to Suggests makes Python/anndata support optional. The package can still use echoconda/reticulate for Python anndata interaction without the R anndata package. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
…ng during doc build
Add \dontrun{} wrappers to all remaining R files with examples that
use example_obj("ad") or example_obj("anndata"):
- map_data.R
- set_obs.R
- set_uns.R
- cds_to_anndata.R
- h5seurat_to_anndata.R
- list_to_anndata.R
- se_to_anndata.R
- to_anndata.R
This prevents R CMD check from loading anndata package during example
execution, which fails on platforms where basilisk.utils doesn't export
'activateEnvironment' (Bioconductor release on macOS/Windows).
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
echoconda uses basilisk which has the same activateEnvironment export issue on Bioconductor release. By moving it to Suggests: - Package installs without basilisk.utils compatibility errors - activate_conda() now gracefully handles missing echoconda - Removed @importFrom echoconda statements (not allowed for Suggests) This fixes the CI failure on macOS and Windows where basilisk.utils 1.18.1 (Bioconductor 3.20) doesn't export activateEnvironment. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Even when echoconda is in Suggests, rworkflows installs it during
rcmdcheck --as-cran testing. Since echoconda depends on basilisk
which has compatibility issues with Bioconductor 3.20 release,
this causes CI to fail on macOS and Windows.
The activate_conda() function already handles the case where
echoconda is not installed, so removing it is safe.
Users who need conda activation can install echoconda manually:
remotes::install_github('RajLabMSSM/echoconda')
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The :: operator causes R to look for the package at parse time,
even inside an if(requireNamespace()) block. This caused lazy
loading to fail with "there is no package called 'echoconda'".
Using get("func", asNamespace("pkg")) defers the lookup to runtime,
so the code only fails if echoconda is actually needed and missing.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
… dontrun
- Remove leidenbase, monocle3, SeuratWrappers from Suggests (install failures)
- Remove corresponding Remotes entries
- Use getFromNamespace() for runtime lookup of monocle3/SeuratWrappers functions
- Wrap all example_obj("cds") examples in \dontrun{}
- Change seurat_to_cds default version to "monocle" (requires fewer dependencies)
- Fix typo in to_datatable.R (ata.table -> data.table)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add HAS_MONOCLE check in vignette setup
- Wrap example_obj("cds") and CDS ingest examples in conditional
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Several branches incorrectly referenced 'obj' before it was defined, should have been 'base_obj': - data.frame - data.table - h5seurat - loom - hdf5array Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
SeuratDisk uses deprecated 'slot' argument which is defunct in Seurat v5. Wrap h5seurat examples in HAS_SEURATDISK conditional that checks for Seurat < v5. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
SeuratDisk::as.loom also uses the deprecated slot argument which is defunct in Seurat v5. Wrap all loom examples with HAS_SEURATDISK check.
Split HDF5 chunk and make disk-loading example eval=FALSE since it requires the internal HDF5 path which isn't directly accessible.
R CMD check runs @examples blocks, which was causing failures when examples used example_obj("loom"), example_obj("h5seurat"), etc. because SeuratDisk is incompatible with Seurat v5. - example_obj.R: wrap loom example - loom_to_list.R: wrap loom example - loom_to_seurat.R: wrap loom example - loom_to_scle.R: wrap loom example - loom_to_se.R: wrap loom example - h5seurat_to_seurat.R: wrap h5seurat example - get_obs.R: change example from scle to seurat (simpler fix) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
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
Test plan
🤖 Generated with Claude Code