Skip to content

Commit

Permalink
Update Sys Deps (#127)
Browse files Browse the repository at this point in the history
* 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
  • Loading branch information
lshep authored Nov 20, 2024
1 parent aacd97a commit 6f510ab
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 15 deletions.
3 changes: 2 additions & 1 deletion description-file.Rmd
Original file line number Diff line number Diff line change
Expand Up @@ -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}

Expand Down
7 changes: 5 additions & 2 deletions install-file.Rmd
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
36 changes: 24 additions & 12 deletions r-code.Rmd
Original file line number Diff line number Diff line change
Expand Up @@ -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}

Expand Down

0 comments on commit 6f510ab

Please sign in to comment.