Testing R build when using --without-recommended-packages?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
15 messages Options
Reply | Threaded
Open this post in threaded view
|

Testing R build when using --without-recommended-packages?

Henrik Bengtsson-5
I'm on Linux (Ubuntu 18.04). How do I check an R build when using
--without-recommended-packages? 'make check' assumes 'recommended'
packages are installed, so that fails without them available.

DETAILS:

When I build R from source without 'recommended' packages:

curl -O https://cran.r-project.org/src/base-prerelease/R-latest.tar.gz
tar xvfz R-latest.tar.gz
cd R-beta
./configure --enable-memory-profiling --enable-R-shlib --prefix="$PREFIX"
make

I cannot figure out how to validate the build.  Following Section
'Installation' of 'R Installation and Administration', I run:

make check

results in:

Testing examples for package ‘stats’
Error: testing 'stats' failed
Execution halted

This is because those tests assume 'MASS' is installed;

$ cat /path/to/tests/Examples/stats-Ex.Rout.fail

> utils::data(muscle, package = "MASS")
Error in find.package(package, lib.loc, verbose = verbose) :
  there is no package called ‘MASS’
Calls: <Anonymous> -> find.package
Execution halted

BTW, isn't this a bug? Shouldn't this example run conditionally on
'MASS' being installed, because 'MASS' is a suggested package here;

Package: stats
Version: 4.1.0
...
Imports: utils, grDevices, graphics
Suggests: MASS, Matrix, SuppDists, methods, stats4

/Henrik

______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
Reply | Threaded
Open this post in threaded view
|

Re: Testing R build when using --without-recommended-packages?

Dirk Eddelbuettel

On 4 May 2021 at 09:31, Henrik Bengtsson wrote:
| I'm on Linux (Ubuntu 18.04). How do I check an R build when using
| --without-recommended-packages? 'make check' assumes 'recommended'
| packages are installed, so that fails without them available.

[...]

| BTW, isn't this a bug? Shouldn't this example run conditionally on
| 'MASS' being installed, because 'MASS' is a suggested package here;

The 'R-admin' manual in Section 1.2 "Getting patched and development
versions" ends on

  If downloading manually from CRAN, do ensure that you have the correct
  versions of the recommended packages: if the number in the file VERSION
  is ‘x.y.z’ you need to download the contents of
  ‘https://CRAN.R-project.org/src/contrib/dir’, where dir is
  ‘x.y.z/Recommended’ for r-devel or x.y-patched/Recommended for r-patched,
  respectively, to directory src/library/Recommended in the sources you
  have unpacked. After downloading manually you need to execute
  tools/link-recommended from the top level of the sources to make the
  requisite links in src/library/Recommended. A suitable incantation from
  the top level of the R sources using wget might be (for the correct
  value of dir)

      wget -r -l1 --no-parent -A\*.gz -nd -P src/library/Recommended \
        https://CRAN.R-project.org/src/contrib/dir
      ./tools/link-recommended

Dirk

--
https://dirk.eddelbuettel.com | @eddelbuettel | [hidden email]

______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
Reply | Threaded
Open this post in threaded view
|

Re: Testing R build when using --without-recommended-packages?

Henrik Bengtsson-5
Thanks, but I don't understand. That's what I usually do when I build
R with 'recommended' packages.  But here, I explicitly do *not* want
to build and install 'recommended' packages with the R installation.
So, I'm going down the --without-recommended-packages path on purpose
and I'm looking for a way to validate such an installation.

If your comment is on the 'stats' examples' hard dependency on 'MASS'
despite it's being a suggested packages, I still don't follow.

/Henrik

On Tue, May 4, 2021 at 10:16 AM Dirk Eddelbuettel <[hidden email]> wrote:

