On 25/04/2021 12:56 p.m., Duncan Murdoch wrote:
On 25/04/2021 12:46 p.m., Dirk Eddelbuettel wrote:

 ...

It has long been true that the main test runners (RUnit, testthat, now also
tinytest) are automagically included, which is a defensible (if undocumented)
special rule.

It's a bad rule.  It's causing thousands of packages to fail now,
because testthat won't pass checks on the winUCRT system.  It's making
the pain of winUCRT last much longer than it should, because nobody
knows what problems exist in their own package if they can't install it
because of missing dependencies.

For example, as I said in the first message in this thread,

The current CRAN release of rgl fails on winUCRT because of missing
dependencies:

'htmlwidgets', 'htmltools', 'knitr', 'jsonlite', 'shiny', 'magrittr',
'crosstalk', 'manipulateWidget'.

Tracing `htmlwidgets` shows it also fails because of missing dependencies:

'htmltools', 'jsonlite', 'yaml'

and 'htmltools' fails because of missing dependencies

'digest', 'base64enc', 'rlang'

A lot of those failures are ultimately caused by magrittr failing, and
as far as I can see the only thing causing it to fail was that it used
testthat unconditionally even though its DESCRIPTION file promised it
would never do that.

One additional thought:

If the testing package (i.e. testthat in this case) had been available but other suggested packages were not, it would be worth running tests with just testthat present: that might be why you called the decision defensible. I'd agree with that.

However, it's still true that the fact that testthat has to be present to make magrittr available is a pretty serious flaw in magrittr and/or the CRAN processes. Hopefully magrittr's authors are less stubborn than R Core/CRAN, and will make their package more resilient.

Duncan Murdoch

______________________________________________
R-package-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-package-devel

Reply via email to