Skip to content

[R-pkg-devel] Example Check Time Leeway for a Workflow-style Package

2 messages · Dario Strbenac, Ivan Krylov

#
Good day,

I submitted a package which has the design of having nine private functions and one user-facing function that operates on a data set and corresponding YAML file describing each column, and picks which subset of private functions are relevant to the data set to execute. It does not pass automated package submission check because the lone example is 1 second too long on Linux (6.4 s) and Windows (11.9 s). The example data set has only 18 columns and 120 rows. Is there special consideration available for such a driver function package design?

--------------------------------------
Dr. Dario Strbenac
Bioinformatics Research Fellow
School of Mathematics and Statistics, University of Sydney
Camperdown N.S.W. 2050, Australia
#
Dear Dr. Dario Strbenac,

? Wed, 4 Mar 2026 09:00:04 +0000
Dario Strbenac <dstr7320 at uni.sydney.edu.au> ?????:
Unfortunately, I don't think there's any special consideration for
packages whose examples take too long for algorithmic reasons instead
of datasets being too large.

I found your package (integrity_0.9.tar.gz) in the archive subdirectory
on CRAN. When I set my locale to C.UTF-8 (otherwise examples and
vignettes fail when the code tries to read English week day names from
a 'table' object containing translated week day names) and profiled
your example, I saw that the code spent a significant part of its time
downstream from the call to gtsummary::tbl_summary() in the
.external_consistency() function. Maybe there's a way to speed up that
call? Or, since the example code doesn't seem to do anything with the
result of the check except return it to the user, maybe that call could
be postponed until its result is needed, and the more extensive
coverage could be moved to tests?

Another chunk of time is taken by the call to dplyr::bind_rows(), later
used to construct a ggplot object that the example doesn't process
further. Maybe there's a way to postpone that until needed as well?