>
>
> On 4 May 2021 at 09:31, Henrik Bengtsson wrote:
> | I'm on Linux (Ubuntu 18.04). How do I check an R build when using
> | --without-recommended-packages? 'make check' assumes 'recommended'
> | packages are installed, so that fails without them available.
>
> [...]
>
> | BTW, isn't this a bug? Shouldn't this example run conditionally on
> | 'MASS' being installed, because 'MASS' is a suggested package here;
>
> The 'R-admin' manual in Section 1.2 "Getting patched and development
> versions" ends on
>
>   If downloading manually from CRAN, do ensure that you have the correct
>   versions of the recommended packages: if the number in the file VERSION
>   is ‘x.y.z’ you need to download the contents of
>   ‘https://CRAN.R-project.org/src/contrib/dir’, where dir is
>   ‘x.y.z/Recommended’ for r-devel or x.y-patched/Recommended for r-patched,
>   respectively, to directory src/library/Recommended in the sources you
>   have unpacked. After downloading manually you need to execute
>   tools/link-recommended from the top level of the sources to make the
>   requisite links in src/library/Recommended. A suitable incantation from
>   the top level of the R sources using wget might be (for the correct
>   value of dir)
>
>       wget -r -l1 --no-parent -A\*.gz -nd -P src/library/Recommended \
>         https://CRAN.R-project.org/src/contrib/dir
>       ./tools/link-recommended
>
> Dirk
>
> --
> https://dirk.eddelbuettel.com | @eddelbuettel | [hidden email]

______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
Reply | Threaded
Open this post in threaded view
|

Re: Testing R build when using --without-recommended-packages?

Dirk Eddelbuettel

On 4 May 2021 at 11:07, Henrik Bengtsson wrote:
| Thanks, but I don't understand. That's what I usually do when I build
| R with 'recommended' packages.  But here, I explicitly do *not* want
| to build and install 'recommended' packages with the R installation.
| So, I'm going down the --without-recommended-packages path on purpose
| and I'm looking for a way to validate such an installation.

I understand the desire, and am sympathetic, but for all+ years I have been
building R (or R-devel) from source this has never been optional. Nor has any
optionality (for the build of R has a whole) been documented, at least as far
as I know.

Dirk

--
https://dirk.eddelbuettel.com | @eddelbuettel | [hidden email]

______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
Reply | Threaded
Open this post in threaded view
|

Re: Testing R build when using --without-recommended-packages?

Henrik Bengtsson-5
FWIW,

$ ./configure --help
...
  --with-recommended-packages
                          use/install recommended R packages [yes]

/Henrik

On Tue, May 4, 2021 at 11:17 AM Dirk Eddelbuettel <[hidden email]> wrote:

>
>
> On 4 May 2021 at 11:07, Henrik Bengtsson wrote:
> | Thanks, but I don't understand. That's what I usually do when I build
> | R with 'recommended' packages.  But here, I explicitly do *not* want
> | to build and install 'recommended' packages with the R installation.
> | So, I'm going down the --without-recommended-packages path on purpose
> | and I'm looking for a way to validate such an installation.
>
> I understand the desire, and am sympathetic, but for all+ years I have been
> building R (or R-devel) from source this has never been optional. Nor has any
> optionality (for the build of R has a whole) been documented, at least as far
> as I know.
>
> Dirk
>
> --
> https://dirk.eddelbuettel.com | @eddelbuettel | [hidden email]

______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
Reply | Threaded
Open this post in threaded view
|

Re: Testing R build when using --without-recommended-packages?

Dirk Eddelbuettel

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 | [hidden email]

______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
Reply | Threaded
Open this post in threaded view
|

Re: Testing R build when using --without-recommended-packages?

Henrik Bengtsson-5
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 <[hidden email]> 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 | [hidden email]

______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
Reply | Threaded
Open this post in threaded view
|

Re: Testing R build when using --without-recommended-packages?

Gabriel Becker-2
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 <[hidden email]>
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 <[hidden email]> 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 | [hidden email]
>
> ______________________________________________
> [hidden email] mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>

        [[alternative HTML version deleted]]

______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
Reply | Threaded
Open this post in threaded view
|

Re: Testing R build when using --without-recommended-packages?

bbolker

   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 <[hidden email]>
> 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 <[hidden email]> 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 | [hidden email]
>>
>> ______________________________________________
>> [hidden email] mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-devel
>>
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> [hidden email] mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>

______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
Reply | Threaded
Open this post in threaded view
|

Re: Testing R build when using --without-recommended-packages?

Dirk Eddelbuettel
In reply to this post by Gabriel Becker-2

On 4 May 2021 at 14:10, Gabriel Becker wrote:
| 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.

Like Ben, I also take the other side here and point you e.g. to the extended
discussion between Duncan and myself on r-package-devel (look for the thread
with Subject: "winUCRT failures").

Optional packages need testing for presence before they are used, and we are
slowly moving in that direction. Repeating "but that's not what we used to
do" is of limited interest as things do sometimes change for the better.

Dirk

--
https://dirk.eddelbuettel.com | @eddelbuettel | [hidden email]

______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
Reply | Threaded
Open this post in threaded view
|

Re: Testing R build when using --without-recommended-packages?

Gabriel Becker-2
In reply to this post by bbolker
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 <[hidden email]> 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 <
> [hidden email]>
> > 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 <[hidden email]>
> 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 | [hidden email]
> >>
> >> ______________________________________________
> >> [hidden email] mailing list
> >> https://stat.ethz.ch/mailman/listinfo/r-devel
> >>
> >
> >       [[alternative HTML version deleted]]
> >
> > ______________________________________________
> > [hidden email] mailing list
> > https://stat.ethz.ch/mailman/listinfo/r-devel
> >
>
> ______________________________________________
> [hidden email] mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>

        [[alternative HTML version deleted]]

______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
Reply | Threaded
Open this post in threaded view
|

Re: Testing R build when using --without-recommended-packages?

Martin Maechler
>>>>> Gabriel Becker
>>>>>     on Tue, 4 May 2021 14:40:22 -0700 writes:

    > 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 <[hidden email]> 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.)


Thank you all (Henrik, Gabe, Dirk & Ben) !

I think it would be a good community effort  and worth the time
also of R core to further move into the right direction
as Dirk suggested.

I think we all agree it would be nice if Henrik (and anybody)
could use  'make check' on R's own sources after using
 --without-recommended-packages

Even one more piece of evidence is the   tests/README   file in
the R sources.  It has much more but simply starts with

---------------------------------------------------------------------------
There is a hierarchy of check targets:

     make check

for all builders.  If this works one can be reasonably happy R is working
and do `make install' (or the equivalent).

    make check-devel

for people changing the code: this runs things like the demos and
no-segfault which might be broken by code changes, and checks on the
documentation (effectively R CMD check on each of the base packages).
This needs recommended packages installed.

    make check-all

runs all the checks, those in check-devel plus tests of the recommended
packages.

Note that for complete testing you will need a number of other
......................
......................

---------------------------------------------------------------------------

So, our (R core) own intent has been that   'make check'  should
run w/o rec.packages  but further checking not.

So, yes, please, you are encouraged to send patches against the
R devel trunk  to fix such examples and tests.

Best,
Martin

______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
Reply | Threaded
Open this post in threaded view
|

Re: Testing R build when using --without-recommended-packages?

Duncan Murdoch-2
On 05/05/2021 5:13 a.m., Martin Maechler wrote:

>>>>>> Gabriel Becker
>>>>>>      on Tue, 4 May 2021 14:40:22 -0700 writes:
>
>      > 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 <[hidden email]> 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.)
>
>
> Thank you all (Henrik, Gabe, Dirk & Ben) !
>
> I think it would be a good community effort  and worth the time
> also of R core to further move into the right direction
> as Dirk suggested.
>
> I think we all agree it would be nice if Henrik (and anybody)
> could use  'make check' on R's own sources after using
>   --without-recommended-packages
>
> Even one more piece of evidence is the   tests/README   file in
> the R sources.  It has much more but simply starts with
>
> ---------------------------------------------------------------------------
> There is a hierarchy of check targets:
>
>       make check
>
> for all builders.  If this works one can be reasonably happy R is working
> and do `make install' (or the equivalent).
>
>      make check-devel
>
> for people changing the code: this runs things like the demos and
> no-segfault which might be broken by code changes, and checks on the
> documentation (effectively R CMD check on each of the base packages).
> This needs recommended packages installed.
>
>      make check-all
>
> runs all the checks, those in check-devel plus tests of the recommended
> packages.
>
> Note that for complete testing you will need a number of other
> ......................
> ......................
>
> ---------------------------------------------------------------------------
>
> So, our (R core) own intent has been that   'make check'  should
> run w/o rec.packages  but further checking not.
>
> So, yes, please, you are encouraged to send patches against the
> R devel trunk  to fix such examples and tests.

