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
[R-pkg-devel] Example Check Time Leeway for a Workflow-style Package
2 messages · Dario Strbenac, Ivan Krylov
Dear Dr. Dario Strbenac, ? Wed, 4 Mar 2026 09:00:04 +0000 Dario Strbenac <dstr7320 at uni.sydney.edu.au> ?????:
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?
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?
Best regards, Ivan