You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Fix link
* Fixes typo Fix#109
* Update what to expect
* strengthen wording for basilisk requirement instead of reticulate as requested
by Vince
* Update System Dependency section with @vjctin suggested text
* Fixes#128
- revert back to a downloaded file
* Add note about submitter should be maintainer
* Extend end of life description
* Change package size to 10 MB
* Update checklist
-[ ]`R CMD build` without errors, warnings and notes. Any not fixed should be justified.
24
+
-[ ] Package passes `BiocCheck::BiocCheck()`, `BiocCheck::BiocCheckGitClone()`. Any not fixed should be justified.
25
+
-[ ] File names. Do not use filenames that differ only in case, as not all file systems are case-sensitive.
26
+
-[ ] Package size. Size of tarball <= 10MB.
28
27
-[ ]`R CMD check --no-build-vignettes` within 10 minutes.
29
-
-[ ] Memory requirement below 3GB.
28
+
-[ ] Memory requirement below 8GB.
30
29
-[ ] Size of individual files <= 5MB.
31
-
-[ ] Size of tarball <= 10MB.
32
-
-[ ] README file.
30
+
-[ ] Undesirable files. System files like `.DS_Store`, `*.so`, etc. should not be included (see [.gitignore](https://contributions.bioconductor.org/gitignore.html) for a listing)
31
+
32
+
## Important Bioconductor Features
33
+
34
+
-[ ]`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)
35
+
-[ ] Contains a Vignette with executed code.
36
+
37
+
## Common Bioconductor Methods and Classes
38
+
39
+
-[ ] Reuse of [common Bioconductor methods and classes](https://contributions.bioconductor.org/reusebioc.html#reusebioc) when appropriate
40
+
-[ ] Indication of how package functionality can be integrated into a Bioconductor pipeline/workflow typically in vignette intro
41
+
42
+
Example: Seurat and data.frames are not Bioconductor classes. Packages certainly
43
+
may keep this interoperability and generality but they should also be able to work
44
+
_directly_ with the equivalent Bioconductor class in this case likely a SummarizedExperiment or
45
+
SingleCellExperiment (maybe with a designed wrapper function, e.g). The majority
46
+
of documentation and runnable code should emphasize/demonstarte the interaction
47
+
with Bioconductor objects (it may be in addition to the others capabilities).
48
+
49
+
50
+
## README file
51
+
52
+
Not required but often useful. If included:
53
+
54
+
-[ ] Include Bioconductor installation instructions
55
+
-[ ] If using Rmd, installation sections should be in `eval=FALSE`
33
56
34
57
## The DESCRIPTION file
35
58
@@ -38,55 +61,91 @@ Refer to the [DESCRIPTION](https://contributions.bioconductor.org/description.ht
-[ ]`Config/Bioconductor/UnsupportedPlatforms`. Optional. If package designed NOT to work on a specific OS
77
+
-[ ] Use of Remotes is NOT allowed. All packages must be on CRAN/Bioconductor
78
+
79
+
N.B. Authors@R:
80
+
81
+
-[ ] Use of Authors@R should be used instead of individual Maintainer and Author
82
+
fields. While its not wrong to use Maintainer/Author, Authors@R should be
83
+
strongly encouraged. Using both Authors@R and Maintainer/Author is not allowed!
84
+
85
+
-[ ] It is strongly encouraged to include a `fnd` entry in Authors@R with any
86
+
relevant Grant Ids to trace funding activities. Not required but encouraged.
53
87
54
88
## The NAMESPACE file
55
89
56
-
-[ ] Function names use `camelCase` or `snake_case` and do not include `.`.
57
-
-[ ] Selective imports using `importFrom` instead of *import all* with `import`.
58
-
-[ ] Individual functions/methods are exported instead of all.
90
+
-[ ] Function names use `camelCase` or `snake_case` and do not include `.`. `.` indicates hidden or S3 dispatch functions
91
+
-[ ] Selective imports using `importFrom` instead of *import all* with `import`. Except where appropriate (like class structures and extensions or heavily utilized packages)
92
+
-[ ] Individual functions/methods are exported instead of regular expression matching all.
93
+
-[ ] NAMESPACE and DESCRIPTION Depends/Imports/Suggests/Enhances consistency.
94
+
-[ ] Avoid names of packages, functions, and classes that already exist in Bioconductor infrastrure or could be easily confused
59
95
60
96
## The NEWS file
61
97
62
-
-[ ] News file in correct location and format.
98
+
-[ ] News file in correct location and format. See https://contributions.bioconductor.org/news.html
63
99
64
100
## The CITATION file
65
101
66
-
-[ ] Citation file (if present) in correct format
67
-
(`readCitationFile("inst/CITATION")` without error).
68
-
69
-
## Package data
102
+
-[ ] Citation file (if present) in correct format (`readCitationFile("inst/CITATION")` without package being loaded).
70
103
71
-
-[ ] Included data not too large. Need for separate data package?
72
-
-[ ] Exported data and the `data/` directory has correct format, is compressed and documented.
73
-
-[ ] Raw data in `inst/extdata/` directory. Small enough to justify inclusion in package?
74
-
-[ ] If data downloaded from web: really necessary? `BiocFileCache` used?
104
+
## INSTALL file
105
+
106
+
If applicable:
107
+
108
+
-[ ] If Requires System Dependencies, indicates installation instructions on all platforms
75
109
76
110
## Documentation
77
111
112
+
### Vignette
113
+
78
114
-[ ] Vignette present and does describe the core functionality of the package.
79
-
-[ ] No disabled code blocks present in vignette.
80
-
-[ ] Vignette uses `BiocStyle` package for formatting.
81
-
-[ ] Vignette has an *Introduction* section. This should include motivation for inclusion to Bioconductor
115
+
-[ ] Vignette uses `BiocStyle` package for formatting. Strongly encourage rendering as html (over pdf, etc)
116
+
-[ ] Vignette has an *Introduction* section. This should include motivation for inclusion to Bioconductor and review/comparison to other packages with similar functionality or scope
82
117
-[ ] Vignette has an *Installation* section.
83
118
-[ ] Vignette has a table of contents.
84
-
-[ ] When relevant, vignette provides review/comparison to other packages with similar functionality or scope
119
+
-[ ] No disabled code blocks present in vignette. If included, should be minimal and justified.
120
+
-[ ] Vignette shows interaction with Bioconductor objects or how to integrate into analysis
121
+
-[ ] Ensure any hidden code blocks will not affect end user reproducibility running rendered vignette
85
122
-[ ] Vignette includes `sessionInfo()`.
86
-
-[ ] The `vignettes/` directory contains only vignette file(s) and necessary static images.
123
+
-[ ] The `vignettes/` directory contains only vignette file(s) and necessary static images. Rendered products (html, pdf, etc. should not be included)
124
+
125
+
N.B. Sweave vignettes, while not wrong, are not encouraged. Rmd or Qmd conversion should be
126
+
strongly recommended.
127
+
128
+
129
+
### Man Pages
130
+
87
131
-[ ] All exported functions and classes have a man page.
88
-
-[ ] Package man page present.
132
+
-[ ] Package level man page present.
89
133
-[ ] All man pages have runnable examples.
134
+
-[ ] Data man pages should indicate how it was generated and relevant source/licensing if relevant
135
+
136
+
## Package data
137
+
138
+
### Included in package
139
+
140
+
-[ ] Included data not too large. Need for separate data package?
141
+
-[ ] Exported data and the `data/` directory has correct format, is compressed and well documented.
142
+
-[ ] 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
143
+
144
+
### Downloaded from web:
145
+
146
+
-[ ] really necessary? `BiocFileCache` or other caching mechanism used?
147
+
-[ ] 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.
148
+
-[ ] 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)
90
149
91
150
## Unit tests
92
151
@@ -99,18 +158,24 @@ Refer to the [DESCRIPTION](https://contributions.bioconductor.org/description.ht
99
158
-[ ] No warnings or errors in `BiocCheck()`.
100
159
-[ ] Coding and syntax:
101
160
-`vapply` instead of `sapply`.
161
+
-`seq_len` or `seq_along` over `1:n`
102
162
-`TRUE`, `FALSE` instead of `T`, `F`.
103
163
- numeric indices.
104
164
-`is()` instead of `class()`.
105
-
-`system2` instead of `system`.
165
+
-`system2` instead of `system`. And calls are appropriate and safe.
106
166
- no `set.seed()` in any internal code.
107
167
- no `browser()` in any internal code.
108
168
- no `<<-`.
109
169
- no direct slot access with `@` or `slot()` - accessors implemented and used.
110
170
-`<-` instead of `=`.
111
171
-`dev.new()` instead of `x11`.
112
-
-`message()`, `warning`, `stop` instead of `cat`. No `paste0` in these
113
-
methods.
172
+
-`message()`, `warning`, `stop` instead of `cat`. No `paste0` in these methods.
173
+
- check any download/GET/curl calls. Web data should be trusted site NOT github, dropbox, google drive, etc. see data web section
174
+
- check any uses of system2 for dangerous calls (rm, unlink, etc)
175
+
- check any install calls that they are not evaluated.
176
+
- no writing to home directory or any user directory without user knowledge. `tempfile()` as default
177
+
- ensure no user setting overwrites (config, set, options, etc) that are not returned to original settings
178
+
- remove unused/commented code. Comments should be explanatory only
114
179
-[ ] Re-use of classes and functionality (if appropriate).
115
180
-[ ] Functional programming: no code repetition.
116
181
-[ ] No excessively long functions.
@@ -125,20 +190,33 @@ Refer to the [DESCRIPTION](https://contributions.bioconductor.org/description.ht
125
190
126
191
## C and Fortran code
127
192
193
+
-[ ] Recommend using Rcpp
128
194
-[ ] Internal functions from R's C library used (e.g. `R_alloc`).
129
195
-[ ] C function registration used (See [Registering native routines](https://cran.r-project.org/doc/manuals/R-exts.html#Registering-native-routines)).
130
196
-[ ] Checks for user interruption.
131
197
-[ ]`Makevars` and `Makefile` within a package.
132
198
199
+
## Python
200
+
201
+
-[ ] Make use of basilisk or reticulate to manage python dependencies
202
+
133
203
## Third-party code
134
204
135
-
-[ ] Inclusion of third-party code follows the [guideline](https://contributions.bioconductor.org/third-party-code.html).
205
+
-[ ] Inclusion of third-party code follows the [guideline](https://contributions.bioconductor.org/other-than-Rcode.html#third-party-code).
206
+
-[ ] Ensure licenses permits redistribution
136
207
137
208
## Shiny apps
138
209
139
210
-[ ] All relevant R-code is in the main `R/` directory of the package.
140
211
-[ ] Core package code **outside** of the Shiny app.
212
+
-[ ] Must still include testing
213
+
214
+
N.B. See https://contributions.bioconductor.org/shiny.html
215
+
141
216
142
217
## Unacceptable files
143
218
144
-
-[ ] No *unacceptable* files present (see [.gitignore](https://contributions.bioconductor.org/gitignore.html) for a listing).
219
+
-[ ] No *unacceptable* files present. (see [.gitignore](https://contributions.bioconductor.org/gitignore.html) for a listing)
0 commit comments