Skip to content

Bioconductor submission pre-review #275

@lazappi

Description

@lazappi

This is a pre-review of the package to make the submission process smoother.
We should try to address as many of these as possible before submitting.
It might make sense to create sub-issues for some of these that are bigger tasks and/or need discussion.
Try to keep this checklist up to date as we fix things.

Review

Key: 🚨 Required ⚠️ Recommended 🟢 Optional ❓ Question

My comments/suggestions/explanations are in italics

General package development

  • 🚨 Fix the NOTEs from R CMD build

    WARNING: Added dependency on R >= 4.1.0 because package code uses the
     pipe |> or function shorthand \(...) syntax added in R 4.1.0.
     File(s) using such syntax:
       ‘Seurat.R’ ‘SingleCellExperiment.R’
    checking for unstated dependencies in vignettes ... NOTE
      'library' or 'require' calls not declared from:
        ‘dplyr’ ‘rprojroot’ ‘stringr’ ‘tibble’ ‘tidyr’
    
  • ⚠️ Fix NOTEs and WARNINGs from BiocCheck::BiocCheck(new-package = TRUE)

    ℹ NOTE: Update R version dependency from 4.0.0 to 4.5.0
    ! WARNING: No Bioconductor dependencies detected. Note that some infrastructure packages may not have Bioconductor dependencies. For more information, reach out to the Bioconductor community and/or consider a CRAN submission.
    ℹ NOTE: 'sessionInfo' not found in vignette(s)
    ℹ NOTE: Avoid sapply(); use vapply()
    ℹ NOTE: Avoid 'cat' and 'print' outside of 'show' methods
    ! WARNING: .Deprecated / .Defunct usage (found 5 times)
    ℹ NOTE: Use accessors; don't access S4 class slots via '@' in examples/vignettes.
    ℹ NOTE: Avoid 'suppressWarnings'/'*Messages' if possible (found 3 times)
    ℹ NOTE: The recommended function length is 50 lines or less. There are 14 functions greater than 50 lines.
    ℹ NOTE: Usage of dontrun / donttest tags found in man page examples. 7% of man pages use at least one of these tags.
    ℹ NOTE: Use donttest instead of dontrun.
    ℹ NOTE: Consider shorter lines; 273 lines (4%) are > 80 characters long.
    ℹ NOTE: Consider multiples of 4 spaces for line indents; 2342 lines (31%) are not.
    ℹ NOTE: Cannot determine whether maintainer is subscribed to the Bioc-Devel mailing list (requires admin credentials). Subscribe here: https://stat.ethz.ch/mailman/listinfo/bioc-devel
    
  • 🚨 Fix ERROR from BiocCheck::BiocCheckGitClone()

    ✖ ERROR: System files found that should not be Git tracked.
    • anndataR.Rproj
    ℹ NOTE: (Optional) CITATION file not found. Only include a CITATION file if there is a preprint or publication for this Bioconductor package.
    

DESCRIPTION file

  • 🚨 Should depend on the version of R used for the next release (R>=4.5.0)

  • ⚠️ Currently there are no Bioconductor packages in the Imports field

    This should be ok because we make extensive use of {SingleCellExperiment} through Suggests. We could be asked to use {rhdf5} rather than {hdf5r} though.

  • 🚨 Dependencies used in vignettes should be added to Suggests

NAMESPACE file

  • 🚨 Function names use camelCase or snake_case and do not include .

    We do have a mix of camelCase and snake_case but only for class names so I think that should be fine

The NEWS file

  • 🚨 The NEWS file should be kept up to date

    For other packages I keep a summary of changes for each release (or submission in this case) and a more detailed changelog somewhere else. There are a few ways to do this if we want to.

Documentation

README

  • 🚨 The README file should include Bioconductor installation instructions

Vignette

  • 🚨 The main vignette should have an Introduction section

    • 🚨 Include motivation for inclusion in Bioconductor
    • 🚨 Includes comparison to similar packages (if applicable)
  • 🚨 The main vignette should have an Installation section

    • 🚨 Include Bioconductor installation instructions
  • 🚨 Describe the core functionality of the package

    I think we already do a great job of this, just making a note that we should check/update the vignettes before submitting

  • 🚨 Some vignettes need to add a sessionInfo() chunk

  • ⚠️ The vignettes/ directory should contain only vignette file(s), bibtex files and necessary static images

    There is some code here to create the architecture diagram. I think it should be fine but making a note that a reviewer might bring it up.

Code

R

  • 🚨 Use vapply instead of sapply

  • 🚨 Use accessors instead of @ or slot() (where possible)

    There was a note about this so we should check, probably in the Seurat stuff

  • 🚨 Use message(), warning(), stop() instead of cat()

    There is a note about this but I think it is in the print methods for the R6 classes. It's probably a false positive but we should check.

  • 🟢 Split up long functions where it makes sense to do so

    There are a few functions that are a bit long, I don't think it will be an issue but we should check to see if it makes sense to restructure anything

  • 🟢 Consider adding validity checks for function arguments

    We have some of these but we could look at adding more and/or standardising them

  • ⚠️ Check if for loops can be replaced

    Most of these make sense but there could be a couple we can replace

  • ⚠️ Remove deprecated code

    There is a warning about deprecated code. We can probably argue for why this should be kept for the next release cycle.

Additional files

  • 🚨 The .Rproj file should be removed from Git

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions