From 742f057236d5e8a469fedb256a26cd7f145381bf Mon Sep 17 00:00:00 2001 From: lshep Date: Tue, 28 Feb 2023 07:21:29 -0500 Subject: [PATCH 01/10] Fix link --- git-version-control.Rmd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/git-version-control.Rmd b/git-version-control.Rmd index 7d55e35..58048eb 100644 --- a/git-version-control.Rmd +++ b/git-version-control.Rmd @@ -1148,7 +1148,7 @@ repository. 1. I can't access my package. - You will need to log in to the [BiocCredentials][] app. If you have + You will need to log in to the [BiocCredentials application][]. If you have not logged in before, you must first **activate** your account. There are two steps, From d3c46cb7c6209594c1c52e06b7b7b23205801c4e Mon Sep 17 00:00:00 2001 From: lshep Date: Tue, 20 Jun 2023 08:13:19 -0400 Subject: [PATCH 02/10] Fixes typo Fix #109 --- general-package-development.Rmd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/general-package-development.Rmd b/general-package-development.Rmd index affdbc2..a74c57f 100644 --- a/general-package-development.Rmd +++ b/general-package-development.Rmd @@ -27,7 +27,7 @@ Packages must also pass `BiocCheck::BiocCheckGitClone()` and [_Bioconductor_][] Best Practices. Every effort should be made to address any errors, warnings, and notes that arise during this build or check. -### ERROR, WARNGING, and NOTES {#error-warnging-and-notes} +### ERROR, WARNING, and NOTES {#error-warning-and-notes} The [_Bioconductor_][] team member assigned to review the package during the submission process will expect all ERROR, WARNINGS, and From a142fec7b39e29e82c5fd7f10b12acf1f79f46ba Mon Sep 17 00:00:00 2001 From: lshep Date: Tue, 12 Sep 2023 14:35:33 -0400 Subject: [PATCH 03/10] Update what to expect --- package-submission.Rmd | 63 +++++++++++++++++++++++++++++------------- 1 file changed, 44 insertions(+), 19 deletions(-) diff --git a/package-submission.Rmd b/package-submission.Rmd index f638054..5e1d831 100644 --- a/package-submission.Rmd +++ b/package-submission.Rmd @@ -168,6 +168,12 @@ package maintenance responsibilities. Package authors are expected to: DESCRIPTION file. This field indicates a particular web page for submitting bug reports and questions. +* Ensure the maintainer email in the DESCRIPTIONS stays accurate and + reachable. The maintainer email in the DESCRIPTION is the definitive contact + _Bioconductor_ will use. It is important to keep this email up-to-date to + ensure we can contact you if your package is failing or to notify you of any + important upcoming impactful events. If the email is not reachable your + package would be in jeopardy of removal. ## Submission @@ -244,22 +250,19 @@ use of existing data in a Bioconductor package. See development section on * A new package is initially labeled as `1. awaiting moderation`. A _Bioconductor_ team member will take a very brief look at your - package, to ensure that it is intended for _Bioconductor_. Appropriate - packages will be re-labelled `2. review in progress` and a reviewer will be - automatically assigned. Your assigned reviewer will address your concerns and - help you through the review process. The entire review process typically - takes between 2 and 6 weeks. If there is no response after 3 to 4 weeks, - package reviewers may close the issue until further updates, changes, and/or - commentary are received. + package, to ensure that it is not doing anything malicious or + inappropriate. Packages that pass this stage will be labelled + `pre-check passed`. -* If in the pre-review process there are identified larger issues with the - package, a label `3e. pending pre-review changes` or a more specific flag of - package issue will be assigned. Please address any pre-review identified - issues and comment back for the package admininstrators to re-evaluate. +* The moderator will add your package as a repository to the + git.bioconductor.org git server, copy the SSH keys from your github + account to the [BiocCredentials application][] application and the issue labelled + `pre-review`. -* Please be courteous with your package reviewers and always follow the - _Bioconductor_ [Code Of Conduct][] with correspondence. Please allow 2-3 weeks - for reviewers to assess your package. + ALL CHANGES TO YOUR PACKAGE must be pushed to the + git.bioconductor.org repository created in this step. See the [New package + workflow][] for instructions on pushing changes to your git.bioconductor.org + repository. * The package will be submitted to the _Bioconductor_ build system (BBS). The system will check out your package from GitHub and move it @@ -290,11 +293,23 @@ use of existing data in a Bioconductor package. See development section on `0.99.z` format. When accepted and released, your package's version number will be automatically incremented to 1.0.0. +* If in the pre-review process there are identified larger issues with the + package, a label `3e. pending pre-review changes` or a more specific flag of + package issue will be assigned. Please address any pre-review identified + issues and comment back for the package admininstrators to re-evaluate. + * Once your package builds and checks without errors or (avoidable) - warnings, a _Bioconductor_ team member will provide a technical - review of your package. Other _Bioconductor_ developers and users - with domain expertise are encouraged to provide additional community - commentary. Reviewers will add comments to the issue you created. + warnings, the package is assigned a reviewer. The package will be + labelled `2. Review in progress`. + +* The reviewr will provide a technical review of your package. Other + _Bioconductor_ developers and users with domain expertise are encouraged to + provide additional community commentary. Reviewers will add comments to the + issue you created. + +* Please be courteous with your package reviewers and always follow the + _Bioconductor_ [Code Of Conduct][] with correspondence. Please allow 2-3 weeks + for reviewers to assess your package. * Respond to the issues raised by the reviewers. You _must_ respond to the primary reviewer, and are strongly encouraged to consider @@ -318,6 +333,15 @@ use of existing data in a Bioconductor package. See development section on closed. All updates to your package will be through the [_Bioconductor_ Git Server][gitver]. + +Please be mindful that reviewers are volunteers and package reviews are not +the only responsibility of _Bioconductor_ team members. We like to see the +review process progress by updates from the submitter or by comments from the +reviewer within 2-3 weeks. The entire review process typically takes between 2 +and 6 weeks. If there is no response after 3 to 4 weeks, package reviewers may +close the issue until further updates, changes, and/or commentary are received. + + ## Following Acceptance {#afteraccept} Following acceptance of a package: @@ -339,7 +363,8 @@ Following acceptance of a package: [Version numbering][versioning] guidelines. If developers don't bump the version, the changes made to their package *do not propagate* to the _Bioconductor_ web site and package repository. - +* Devlopers should make sure the maintainer email in the DESCRIPTION stays + accurate and reachable. ## Additional Support {#support} From 261d877696389dcb4d88677d536e70e17ec1c7a2 Mon Sep 17 00:00:00 2001 From: lshep Date: Thu, 29 Feb 2024 10:04:17 -0500 Subject: [PATCH 04/10] strengthen wording for basilisk requirement instead of reticulate as requested by Vince --- fortran-C-python.Rmd | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/fortran-C-python.Rmd b/fortran-C-python.Rmd index 19c88bc..0329eba 100644 --- a/fortran-C-python.Rmd +++ b/fortran-C-python.Rmd @@ -26,8 +26,9 @@ working examples for many tasks: the [Rcpp Gallery][]. ## Python {#python} -The `r BiocStyle::Biocpkg("basilisk")` package is encouraged to integrate python into R packages. Alternatively -[reticulate][] may be utilized but basilisk is preferred. +The `r BiocStyle::Biocpkg("basilisk")` package is required to integrate python into R packages. While +[reticulate][] is an alternative, the developer must make a strong argument why +basilisk is not used. ## Other {#third-party-code} From 504b9b23ca0acd17bece23e2e4016933a4902263 Mon Sep 17 00:00:00 2001 From: lshep Date: Wed, 20 Nov 2024 09:13:49 -0500 Subject: [PATCH 05/10] Update System Dependency section with @vjctin suggested text --- description-file.Rmd | 3 ++- install-file.Rmd | 7 +++++-- r-code.Rmd | 36 ++++++++++++++++++++++++------------ 3 files changed, 31 insertions(+), 15 deletions(-) diff --git a/description-file.Rmd b/description-file.Rmd index 744a45e..472be7e 100644 --- a/description-file.Rmd +++ b/description-file.Rmd @@ -157,7 +157,8 @@ If the installation process is non-trivial, a top-level [`INSTALL` file](#sysdep be included to document the process. If a user facing [`README`](#readme) is included it is also recommended to document the process there; do not try to install a dependency for a user anywhere in the package (i.e. readme, r code, man pages, -vignette). You may show instructions only in unevaluated sections. +vignette). You may show instructions only in unevaluated sections. See also +[Additional files and dependencies](#rcode-sysdep) ## `biocViews` {#description-biocviews} diff --git a/install-file.Rmd b/install-file.Rmd index 7584a0e..9087d2d 100644 --- a/install-file.Rmd +++ b/install-file.Rmd @@ -3,8 +3,11 @@ An INSTALL file does not have to be included with the package. An INSTALL file is utilized for specifying external system requirements needed. It should be used in combination with the `SystemRequirements` field of the [Description -file](#description-sysdep). This file should contain installation instructions -for the required system dependency. +file](#description-sysdep). This file should provide instructions for installing +the external software on the 3 major OS that we support: Linux, Windows, and +Mac. This will not only help your users get the external software on their +machines, but it will also help us install it on the build machines if it's not +already there. Specifying this requirement does not guarantee that _Bioconductor_ will agree to install the external system requirement. It is encouraged to discuss any diff --git a/r-code.Rmd b/r-code.Rmd index 812c5a7..ca2b71e 100644 --- a/r-code.Rmd +++ b/r-code.Rmd @@ -206,20 +206,32 @@ helper functions. #### Additional files and dependencies {#rcode-sysdep} -Do NOT install anything on a users system. - -System dependencies, applications, and additionally needed packages should be -assumed already present on the user's system. - -If necessary, package maintainers should provide instructions for download and -setup, but should not execute those instructions on behalf of a -user. Complicated or additional system dependency instructions could be part of -the [README file](#readme) and/or [INSTALL file](#sysdep). All package -dependencies must actively be on CRAN or [_Bioconductor_][]. +Do NOT install anything on a users system! System dependencies, applications, +and additionally needed packages should be assumed already present on the user's +system. + +Direct calls to external commands via +system() or system2() are not ideal so should only be used when there is no +other alternative. For example, if a CRAN or Bioconductor package already +provides the functionality that you are after, you should use that instead. + +Now if your package **absolutely** must rely on external software then you +need to make sure that those requirements are listed in +the SystemRequirements field of the DESCRIPTION file of the package. These +requirements should be "reasonable" requirements, that is, trusted software +only, open source, and relatively easy to install. + +Additionally we ask that the package contains an [INSTALL file](#sysdep) (in the +top-level folder) that provides instructions for installing the external +software on the 3 major OS that we support: Linux, Windows, and Mac. This +will not only help your users get the external software on their machines, +but it will also help us install it on the build machines if it's not +already there. All system and package dependencies should be the latest publically available -version. - +version. All package dependencies must actively be on CRAN or +Bioconductor. Bioconductor will not recognize Remotes in Description and will +not install a lower version of a package or dependency. #### Namespaces {#rcode-namespaces} From c27168b655641450d0f82a846476910c1cbc2baa Mon Sep 17 00:00:00 2001 From: lshep Date: Mon, 2 Dec 2024 07:41:12 -0500 Subject: [PATCH 06/10] Fixes #128 - revert back to a downloaded file --- review-resources-and-tools.Rmd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/review-resources-and-tools.Rmd b/review-resources-and-tools.Rmd index 1d23511..3fe45ad 100644 --- a/review-resources-and-tools.Rmd +++ b/review-resources-and-tools.Rmd @@ -5,7 +5,7 @@ Reviewers may find the following links and references useful. ## Package Review checklist {.unnumbered #review-checklist} -Reviewers can download a template review checklist here . +Reviewers can download a template review checklist here . This checklist can be pasted into the relevant issue of the [New Submission Tracker][Packages Under Review], and updated as the review progresses. From 01739bdf5e3737727738d10f359486ad05617721 Mon Sep 17 00:00:00 2001 From: lshep Date: Wed, 9 Apr 2025 09:09:24 -0400 Subject: [PATCH 07/10] Add note about submitter should be maintainer --- package-submission.Rmd | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/package-submission.Rmd b/package-submission.Rmd index 3b90044..0b7d6aa 100644 --- a/package-submission.Rmd +++ b/package-submission.Rmd @@ -193,6 +193,10 @@ package maintenance responsibilities. Package authors are expected to: a dependency should be submitted first; this is generally the associated data package to a software package. +* __Note:__ The submitter of the package should also be the listed maintainer so + we may verify BiocCredentials. Additional push access to other contributors + may be granted on request. + ## Experiment Data Packages {#experPackage} Experimental data packages contain data specific to a particular From d590852492b02c257544502267ffccc70838d077 Mon Sep 17 00:00:00 2001 From: lshep Date: Mon, 9 Jun 2025 07:32:55 -0400 Subject: [PATCH 08/10] Extend end of life description --- package-end-of-life.Rmd | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/package-end-of-life.Rmd b/package-end-of-life.Rmd index 02a0cb0..4a0e99f 100644 --- a/package-end-of-life.Rmd +++ b/package-end-of-life.Rmd @@ -135,9 +135,13 @@ devel 3.3 would make the following transitions: A deprecated package can be un-deprecated and removed from the End of Life process if it is fixed before the next Bioconductor release. To have a -package un-deprecated, please contact . If a -package is already in the defunct stage; the package will mostly likely be -requested to go through the new package submission process again. +package un-deprecated, please contact ; Do not +un-deprecate a package yourself. If a package is already in the defunct stage; +the package will mostly likely be requested to go through the new package +submission process again. Pending the circumstances of removal and if a package +has been defunct and reinstated in the past, Bioconductor may refuse +re-submission. + ## 'Orphaned' packages From bf000da433420bfc02eafae88cc26005c1d2d2b3 Mon Sep 17 00:00:00 2001 From: lshep Date: Thu, 13 Nov 2025 10:09:50 -0500 Subject: [PATCH 09/10] Change package size to 10 MB --- docs/package-review-checklist.md | 1 + general-package-development.Rmd | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/package-review-checklist.md b/docs/package-review-checklist.md index 4e99a23..0d589f4 100644 --- a/docs/package-review-checklist.md +++ b/docs/package-review-checklist.md @@ -28,6 +28,7 @@ The functionality should be sufficiently documented in man pages with runnable e - [ ] `R CMD check --no-build-vignettes` within 10 minutes. - [ ] Memory requirement below 3GB. - [ ] Size of individual files <= 5MB. +- [ ] Size of tarball <= 10MB. - [ ] README file. ## The DESCRIPTION file diff --git a/general-package-development.Rmd b/general-package-development.Rmd index 01533f5..5d9e6c3 100644 --- a/general-package-development.Rmd +++ b/general-package-development.Rmd @@ -43,7 +43,7 @@ Do not use filenames that differ only in case, as not all file systems are case- ### Package size {#package-size} The source package resulting from running `R CMD build` should occupy less than -5 MB on disk. If your package includes some screenshots (e.g., in the +10 MB on disk. If your package includes some screenshots (e.g., in the vignettes), this limit can be reached quite quickly. Their size can be reduced (often as much as 70%) with lossy compression using tools such as [pngquant](https://pngquant.org/) (available as a command line utility and as a From d0b8df1a23825cc4623bac969fd07add41dfa5b7 Mon Sep 17 00:00:00 2001 From: lshep Date: Fri, 1 May 2026 12:09:49 -0400 Subject: [PATCH 10/10] Update checklist --- docs/package-review-checklist.md | 162 +++++++++++++++++++++++-------- 1 file changed, 120 insertions(+), 42 deletions(-) diff --git a/docs/package-review-checklist.md b/docs/package-review-checklist.md index 3099127..78bae4b 100644 --- a/docs/package-review-checklist.md +++ b/docs/package-review-checklist.md @@ -1,11 +1,10 @@ # Package Review Checklist {#review-checklist} -**Version 1.0.1** +**Version 2.0.0** -This checklist is intended to aid and guide the reviewer through the review -process. +This checklist is intended to aid and guide the reviewer through the review process. The individual checkboxes match the package review criteria [listed here](https://contributions.bioconductor.org/). -The package review itself (including comments) should be posted in the corresponding issue on the submission tracker. +The package review itself (including additional comments) should be posted in the corresponding issue on the submission tracker. Reviewers should be respectful and kind to the authors in the review process. Following the code of conduct is mandatory for everyone involved in the review process. @@ -21,15 +20,39 @@ The functionality should be sufficiently documented in man pages with runnable e ## General package development -- [ ] `R CMD build` without errors, warnings and notes. -- [ ] Package passes `BiocCheck::BiocCheck()`, `BiocCheck::BiocCheckGitClone()`. -- [ ] File names. -- [ ] Package size. +- [ ] `R CMD build` without errors, warnings and notes. Any not fixed should be justified. +- [ ] Package passes `BiocCheck::BiocCheck()`, `BiocCheck::BiocCheckGitClone()`. Any not fixed should be justified. +- [ ] File names. Do not use filenames that differ only in case, as not all file systems are case-sensitive. +- [ ] Package size. Size of tarball <= 10MB. - [ ] `R CMD check --no-build-vignettes` within 10 minutes. -- [ ] Memory requirement below 3GB. +- [ ] Memory requirement below 8GB. - [ ] Size of individual files <= 5MB. -- [ ] Size of tarball <= 10MB. -- [ ] README file. +- [ ] Undesirable files. System files like `.DS_Store`, `*.so`, etc. should not be included (see [.gitignore](https://contributions.bioconductor.org/gitignore.html) for a listing) + +## Important Bioconductor Features + +- [ ] `biocViews` included in the DESCRIPTION and are valid, relevant, and descriptive to the package. They should come from only 1 main category (software, data experiment, annotation, workflow) +- [ ] Contains a Vignette with executed code. + +## Common Bioconductor Methods and Classes + +- [ ] Reuse of [common Bioconductor methods and classes](https://contributions.bioconductor.org/reusebioc.html#reusebioc) when appropriate +- [ ] Indication of how package functionality can be integrated into a Bioconductor pipeline/workflow typically in vignette intro + +Example: Seurat and data.frames are not Bioconductor classes. Packages certainly +may keep this interoperability and generality but they should also be able to work +_directly_ with the equivalent Bioconductor class in this case likely a SummarizedExperiment or +SingleCellExperiment (maybe with a designed wrapper function, e.g). The majority +of documentation and runnable code should emphasize/demonstarte the interaction +with Bioconductor objects (it may be in addition to the others capabilities). + + +## README file + +Not required but often useful. If included: + +- [ ] Include Bioconductor installation instructions +- [ ] If using Rmd, installation sections should be in `eval=FALSE` ## The DESCRIPTION file @@ -38,55 +61,91 @@ Refer to the [DESCRIPTION](https://contributions.bioconductor.org/description.ht - [ ] `Package` field. - [ ] `Title` field. - [ ] `Version` field. -- [ ] `Description` field. +- [ ] `Description` field. Longer than three lines. - [ ] `Authors@R` field. -- [ ] `License` field. -- [ ] `LazyData` field. -- [ ] `Depends`, `Imports`, `Suggests`, `Enhances` fields. -- [ ] `SystemRequirements` field. +- [ ] `License` field. Bioconductor only accepts Open Source Licenses ideally from: https://www.r-project.org/Licenses/ +- [ ] `LazyData` field. Justify if `LazyData: TRUE` +- [ ] `Depends`, `Imports`, `Suggests`, `Enhances` fields. All dependencies must be on CRAN or Bioconductor +- [ ] `SystemRequirements` field. If applicable should also have INSTALL file. - [ ] `biocViews` field. - [ ] `BugReports` field. - [ ] `URL` field. -- [ ] `Video` field. -- [ ] `Collate` field. -- [ ] `BiocType` field. +- [ ] `Video` field. Optional. +- [ ] `Collate` field. Optional. +- [ ] `BiocType` field. (one of: Softare, ExperimentData, Annotation, Workflow, Book) +- [ ] `Config/Bioconductor/UnsupportedPlatforms`. Optional. If package designed NOT to work on a specific OS +- [ ] Use of Remotes is NOT allowed. All packages must be on CRAN/Bioconductor + +N.B. Authors@R: + +- [ ] Use of Authors@R should be used instead of individual Maintainer and Author +fields. While its not wrong to use Maintainer/Author, Authors@R should be +strongly encouraged. Using both Authors@R and Maintainer/Author is not allowed! + +- [ ] It is strongly encouraged to include a `fnd` entry in Authors@R with any + relevant Grant Ids to trace funding activities. Not required but encouraged. ## The NAMESPACE file -- [ ] Function names use `camelCase` or `snake_case` and do not include `.`. -- [ ] Selective imports using `importFrom` instead of *import all* with `import`. -- [ ] Individual functions/methods are exported instead of all. +- [ ] Function names use `camelCase` or `snake_case` and do not include `.`. `.` indicates hidden or S3 dispatch functions +- [ ] Selective imports using `importFrom` instead of *import all* with `import`. Except where appropriate (like class structures and extensions or heavily utilized packages) +- [ ] Individual functions/methods are exported instead of regular expression matching all. +- [ ] NAMESPACE and DESCRIPTION Depends/Imports/Suggests/Enhances consistency. +- [ ] Avoid names of packages, functions, and classes that already exist in Bioconductor infrastrure or could be easily confused ## The NEWS file -- [ ] News file in correct location and format. +- [ ] News file in correct location and format. See https://contributions.bioconductor.org/news.html ## The CITATION file -- [ ] Citation file (if present) in correct format - (`readCitationFile("inst/CITATION")` without error). - -## Package data +- [ ] Citation file (if present) in correct format (`readCitationFile("inst/CITATION")` without package being loaded). -- [ ] Included data not too large. Need for separate data package? -- [ ] Exported data and the `data/` directory has correct format, is compressed and documented. -- [ ] Raw data in `inst/extdata/` directory. Small enough to justify inclusion in package? -- [ ] If data downloaded from web: really necessary? `BiocFileCache` used? +## INSTALL file + +If applicable: + +- [ ] If Requires System Dependencies, indicates installation instructions on all platforms ## Documentation +### Vignette + - [ ] Vignette present and does describe the core functionality of the package. -- [ ] No disabled code blocks present in vignette. -- [ ] Vignette uses `BiocStyle` package for formatting. -- [ ] Vignette has an *Introduction* section. This should include motivation for inclusion to Bioconductor +- [ ] Vignette uses `BiocStyle` package for formatting. Strongly encourage rendering as html (over pdf, etc) +- [ ] Vignette has an *Introduction* section. This should include motivation for inclusion to Bioconductor and review/comparison to other packages with similar functionality or scope - [ ] Vignette has an *Installation* section. - [ ] Vignette has a table of contents. -- [ ] When relevant, vignette provides review/comparison to other packages with similar functionality or scope +- [ ] No disabled code blocks present in vignette. If included, should be minimal and justified. +- [ ] Vignette shows interaction with Bioconductor objects or how to integrate into analysis +- [ ] Ensure any hidden code blocks will not affect end user reproducibility running rendered vignette - [ ] Vignette includes `sessionInfo()`. -- [ ] The `vignettes/` directory contains only vignette file(s) and necessary static images. +- [ ] The `vignettes/` directory contains only vignette file(s) and necessary static images. Rendered products (html, pdf, etc. should not be included) + +N.B. Sweave vignettes, while not wrong, are not encouraged. Rmd or Qmd conversion should be +strongly recommended. + + +### Man Pages + - [ ] All exported functions and classes have a man page. -- [ ] Package man page present. +- [ ] Package level man page present. - [ ] All man pages have runnable examples. +- [ ] Data man pages should indicate how it was generated and relevant source/licensing if relevant + +## Package data + +### Included in package + +- [ ] Included data not too large. Need for separate data package? +- [ ] Exported data and the `data/` directory has correct format, is compressed and well documented. +- [ ] Raw data in `inst/extdata/` directory. Small enough to justify inclusion in package? Equivalent `inst/script/` file that indicates how it was generated and relevant source and licensing information + +### Downloaded from web: + +- [ ] really necessary? `BiocFileCache` or other caching mechanism used? +- [ ] check licensing of database or api utilized to ensure open source. This should be well documented in vignette/man pages if different from package license to ensure appropriate usage. +- [ ] data should NOT be hosted at individual locations. Dropbox, Github, Google Drive, etc is not allowed. Recommended hosting location: Zenodo, dryad, Institution server, directly accessed from well established location (ensembl, etc) ## Unit tests @@ -99,18 +158,24 @@ Refer to the [DESCRIPTION](https://contributions.bioconductor.org/description.ht - [ ] No warnings or errors in `BiocCheck()`. - [ ] Coding and syntax: - `vapply` instead of `sapply`. + - `seq_len` or `seq_along` over `1:n` - `TRUE`, `FALSE` instead of `T`, `F`. - numeric indices. - `is()` instead of `class()`. - - `system2` instead of `system`. + - `system2` instead of `system`. And calls are appropriate and safe. - no `set.seed()` in any internal code. - no `browser()` in any internal code. - no `<<-`. - no direct slot access with `@` or `slot()` - accessors implemented and used. - `<-` instead of `=`. - `dev.new()` instead of `x11`. - - `message()`, `warning`, `stop` instead of `cat`. No `paste0` in these - methods. + - `message()`, `warning`, `stop` instead of `cat`. No `paste0` in these methods. + - check any download/GET/curl calls. Web data should be trusted site NOT github, dropbox, google drive, etc. see data web section + - check any uses of system2 for dangerous calls (rm, unlink, etc) + - check any install calls that they are not evaluated. + - no writing to home directory or any user directory without user knowledge. `tempfile()` as default + - ensure no user setting overwrites (config, set, options, etc) that are not returned to original settings + - remove unused/commented code. Comments should be explanatory only - [ ] Re-use of classes and functionality (if appropriate). - [ ] Functional programming: no code repetition. - [ ] No excessively long functions. @@ -125,20 +190,33 @@ Refer to the [DESCRIPTION](https://contributions.bioconductor.org/description.ht ## C and Fortran code +- [ ] Recommend using Rcpp - [ ] Internal functions from R's C library used (e.g. `R_alloc`). - [ ] C function registration used (See [Registering native routines](https://cran.r-project.org/doc/manuals/R-exts.html#Registering-native-routines)). - [ ] Checks for user interruption. - [ ] `Makevars` and `Makefile` within a package. +## Python + +- [ ] Make use of basilisk or reticulate to manage python dependencies + ## Third-party code -- [ ] Inclusion of third-party code follows the [guideline](https://contributions.bioconductor.org/third-party-code.html). +- [ ] Inclusion of third-party code follows the [guideline](https://contributions.bioconductor.org/other-than-Rcode.html#third-party-code). +- [ ] Ensure licenses permits redistribution ## Shiny apps - [ ] All relevant R-code is in the main `R/` directory of the package. - [ ] Core package code **outside** of the Shiny app. +- [ ] Must still include testing + +N.B. See https://contributions.bioconductor.org/shiny.html + ## Unacceptable files -- [ ] No *unacceptable* files present (see [.gitignore](https://contributions.bioconductor.org/gitignore.html) for a listing). +- [ ] No *unacceptable* files present. (see [.gitignore](https://contributions.bioconductor.org/gitignore.html) for a listing) + + +## Additional Comments or Concerns: \ No newline at end of file