@@ -206,20 +206,32 @@ helper functions.
206206
207207#### Additional files and dependencies {#rcode-sysdep}
208208
209- Do NOT install anything on a users system.
210-
211- System dependencies, applications, and additionally needed packages should be
212- assumed already present on the user's system.
213-
214- If necessary, package maintainers should provide instructions for download and
215- setup, but should not execute those instructions on behalf of a
216- user. Complicated or additional system dependency instructions could be part of
217- the [ README file] ( #readme ) and/or [ INSTALL file] ( #sysdep ) . All package
218- dependencies must actively be on CRAN or [ _ Bioconductor_ ] [ ] .
209+ Do NOT install anything on a users system! System dependencies, applications,
210+ and additionally needed packages should be assumed already present on the user's
211+ system.
212+
213+ Direct calls to external commands via
214+ system() or system2() are not ideal so should only be used when there is no
215+ other alternative. For example, if a CRAN or Bioconductor package already
216+ provides the functionality that you are after, you should use that instead.
217+
218+ Now if your package ** absolutely** must rely on external software then you
219+ need to make sure that those requirements are listed in
220+ the SystemRequirements field of the DESCRIPTION file of the package. These
221+ requirements should be "reasonable" requirements, that is, trusted software
222+ only, open source, and relatively easy to install.
223+
224+ Additionally we ask that the package contains an [ INSTALL file] ( #sysdep ) (in the
225+ top-level folder) that provides instructions for installing the external
226+ software on the 3 major OS that we support: Linux, Windows, and Mac. This
227+ will not only help your users get the external software on their machines,
228+ but it will also help us install it on the build machines if it's not
229+ already there.
219230
220231All system and package dependencies should be the latest publically available
221- version.
222-
232+ version. All package dependencies must actively be on CRAN or
233+ Bioconductor. Bioconductor will not recognize Remotes in Description and will
234+ not install a lower version of a package or dependency.
223235
224236#### Namespaces {#rcode-namespaces}
225237
0 commit comments