I think it would be useful to issue some kind of warning if tests are
skipped.  As mentioned earlier, this is impossible in user-contributed
packages, which can only return OK or ERROR from their tests.

Duncan Murdoch

______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
Reply | Threaded
Open this post in threaded view
|

Re: Testing R build when using --without-recommended-packages?

Dirk Eddelbuettel

On 5 May 2021 at 05:42, Duncan Murdoch wrote:
| I think it would be useful to issue some kind of warning if tests are
| skipped.  As mentioned earlier, this is impossible in user-contributed
| packages, which can only return OK or ERROR from their tests.

Seconded!

Dirk

--
https://dirk.eddelbuettel.com | @eddelbuettel | [hidden email]

______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
Reply | Threaded
Open this post in threaded view
|

Re: Testing R build when using --without-recommended-packages?

Henrik Bengtsson-5
In reply to this post by Martin Maechler
On Wed, May 5, 2021 at 2:13 AM Martin Maechler
<[hidden email]> wrote:

>
> >>>>> Gabriel Becker
> >>>>>     on Tue, 4 May 2021 14:40:22 -0700 writes:
>
>     > 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 <[hidden email]> 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.)
>
>
> Thank you all (Henrik, Gabe, Dirk & Ben) !
>
> I think it would be a good community effort  and worth the time
> also of R core to further move into the right direction
> as Dirk suggested.
>
> I think we all agree it would be nice if Henrik (and anybody)
> could use  'make check' on R's own sources after using
>  --without-recommended-packages
>
> Even one more piece of evidence is the   tests/README   file in
> the R sources.  It has much more but simply starts with
>
> ---------------------------------------------------------------------------
> There is a hierarchy of check targets:
>
>      make check
>
> for all builders.  If this works one can be reasonably happy R is working
> and do `make install' (or the equivalent).
>
>     make check-devel
>
> for people changing the code: this runs things like the demos and
> no-segfault which might be broken by code changes, and checks on the
> documentation (effectively R CMD check on each of the base packages).
> This needs recommended packages installed.
>
>     make check-all
>
> runs all the checks, those in check-devel plus tests of the recommended
> packages.
>
> Note that for complete testing you will need a number of other
> ......................
> ......................
>
> ---------------------------------------------------------------------------
>
> So, our (R core) own intent has been that   'make check'  should
> run w/o rec.packages  but further checking not.
>
> So, yes, please, you are encouraged to send patches against the
> R devel trunk  to fix such examples and tests.

Thanks Martin!  Thanks for confirming and for being open to patches.
This encourages me to try to patch what we've got so that 'make check'
and 'make check-devel' can complete also without 'recommended'
packages.

/Henrik

>
> Best,
> Martin
>
> ______________________________________________
> [hidden email] mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel

______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel