Skip to content

Commit 04c55dc

Browse files
authored
Merge branch 'Bioconductor:devel' into master
2 parents c27168b + c33689c commit 04c55dc

12 files changed

+198
-78
lines changed

_output.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
bookdown::bs4_book:
2+
includes:
3+
in_header: "includes/header.html"
24
theme:
35
primary: "#00758a"
46
yellow: "#804600"

description-file.Rmd

Lines changed: 28 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -67,10 +67,32 @@ The license field should preferably refer to a standard license (see
6767
standard specifications. <i class="fab fa-r-project"></i> ships with the
6868
following [standard licenses][R License]
6969

70-
Be specific about any version that applies (e.g., `GPL-2`).
71-
Licenses restricting use, e.g., to academic or non-profit researchers, are not
72-
suitable for [_Bioconductor_][]. Core Bioconductor packages are typically
73-
licensed under `Artistic-2.0`.
70+
Be specific about any version that applies (e.g., `GPL-2`). Licenses restricting
71+
use, e.g., to academic or non-profit researchers, are not suitable for
72+
[_Bioconductor_][] as they limit accessibility, hinder integration with other
73+
open-source projects, and create barriers to collaboration and reproducibility.
74+
Examples of such restrictive licenses include (but are not limited to):
75+
76+
* `CC BY-NC 4.0` (Attribution-NonCommercial 4.0 International)
77+
* `CC BY-NC-SA 4.0` (Attribution-NonCommercial-ShareAlike 4.0 International)
78+
* `CC BY-NC-ND 4.0` (Attribution-NonCommercial-NoDerivatives 4.0 International)
79+
* `ACM` (Association for Computing Machinery)
80+
81+
These licenses restrict commercial use, modifications, or redistribution, making
82+
them incompatible with Bioconductor's goals of open and broad accessibility.
83+
84+
<p><details>
85+
<summary> Click to see a list of licenses that restrict use </summary>
86+
87+
```{r}
88+
license_db_path <- file.path(R.home("share"), "licenses", "license.db")
89+
license_db <- as.data.frame(read.dcf(license_db_path))
90+
subset(license_db, Restricts_use == "yes")
91+
```
92+
93+
</details></p>
94+
95+
Core Bioconductor packages are typically licensed under `Artistic-2.0`.
7496

7597
To specify a non-standard license, include a file named `LICENSE` in your
7698
package (containing the full terms of your license) and use the string `file
@@ -120,7 +142,7 @@ guidelines:
120142
field of `GenomicAlignments`.
121143
It is unusual for more than three packages to be listed as `Depends:`.
122144
- `Suggests:` is for packages used in vignettes, examples, and in conditional
123-
code.Commonly, annotation and experiment packages (e.g., `TxDb*`) used in
145+
code. Commonly, annotation and experiment packages (e.g., `TxDb*`) used in
124146
vignette and example code are included in this field thus avoiding a costly
125147
download. In the case where an external one-off function is required for
126148
package code, the package availability and usage can be done via:
@@ -172,7 +194,7 @@ package type (i.e., `Software`, `AnnotationData`, `ExperimentData`, or
172194
The field name "biocViews" is case-sensitive and must begin with a lower-case
173195
'b'. Please use a single line with biocViews seperated by commas
174196

175-
(i.e,`biocViews: GeneTarget, SingleCell`).
197+
(i.e,`biocViews: GeneTarget, SingleCell`).
176198

177199
## `BugReports` {#description-bugreport}
178200

documentation.Rmd

Lines changed: 30 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -25,21 +25,21 @@ it is always possible to extend existing classes.
2525

2626
A vignette demonstrates how to accomplish non-trivial tasks embodying the core
2727
functionality of your package. There are two common types of vignettes.
28-
29-
* (Recommended) An *R markdown* vignette is similar to a *Sweave* vignette, but uses
30-
[markdown](http://daringfireball.net/projects/markdown/) instead of $\LaTeX$
31-
for structuring text sections and resulting in HTML output. The `r
32-
BiocStyle::CRANpkg("knitr")` package can process most *Sweave* and all *R
28+
29+
* (Recommended) An *R markdown* vignette is similar to a *Sweave* vignette, but
30+
uses [markdown](http://daringfireball.net/projects/markdown/) instead of
31+
$\LaTeX$ for structuring text sections and resulting in HTML output. The
32+
`r BiocStyle::CRANpkg("knitr")` package can process most *Sweave* and all *R
3333
markdown* vignettes, producing pleasing output. Refer to [Writing package
34-
vignettes][CRAN vigs] for technical details. See the `r
35-
BiocStyle::Biocpkg("BiocStyle")` package for a convenient way to use common
34+
vignettes][CRAN vigs] for technical details. See the
35+
`r BiocStyle::Biocpkg("BiocStyle")` package for a convenient way to use common
3636
macros and a standard _Bioconductor_ style vignette.
3737

3838
* A *Sweave* vignette is an `.Rnw` file that contains $\LaTeX$ and chunks of <i
3939
class="fab fa-r-project"></i> code. The code chunk starts with a line
4040
`<<>>=`, and ends with `@`. Each chunk is evaluated during `R CMD build`,
4141
prior to $\LaTeX$ compilation to a PDF document.
42-
42+
4343
A vignette provides reproducibility: the vignette produces the same results as
4444
copying the corresponding commands into an <i class="fab fa-r-project"></i>
4545
session. It is therefore **essential** that the vignette embed executed <i
@@ -103,7 +103,7 @@ Add an "Installation" section that show to users how to download and load the
103103
package from Bioconductor.
104104

105105
These instructions and any installations instructions should be in an
106-
`eval=FALSE` code chunk. No where in the code (<i class="fab fa-r-project"></i>
106+
`eval=FALSE` code chunk. Nowhere in the code (<i class="fab fa-r-project"></i>
107107
code, man pages, vignettes, Rmd files) should someone try to install or download
108108
system dependencies, applications, packages, etc. Developers can provide
109109
instructions to follow in unevaluated code chunks, and should assume all
@@ -173,20 +173,34 @@ If this option is used it will also be preferable to use `donttest` instead of
173173
`dontrun`; `donttest` requires valid <i class="fab fa-r-project"></i> code while
174174
`dontrun` does not.
175175

176-
## The `inst/script/` directory {#doc-inst-script}
176+
## The `inst/scripts/` directory {#doc-inst-scripts}
177177

178178
The scripts in this directory can vary.
179179

180180
Most importantly if data was included in the `inst/extdata/` directory, a
181-
related script must be present in this directory documenting very clearly how
182-
the data was generated and source information.
181+
related script must be present in this directory clearly documenting how the
182+
data was obtained and prepared.
183+
184+
It should include any source URLs and information regarding filtering or
185+
pre-processing.
186+
187+
It can be executable code, sudo code, or even a text description.
188+
189+
Users should be able to download and roughly reproduce the data file or object
190+
in `inst/extdata/`.
191+
192+
## The `data-raw` directory {#doc-data-raw}
183193

184-
It should include source URLs and any key information regarding filtering or processing.
194+
Although the preferred location is `inst/scripts`, the `data-raw` directory may
195+
be used instead to store scripts that generated data files or objects. Note
196+
that one potential disadvantage of using the `data-raw` directory is that the
197+
scripts are not included in the package installation folder (for users to
198+
inspect).
185199

186-
It can be executable code, sudo code, or a text description.
200+
For more details, see the `Data` chapter in Hadley Wickham's
201+
[R Packages][r-pkgs].
187202

188-
Users should be able to download and be able to roughly reproduce the file or
189-
object that is present as data.
203+
[r-pkgs]: https://r-pkgs.org/data.html
190204

191205
## Other {#other-doc}
192206

fortran-C-python.Rmd

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,20 @@ working examples for many tasks: the [Rcpp Gallery][].
2626

2727
## Python {#python}
2828

29-
The `r BiocStyle::Biocpkg("basilisk")` package is required to integrate python into R packages. While
30-
[reticulate][] is an alternative, the developer must make a strong argument why
31-
basilisk is not used.
29+
The `r BiocStyle::Biocpkg("basilisk")` package uses `conda` to configure an
30+
appropriate Python environment on the user's machine. It is strongly
31+
recommended if the routine operation of a Bioconductor package relies on
32+
Python, as users should not be asked to manually install Python packages.
33+
34+
The use of [reticulate][] for the R/Python interaction is left to the
35+
discretion of the developer.
36+
37+
## CMake {#cmake}
38+
39+
The `r BiocStyle::Biocpkg("biocmake")` package guarantees that a certain
40+
minimal version of CMake is available on the user machine, either by using an
41+
existing CMake installation or by installing its own from the official website.
42+
This should be used whenever a package relies on CMake during its build.
3243

3344
## Other {#third-party-code}
3445

git-version-control.Rmd

Lines changed: 34 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -510,16 +510,16 @@ repository for the package.
510510
1. The package with the changes should be available in your local _R_
511511
installation.
512512
513-
## Scenarios for code update:
514-
515-
- [Pull upstream changes][], e.g., introduced by the core team.
516-
- [Push to GitHub and _Bioconductor_][] repositories.
517-
- [Resolve merge conflicts][mergeconflict].
518-
- [Abandon changes][].
519-
- [Fix bugs in devel and release][].
513+
## Scenarios for code update
514+
515+
- [Pull upstream changes][] (e.g., introduced by the core team)
516+
- [Push to GitHub and _Bioconductor_][] repositories
517+
- [Resolve merge conflicts][mergeconflict]
518+
- [Abandon changes][]
519+
- [Fix bugs in devel and release][]
520+
- [Bug fixes due to API changes][]
520521
- [Resolve duplicate commits][]
521522
522-
523523
### Pull upstream changes
524524
525525
__Goal:__ Your _Bioconductor_ repository has been updated by the core
@@ -894,6 +894,32 @@ git branch and in the current release branch (e.g., `RELEASE_3_14`).
894894
895895
<iframe width="568" height="315" src="https://www.loom.com/embed/37525f9ddf434c91b11e8112db46818b" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>
896896
897+
### Bug fixes due to API changes {#bug-fixes-due-to-api-changes}
898+
899+
Packages that make use of web APIs will need to be updated when there are
900+
significant API changes. This is a common occurrence with Bioconductor packages
901+
that use REST APIs, e.g., `UniProt.ws`, `AnVIL`, etc. To provide a smooth
902+
experience for users, it is important to update the package as soon as possible.
903+
904+
#### Minor API changes
905+
906+
The steps to apply bug fixes due to API changes are similar to the steps for
907+
fixing bugs in the `devel` and `release` branches. The main difference is that
908+
the bug may be due to minor API issues, certificate issues, API version issues,
909+
etc. The maintainer can readily update the R package to adapt to the new API.
910+
Note that the functionality of the package largely remains the same.
911+
912+
#### Major API changes
913+
914+
It may be possible that an organization's API changes are not backwards
915+
compatible and that they do not provide the same functionality for the existing
916+
Bioconductor package to remain functional. In such case, it is recommended to
917+
contact the organization that maintains the API to get more information about
918+
the changes and to request a backward compatible API, if possible. When API
919+
changes do not provide a similar functionality to that of the R package, the
920+
package maintainer may need to submit a new package that works with the new API
921+
and to deprecate the old package.
922+
897923
### Resolve Duplicate Commits
898924
899925
__Goal:__ You want to get rid of the duplicate (or triplicate) commits

important-bioc-features.Rmd

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,8 @@ searching in [biocViews][] for your data type.
112112
`r BiocStyle::Biocpkg("MultiAssayExperiment")` `::MultiAssayExperiment()`
113113
+ Single cell data --
114114
`r BiocStyle::Biocpkg("SingleCellExperiment")` `::SingleCellExperiment()`
115+
+ Spatial transcriptomics data --
116+
`r BiocStyle::Biocpkg("SpatialExperiment")` `::SpatialExperiment()`
115117
+ Mass spec data -- `r BiocStyle::Biocpkg("Spectra")` `::Spectra()`
116118
+ File formats -- `r BiocStyle::Biocpkg("BiocIO")` `` ::`BiocFile-class` ``
117119

includes/header.html

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<head>
2+
<link rel="stylesheet"
3+
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css"
4+
integrity="sha512-9usAa10IRO0HhonpyAIVpjrylPvoDwiPUiKdWk5t3PyolY1cOd4DSE0Ga+ri4AuTroPR5aQvXU9xC6qOPnzFeg=="
5+
crossorigin="anonymous"
6+
referrerpolicy="no-referrer"
7+
/>
8+
</head>

non-software-packages.Rmd

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ expected the majority of vignette code chunks are evaluated.
5858
* Write a package with the same name as the workflow. The workflow vignette
5959
written in Markdown, using the [rmarkdown][] package should be included in the
6060
vignette directory. You may include more than one vignette but please use
61-
useful identifying names.
61+
useful identifying names.
6262

6363
* The package does not need man/ or R/ directories nor a data/ directory as
6464
ideally workflows make use of existing data in a Bioconductor repository or on
@@ -72,7 +72,7 @@ expected the majority of vignette code chunks are evaluated.
7272

7373
* Submit the package to the [GitHub submission tracker][tracker] for a formal
7474
review. Please also indicate in the tracker issue that this package is a
75-
workflow.
75+
workflow.
7676

7777
* Workflows are git version controlled. Once the package is accepted it will be
7878
added to our git repository at git@git.bioconductor.org and instructions will
@@ -91,13 +91,13 @@ expected the majority of vignette code chunks are evaluated.
9191
BiocStyle::html_document
9292
```
9393

94-
* The following should also be include
94+
* The following should also be included
9595

9696
- author affiliations
9797
- a date representing when the workflow vignette has been modified
9898

9999
* The first section should have some versioning information. The R version,
100-
Bioconductor version, and package version should be visible.
100+
Bioconductor version, and package version should be visible.
101101
The following is an example of how this could be achieved:
102102

103103
<pre>
@@ -123,14 +123,14 @@ The following is taken as an example header from the variants workflow package:
123123
<code>
124124
&ndash; &ndash; &ndash;
125125
title&#58; Annotating Genomic Variants
126-
author&#58;
126+
author&#58;
127127
&ndash;name&#58; Valerie Obenchain
128128
affiliation&#58; Fred Hutchinson Cancer Research Center, 1100 Fairview Ave. N., P.O. Box 19024, Seattle, WA, USA 98109&ndash;1024
129129
date&#58; 11 April 2018
130130
vignette&#58; &#62;
131131
&#37;&#92;VignetteIndexEntry&#123;Annotating Genomic Variants&#125;
132132
&#37;&#92;VignetteEngine&#123;knitr&#58;&#58;rmarkdown&#125;
133-
output&#58;
133+
output&#58;
134134
BiocStyle&#58;&#58;html&#95;document
135135
&ndash; &ndash; &ndash;
136136

package-data.Rmd

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,8 +83,9 @@ another package or the hubs as previously stated.
8383

8484
However, if this is not applicable, raw data files should be included in the
8585
`inst/extdata` directory. Files of these type are often accessed utilizing
86-
`system.file()`. _Bioconductor_ requires documentation on these files in an
87-
`inst/script/` directory. See [data documentation](#doc-inst-script).
86+
`system.file()`. _Bioconductor_ requires documentation of these files in either
87+
`inst/scripts/` (preferred) or `data-raw` directory. See
88+
[inst/scripts](#doc-inst-scripts) and [data-raw](#doc-data-raw) documentation.
8889

8990
### Internal data
9091

package-submission.Rmd

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@ package maintenance responsibilities. Package authors are expected to:
168168
DESCRIPTION file. This field indicates a particular web page for submitting
169169
bug reports and questions.
170170

171-
* Ensure the maintainer email in the DESCRIPTIONS stays accurate and
171+
* Ensure the maintainer email in the DESCRIPTION stays accurate and
172172
reachable. The maintainer email in the DESCRIPTION is the definitive contact
173173
_Bioconductor_ will use. It is important to keep this email up-to-date to
174174
ensure we can contact you if your package is failing or to notify you of any
@@ -257,7 +257,7 @@ use of existing data in a Bioconductor package. See development section on
257257
* The moderator will add your package as a repository to the
258258
git.bioconductor.org git server, copy the SSH keys from your github
259259
account to the [BiocCredentials application][] application and the issue labelled
260-
`pre-review`.
260+
`pre-review`.
261261

262262
ALL CHANGES TO YOUR PACKAGE must be pushed to the
263263
git.bioconductor.org repository created in this step. See the [New package

0 commit comments

Comments
 (0)