- Matt Dowle, maintainer of the data.table package, traced a new CRAN check warning back to a deprecation change in R itself, not a data.table bug.
- Matt Dowle found the same structure(NULL, *) deprecation warning on ggplot2's CRAN checks page, confirming the issue was not specific to data.table.
- The data.table package was used by 320 CRAN and Bioconductor packages at the time of the post, bringing Matt Dowle's local reverse dependency library to 2,108 packages.
- Jan Gorecki, who had joined H2O, automated and improved Matt Dowle's reverse dependency check process using a docker script.
- Matt Dowle said package maintainers request data.table updates more often than users do, reflecting CRAN's role in keeping packages compatible.
(Just from my point of view as a package maintainer.)
New users of R might not appreciate the full benefit of CRAN and new package maintainers may not appreciate the importance of keeping their packages updated and free of warnings and errors. This is something I only came to realize myself in the last few years so I thought I would write about it, by way of today’s example.
Since data.table was updated on CRAN on 3rd December, it has been passing all-OK. But today I noticed a new warning (converted to error by data.table) on one CRAN machine. This is displayed under the CRAN checks link.
Sometimes errors happen for mundane reasons. For example, one of the Windows machines was in error recently because somehow the install became locked. That either fixed itself or someone spent time fixing it (if so, thank you). Today’s issue appears to be different.
I can either look lower down on that page or click the link to see the message.
Calling 'structure(NULL, *)' is deprecated, as NULL cannot have attributes.
I’ve never seen this message before. But given it mentions something about something being deprecated and the flavor name is r-devel it looks likely that it has just been added to R itself in development. On a daily basis all CRAN packages are retested with the very latest commits to R that day. I did a quick scan of the latest commit messages to R but I couldn’t see anything relating to this apparently new warning. Some of the commit messages are long with detail right there in the message. Others are short and use reference numbers that require you to hop to that reference such as “port r71828 from trunk” which prevent fast scanning at times like this. There is more hunting I could do, but for now, let’s see if I get lucky.
The last line of data.table’s test suite output has been refined over the years for my future self, and on the same CRAN page without me needing to go anywhere else, it is showing me today:
