Thrilled to share that a new version of prrd arrived at CRAN yesterday in a first update in two and a half years. prrd facilitates the parallel running [of] reverse dependency [checks] when preparing R packages. It is used extensively for releases I make of Rcpp, RcppArmadillo, RcppEigen, BH, and others.
The key idea of prrd is simple, and described in some more detail on its webpage and its GitHub repo. Reverse dependency checks are an important part of package development that is easily done in a (serial) loop. But these checks are also generally embarassingly parallel as there is no or little interdependency between them (besides maybe shared build depedencies). See the (dated) screenshot (running six parallel workers, arranged in a split byobu session).
This release, the first since 2021, brings a number of enhancments. In particular, the summary function is now improved in several ways. Josh also put in a nice PR that generalizes some setup defaults and values.
The release is summarised in the NEWS entry:
Changes in prrd version 0.0.6 (2024-03-06)
The summary function has received several enhancements:
Extended summary is only running when failures are seen.
The
summariseQueue
function now displays an anticipated completion time and remaining duration.The use of optional package foghorn has been refined, and refactored, when running summaries.
The
dequeueJobs.r
scripts can receive a date argument, the date can be parse viaanydate
if anytime ins present.The
enqueeJobs.r
now considers skipped package when running 'addfailed' while ensuring selecting packages are still on CRAN.The CI setup has been updated (twice),
Enqueing and dequing functions and scripts now support relative directories, updated documentation (#18 by Joshua Ulrich).
Courtesy of my CRANberries, there is also a diffstat report for this release.
If you like this or other open-source work I do, you can sponsor me at GitHub.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
prrd facilitates the parallel running [of] reverse dependency [checks] when preparing R packages. It is used extensively for Rcpp, RcppArmadillo, RcppEigen, BH, and others.
The key idea of prrd is simple, and described in some more detail on its webpage and its GitHub repo. Reverse dependency checks are an important part of package development that is easily done in a (serial) loop. But these checks are also generally embarassingly parallel as there is no or little interdependency between them (besides maybe shared build depedencies). See the (dated) screenshot (running six parallel workers, arranged in a split byobu session).
This release brings some new features I used of late when testing and re-testing reverse dependencies for Rcpp. Enqueuing jobs can now consider the most recent prior job queue file. This allows us to find new packages that were not part of the previous runs. We added a second toggle to also add those packages who failed in the previous run. Finally, the dequeue interface allows to specify a date (rather than defaulting to the current date, useful for long-running jobs or restarts).
The release is summarised in the NEWS entry:
Changes in prrd version 0.0.5 (2021-09-22)
Some remaing http URLs were changed to https.
The
dequeueJobs
script has a new argument date to help specify a queue file.The
enqueueJobs
can now compute just a ‘delta’ of (new) packages relative to a given prior queuefile and run.When running in ‘delta’ mode, previously failed packages can also be selected.
My CRANberries provides the usual summary of changes to the previous version. See the aforementioned webpage and its repo for details. For more questions or comments use the issue tracker off the GitHub repo.
If you like this or other open-source work I do, you can now sponsor me at GitHub.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
prrd facilitates the parallel running [of] reverse dependency [checks] when preparing R packages. It is used extensively for Rcpp, RcppArmadillo, RcppEigen, BH, and possibly others.
The key idea of prrd is simple, and described in some more detail on its webpage and its GitHub repo. Reverse dependency checks are an important part of package development that is easily done in a (serial) loop. But these checks are also generally embarassingly parallel as there is no or little interdependency between them (besides maybe shared build depedencies). See the (dated) screenshot (running six parallel workers, arranged in split byobu session).
This release brings several smaller tweaks and improvements to the summary report that had accumulated in my use since the last realease last April. We also updated the CI runners as one does these days.
The release is summarised in the NEWS entry:
Changes in prrd version 0.0.4 (2021-01-23)
Report summary mode is now compact, more robust and reports extended CRAN summaries. (Dirk via several changes)
Continuous Integration now uses
run.sh
from r-ci
My CRANberries provides the usual summary of changes to the previous version. See the aforementioned webpage and its repo for details. For more questions or comments use the issue tracker off the GitHub repo.
If you like this or other open-source work I do, you can now sponsor me at GitHub.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
Back in early 2018, the prrd package was introduced as release 0.0.1, uploaded to CRAN, and updated once as release 0.0.2. I have used it extensively for every CRAN release of Rcpp, RcppArmadillo, RcppEigen, BH, and possibly others.
The idea of prrd is simple, and described in some more detail on its webpage and its GitHub repo. Reverse dependency checks are an important part of package development and is easily done in a (serial) loop. But these checks are also generally embarassingly parallel as there is no or little interdependency between them (besides maybe shared build depedencies). See the following (dated) screenshot (running six parallel workers, arranged in split byobu session).
Since the two early releases, I made a few changes to e.g. the analysis of package checks and their summaries (but never pushed these) as well as a few usability enhancements. This release regroups these.
The release is summarised in the NEWS entry:
Changes in prrd version 0.0.3 (2020-04-19)
Extended functionality
summarise()
with optional use of packagefoghorn
(Dirk)New scripts
enqueueDepends
,dequeueDepends
andsummmariseJobs
(Dirk)Added tweaks and enhancements throughout (Dirk)
The default queue location can now be set via
options
(Dirk)Meta-data on package, version and date is now stored, and shown on dequeue startup (Dirk)
The README.md was clarified and improved (Dirk, Avraham Adler in #8, Robert Nuske in #10)
CRANberries provides the usual summary of changes to the previous version. See the aforementioned webpage and its repo for details. For more questions or comments use the issue tracker off the GitHub repo.
If you like this or other open-source work I do, you can now sponsor me at GitHub. For the first year, GitHub will match your contributions.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
The prrd package was introduced recently, and made it to CRAN shortly thereafter. The idea of prrd is simple, and described in some more detail on its webpage and its GitHub repo. Reverse dependency checks are an important part of package development and is easily done in a (serial) loop. But these checks are also generally embarassingly parallel as there is no or little interdependency between them (besides maybe shared build depedencies). See the following screenshot (running six parallel workers, arranged in split byobu session).
This note announce the second, and much improved, release. The package now runs on all operating systems supported by R and no longer has external system requirements. Several functions were improved, two new helper functions were added in a so-far still preliminary form, and everything is more robust now.
The release is summarised in the NEWS entry:
Changes in prrd version 0.0.2 (2018-01-24)
The package no longer require
wget
.Enhanced sanity checker function.
Expanded and improved dequeue function.
No longer use
$HOME
inxvfb-run-safe
(#2).The use of
xvfb-run
use is now conditional on the OS (#3).The set of available packages is no longer constrained to CRAN, but could be via the local setup script (#4).
The
dequeue()
function now usessystem2()
.The
enqueue()
functions checks if no reverse dependencies are found and stops (#6).The
enqueue()
functions checks for repository information being set (#5).
CRANberries provides the usual summary of changes to the previous version. See the aforementioned webpage and its repo for details. For more questions or comments use the issue tracker off the GitHub repo.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
A new package is now on the ghrr drat. It was uploaded four days ago to CRAN but still lingers in the inspect/
state, along with a growing number of other packages. But as some new packages have come through, I am sure it will get processed eventually but in the meantime I figured I may as well make it available this way.
The idea of prrd is simple, and described in some more detail on its webpage and its GitHub repo. Reverse dependency checks are an important part of package development (provided you care about not breaking other packages as CRAN asks you too), and is easily done in a (serial) loop. But these checks are also generally embarassingly parallel as there is no or little interdependency between them (besides maybe shared build depedencies).
So this package uses the liteq package by Gabor Csardi to set up all tests to run as tasks in a queue. This permits multiple independent queue runners to work at a task at a time. Results are written back and summarized.
This already works pretty well as evidenced by the following screenshot (running six parallel workers, arranged in split byobu session).
See the aforementioned webpage and its repo for more details, and by all means give it a whirl.
For more questions or comments use the issue tracker off the GitHub repo.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.