[Rd] Testing R build when using --without-recommended-packages?

Gabriel Becker g@bembecker @end|ng |rom gm@||@com
Tue May 4 23:40:22 CEST 2021


Hmm, that's fair enough Ben, I stand corrected.  I will say that this seems
to be a pretty "soft" recommendation, as these things go, given that it
isn't tested for by R CMD check, including with the -as-cran extensions. In
principle, it seems like it could be, similar checks are made in package
code for inappropriate external-package-symbol usage/

Either way, though, I suppose I have a number of packages which have been
invisibly non-best-practices compliant for their entire lifetimes (or at
least, the portion of that where they had tests/vignettes...).

Best,
~G

On Tue, May 4, 2021 at 2:22 PM Ben Bolker <bbolker using gmail.com> wrote:

>
>    Sorry if this has been pointed out already, but some relevant text
> from
>
> https://cran.r-project.org/doc/manuals/r-release/R-exts.html#Suggested-packages
>
>  > Note that someone wanting to run the examples/tests/vignettes may not
> have a suggested package available (and it may not even be possible to
> install it for that platform). The recommendation used to be to make
> their use conditional via if(require("pkgname")): this is OK if that
> conditioning is done in examples/tests/vignettes, although using
> if(requireNamespace("pkgname")) is preferred, if possible.
>
> ...
>
>  > Some people have assumed that a ‘recommended’ package in ‘Suggests’
> can safely be used unconditionally, but this is not so. (R can be
> installed without recommended packages, and which packages are
> ‘recommended’ may change.)
>
>
>
> On 5/4/21 5:10 PM, Gabriel Becker wrote:
> > Hi Henrik,
> >
> > A couple of things. Firstly, so far asI have ever heard, it's valid that
> a
> > package have hard dependencies in its tests for packages listed only in
> > Suggests.  In fact, that is one of the stated purposes of Suggests. An
> > argument could be made, I suppose, that the base packages should be under
> > stricter guidelines, but stats isn't violating the letter or intention of
> > Suggests by doing this.
> >
> >
> > Secondly, I don't have time to dig through the make files/administration
> > docs, but I do know that R CMD check has --no-stop-on-error, so you can
> > either separately or as part of make check, use that option for stats
> (and
> > elsewhere as needed?) and just know that the stats tests that depend on
> > MASS are "false positive" (or, more accurately, missing value) test
> > results, rather than real positives, and go from there.
> >
> > You could also "patch" the tests as part of your build process.
> Somewhere I
> > worked had to do that for parts of the internet tests that were unable to
> > get through the firewall.
> >
> > Best,
> > ~G
> >
> >
> >
> > On Tue, May 4, 2021 at 1:04 PM Henrik Bengtsson <
> henrik.bengtsson using gmail.com>
> > wrote:
> >
> >> Two questions to R Core:
> >>
> >> 1. Is R designed so that 'recommended' packages are optional, or
> >> should that be considered uncharted territories?
> >>
> >> 2. Can such an R build/installation be validated using existing check
> >> methods?
> >>
> >>
> >> --
> >>
> >> Dirk, it's not clear to me whether you know for sure, or you draw
> >> conclusions based your long experience and reading. I think it's very
> >> important that others don't find this thread later on and read your
> >> comments as if they're the "truth" (unless they are).  I haven't
> >> re-read it from start to finish, but there are passages in 'R
> >> Installation and Administration' suggesting you can build and install
> >> R without 'recommended' packages.  For example, post-installation,
> >> Section 'Testing an Installation' suggests you can run (after making
> >> sure `make install-tests`):
> >>
> >> cd tests
> >> ../bin/R CMD make check
> >>
> >> but they fail the same way.  The passage continuous "... and other
> >> useful targets are test-BasePackages and test-Recommended to run tests
> >> of the standard and recommended packages (if installed) respectively."
> >> (*).  So, to me that hints at 'recommended' packages are optional just
> >> as they're "Priority: recommended".  Further down, there's also a
> >> mentioning of:
> >>
> >> $ R_LIBS_USER="" R --vanilla
> >>> Sys.setenv(LC_COLLATE = "C", LC_TIME = "C", LANGUAGE = "en")
> >>> tools::testInstalledPackages(scope = "base")
> >>
> >> which also produces errors when 'recommended' packages are missing,
> >> e.g. "Failed with error:  'there is no package called 'nlme'".
> >>
> >> (*) BTW, '../bin/R CMD make test-BasePackages' gives "make: *** No
> >> rule to make target 'test-BasePackages'.  Stop."
> >>
> >> Thanks,
> >>
> >> /Henrik
> >>
> >> On Tue, May 4, 2021 at 12:22 PM Dirk Eddelbuettel <edd using debian.org>
> wrote:
> >>>
> >>>
> >>> On 4 May 2021 at 11:25, Henrik Bengtsson wrote:
> >>> | FWIW,
> >>> |
> >>> | $ ./configure --help
> >>> | ...
> >>> |   --with-recommended-packages
> >>> |                           use/install recommended R packages [yes]
> >>>
> >>> Of course. But look at the verb in your Subject: no optionality _in
> >> testing_ there.
> >>>
> >>> You obviously need to be able to build R itself to then build the
> >> recommended
> >>> packages you need for testing.
> >>>
> >>> Dirk
> >>>
> >>> --
> >>> https://dirk.eddelbuettel.com | @eddelbuettel | edd using debian.org
> >>
> >> ______________________________________________
> >> R-devel using r-project.org mailing list
> >> https://stat.ethz.ch/mailman/listinfo/r-devel
> >>
> >
> >       [[alternative HTML version deleted]]
> >
> > ______________________________________________
> > R-devel using r-project.org mailing list
> > https://stat.ethz.ch/mailman/listinfo/r-devel
> >
>
> ______________________________________________
> R-devel using r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>

	[[alternative HTML version deleted]]



More information about the R-devel mailing list