Skip to content

Commit d2c5187

Browse files
authored
Merge branch 'Bioconductor:devel' into master
2 parents 3523f0d + 6a84475 commit d2c5187

File tree

5 files changed

+112
-24
lines changed

5 files changed

+112
-24
lines changed

_bookdown.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ rmd_files: ["index.Rmd",
3939
"volunteer-to-review.Rmd",
4040
"appendix.Rmd",
4141
"devel-branch.Rmd",
42-
"long-tests.Rmd",
42+
"advanced-build-options.Rmd",
4343
"web-query.Rmd",
4444
"c-and-fortran.Rmd",
4545
"mavericks.Rmd",

long-tests.Rmd renamed to advanced-build-options.Rmd

Lines changed: 42 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,25 @@
1-
# Long Tests
1+
# Advanced Build Options
22

3-
## What are they
3+
An optional `.BBSoptions` file at the package root can alter the default
4+
build behavior, such as excluding a package from unsupported platform or
5+
including a package in an optional build.
6+
7+
## Skipping builds on unsupported platforms
8+
9+
In the `.BBSoptions` file, add the line `UnsupportedPlatforms:` with the
10+
platform--`win`, `win64`, or `mac`--or the name of a build node. For example
11+
12+
UnsupportedPlatforms: win64, kjohnson3
13+
14+
## Optional builds: long tests and GPU builds
15+
16+
Two optional builds are available to software packages: long tests and GPU
17+
builds. Maintainers can opt their packages in to these builds using the
18+
`.BBSoptions` file.
19+
20+
### Long tests
21+
22+
#### What are they
423

524
Code in the `tests` subdirectory of all Bioconductor software
625
packages is run by `R CMD check` on a daily basis as part of
@@ -12,7 +31,7 @@ Package developers who wish to implement `tests` that will be too long
1231
to run in the context of the nightly builds can set up "long tests" in
1332
their package and add the package to the Bioconductor _Long Tests builds_.
1433

15-
## Setup
34+
#### Setup
1635

1736
4 steps:
1837

@@ -39,7 +58,7 @@ Note that we also run the _Long Tests builds_ for the current release
3958
branch once a week (every Saturday). The latest report for these builds
4059
is [here][release-LongTests-report].
4160

42-
## "Short tests" vs "long tests"
61+
#### "Short tests" vs "long tests"
4362

4463
The _Long Tests_ setup forces developers to split the testing code
4564
in their package between "short tests" and "long tests". The former go in
@@ -54,8 +73,25 @@ prevent a package from propagating after a version bump. In other words,
5473
even if a package is included in the _Long Tests builds_, propagation
5574
is still determined by the results of the nightly builds.
5675

76+
### GPU builds
77+
78+
If a package needs a GPU to properly build it should be added to the
79+
[GPU builds][devel-GPU-report], which build and check packages on GPU machines.
80+
In the `.BBSoptions` file, maintainers should set `GPU_reliance` term to
81+
`required`:
82+
83+
```
84+
GPU_reliance: required
85+
```
86+
87+
If a package supports GPUs if available, maintainers may opt in to the build
88+
by setting the `GPU_reliance` term set to `optional:
89+
90+
```
91+
GPU_reliance: optional
92+
```
93+
5794
## Need help?
5895

5996
Ask on the [bioc-devel][bioc-devel-mail] mailing list if you have questions or
60-
need help with the _Long Tests builds_.
61-
97+
need help.

documentation.Rmd

Lines changed: 32 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -62,10 +62,13 @@ All packages are required to have at least one Rmd, qmd, or Rnw vignette.
6262
Vignettes go in the `vignettes/` directory of the package. Vignettes are often
6363
used as standalone documents, so best practices are to include an informative
6464
title, the primary author of the vignette, the last modification date of the
65-
vignette, and a link to the package landing page. We encourage the use of
66-
`r BiocStyle::Biocpkg("BiocStyle")` with `html_document` as the rendering
67-
function. For example, in an R Markdown vignette one can use the following
68-
specification in the yaml front matter:
65+
vignette, and a link to the package landing page.
66+
67+
### RMarkdown vignettes
68+
69+
We encourage the use of `r BiocStyle::Biocpkg("BiocStyle")` with the
70+
`html_document` rendering function. For example, in an R Markdown vignette one
71+
can use the following specification in the yaml front matter:
6972

7073
```yaml
7174
output:
@@ -91,6 +94,31 @@ vignette: >
9194
%\VignetteEncoding{UTF-8}
9295
```
9396

97+
### Quarto vignettes
98+
99+
More recently, `quarto` vignettes have been introduced as a new format for
100+
vignettes. Quarto vignettes are similar to R Markdown but offer more advanced
101+
features, flexibility, and multi-language support. The yaml front matter for a
102+
Quarto vignette is similar to R Markdown, but it uses `quarto::html` as the
103+
rendering function. For example, in a Quarto vignette one can use the following
104+
specification in the yaml front matter:
105+
106+
```yaml
107+
vignette: >
108+
%\VignetteEngine{quarto::html}
109+
%\VignetteIndexEntry{1. Quick Start: An Introduction}
110+
%\VignetteEncoding{UTF-8}
111+
```
112+
113+
In addition to the yaml front matter, vignette authors must ensure that the
114+
`quarto` command line tool is listed as a `SystemRequirements` in the
115+
`DESCRIPTION` file, as well as, indicate that the `VignetteBuilder` is set to
116+
`quarto` in the `DESCRIPTION` file:
117+
118+
```r
119+
VignetteBuilder: quarto
120+
```
121+
94122
Some best practices and requirements for writing _Bioconductor_ vignettes are
95123
detailed in the following sections.
96124

git-version-control.Rmd

Lines changed: 34 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -832,7 +832,7 @@ git branch and in the current release branch (e.g., `RELEASE_3_14`).
832832
Bump the version of the package by editing the `Version` field in the
833833
`DESCRIPTION` and commit the change __in a separate commit__. This allows to
834834
only `cherry-pick` the bug correction and avoid version number conflicts with
835-
the Bioconductor branches when/if the bug fixes are ported to release.
835+
the Bioconductor branches when/if the bug fixes are ported to release.
836836
837837
## after version bump
838838
git add DESCRIPTION
@@ -1073,13 +1073,13 @@ You also must remove them from the git tree (the repository history), or else
10731073
your repository will remain large.
10741074
10751075
There are a few ways to remove large files from a git history. Here, we'll
1076-
outline two options: 1) `git filter-repo`, and 2) the BFG repo cleaner.
1076+
outline two options: 1) `git filter-repo`, and 2) the BFG repo cleaner.
10771077
These steps should be run on your local copy and (if necessary) pushed to your
10781078
own github repository.
10791079
10801080
#### Removing Large Files from History with filter-repo
10811081
1082-
As of 2023, the recommended way is to first locate any large files, and
1082+
As of 2023, the recommended way is to first locate any large files, and
10831083
then remove them with `git filter-repo`.
10841084
10851085
1. Identify large files using [this git rev-list script](
@@ -1099,38 +1099,60 @@ history, in order of file size. Use this to identify the names of files to remov
10991099
11001100
2. Remove them with [filter-repo](https://github.com/newren/git-filter-repo).
11011101
1102-
This is a separate tool that you'll have to install
1102+
This is a separate tool that you'll have to install
11031103
(with *e.g.* `pip3 install git-filter-repo`). Then, you can rewrite your repository
1104-
history to remove files like this, where `<file-glob>` identifies your files:
1104+
history to remove files. Here are a few examples:
1105+
1106+
* To remove a specific file:
1107+
1108+
```
1109+
git filter-repo --path path/to/your/large_file --invert-paths
1110+
```
1111+
1112+
* To remove a folder:
11051113
11061114
```
1107-
git filter-repo --path-glob '<file-glob>' --invert-paths
1115+
git filter-repo --path path/to/your/folder/ --invert-paths
11081116
```
11091117
1110-
For example, to remove all `.RData` files, you could use:
1118+
* To remove all files of a certain type (e.g. `.RData`):
11111119
11121120
```
11131121
git filter-repo --path-glob '*.RData' --invert-paths
11141122
```
11151123
1116-
This command may reset your remotes. Check with `git remote` and
1124+
* To remove all files larger than a certain size (e.g. 50MB):
1125+
1126+
```
1127+
git filter-repo --strip-blobs-bigger-than 50M
1128+
```
1129+
1130+
3. Final steps.
1131+
1132+
This command may reset your remotes. Check with `git remote -v` and
11171133
if needed, you can add remotes back in using something like this:
11181134
11191135
```
11201136
git remote add origin [email protected]:<username>/<repo_name>
11211137
git push --set-upstream origin devel --force
11221138
```
11231139
1124-
Finally, we have to push with `--mirror` to reset the remote.
1140+
Finally, we have to push with `--mirror` to reset the remote. This will update
1141+
your remote repository on GitHub.
11251142
11261143
```
11271144
git push --force --mirror
11281145
```
11291146
1130-
Now, just notify everyone that they'll have to re-clone the new repository, since
1147+
Now, just notify everyone that they'll have to re-clone the new repository, since
11311148
history has been rewritten, so existing clones will no longer be compatible
11321149
with this repo.
11331150
1151+
If you need to update the Bioconductor repository, you will need to contact the
1152+
Bioconductor Core Team to sync your repository with the version on Bioconductor,
1153+
as force pushes which alter the git timeline are not possible for maintainers on
1154+
the Bioconductor git server.
1155+
11341156
#### Removing Large Files from History with BFG repo cleaner
11351157
11361158
Another option is to use BFG. The steps below assume `origin` is a user-maintained github
@@ -1466,6 +1488,6 @@ please send an email to <[email protected]>.
14661488
14671489
[resolve duplicate commits][]
14681490
1469-
[Pull requests][]
1491+
[Pull requests][]
14701492
1471-
[Open github issues][Open github issue]
1493+
[Open github issues][Open github issue]

index.Rmd

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@ knitr::write_bib(c(
9393
[Create a new GitHub repo]: https://help.github.com/articles/create-a-repo/
9494
[detect duplicate commits]: https://github.com/Bioconductor/bioc_git_transition/blob/master/misc/detect_duplicate_commits.py
9595
[devel-LongTests-report]: https://bioconductor.org/checkResults/devel/bioc-longtests-LATEST/
96+
[devel-GPU-report]: https://bioconductor.org/checkResults/devel/bioc-gpu-LATEST/
9697
[devel-software-build-report]: https://bioconductor.org/checkResults/devel/bioc-LATEST/
9798
['devel' version]: #use-devel
9899
[docker]: https://bioconductor.org/help/docker/
@@ -109,7 +110,7 @@ knitr::write_bib(c(
109110
[git-and-github-learning-resources]: https://help.github.com/articles/git-and-github-learning-resources/
110111
[git-scm]: https://git-scm.com/
111112
[guidelines]: #develop-overview
112-
[long tests]: #long-tests
113+
[advanced-build-options]: #advanced-build-options
113114
[Maintain a _Bioconductor_-only repository]: #maintain-bioc-only
114115
[Maintain GitHub and _Bioconductor_ repositories]: #maintain-github-bioc
115116
[Makevars files]: http://cran.r-project.org/doc/manuals/R-exts.html#Using-Makevars
@@ -130,6 +131,7 @@ knitr::write_bib(c(
130131
[release-schedule]: https://bioconductor.org/developers/release-schedule/
131132
[release-biocviews]: http://bioconductor.org/packages/release/BiocViews.html
132133
[release-LongTests-report]: https://bioconductor.org/checkResults/release/bioc-longtests-LATEST/
134+
[release-GPU-report]: https://bioconductor.org/checkResults/release/bioc-gpu-LATEST/
133135
[release-software-build-report]: https://bioconductor.org/checkResults/release/bioc-LATEST/
134136
[Removing collaborator]: https://help.github.com/articles/removing-a-collaborator-from-a-personal-repository/
135137
[Resolving a merge conflict using command line]: https://help.github.com/articles/resolving-a-merge-conflict-using-the-command-line/

0 commit comments

Comments
 (0)