- Add crates.io, CI, and documentation badges to the documentation site landing page (#174).
- Refresh locked transitive dependencies, including aws-lc, clap, and ipnet (#176).
- Upgrade reqwest from 0.12 to 0.13.4 and adopt its renamed
rustlsfeature, retaining the lean blocking JSON client configuration. Refresh the direct dependency requirements to their latest stable, Rust 1.85 compatible releases (#171).
- Add support for Ubuntu 26.04 LTS (Resolute Raccoon), including R installation via the R Hub versions API and pre-built R package binaries from the Posit Public Package Manager repository (#163).
- Correct
--skip-r-installbehavior to make it truly bypass R version resolution as well as installation, so existing system-wide R installations can be used without calling the R Hub version API (#162). - Prevent P3M rate limit failures during large-scale reverse dependency checks by sharing a request budget between pak binary downloads and xfun source tarball downloads. Downloads pause after 1,800 P3M package requests and resume after a 5-minute cooldown (#161).
- Replace the hard-coded Debian 13 to Debian 12 mapping from #160 with live fallback probing. Unsupported future Debian releases now fall back one release at a time until the R Hub API returns a compatible installer (#162).
- Remove the xfun tarball download monkey patch now that
xfun >= 0.56 supports parallel downloads natively.
Keep
xfun.rev_check.download_coresset to 50 (#156).
- Add progress messages during revdep dependency parsing and before bulk pak installs to avoid long silent periods in the terminal (#153).
- Added a book style documentation site under
docs/describing the revdeprun workflow and key design decisions (#143, #144).
- Accelerate binary package downloads by setting pkgcache async HTTP options for pak. Now binary package downloads use the same computed max connections with a 50 connections per host cap, increased from the pkgcache default of 6 connections per host (#139).
- Increase parallel download workers for revdep source tarballs from 6 to 50,
to align with uv's
concurrent-downloadsdefault and speed up downloads when checking packages with thousands of reverse dependencies (#135).
- Increase parallel download workers for revdep source tarballs from 5 to 6 to match pak and pkgcache defaults (#132).
- revdeprun now makes sure to exclude the
revdep/directory from package builds by appending^revdep$to.Rbuildignore. Without this, thexfun::rev_check()step could be slowed down dramatically when a large number of dependencies for revdep checks are installed (#125).
- Apply an xfun monkey patch to parallelize
xfun:::download_tarball(). The number of parallel download workers is set to 5 to accelerate revdep tarball downloads duringxfun::rev_check()(#127).
- Apply monkey patch for pkgdepends embedded in pak, to refill the worker pool
up to the number of workers after each poll and update
deps_leftonly for packages that still need it. This change substantially acceleratespak::pkg_install()when installing large dependency sets for revdep checks (#121).
- Removed the temporary workaround for
xfun::compare_Rcheck()as xfun 0.55 is now available on CRAN and includes the fix (#118).
- Improve workflow diagrams with pastel color palette to improve visual hierarchy and readability, using consistent semantic color mapping across both phases (#115).
- Add workflow diagrams to
README.mdvisualizing the two-phase workflow: Phase 1 (environment setup) and Phase 2 (dependency installation and reverse dependency checking) (#112). - Add tips to
README.mdon preventing system sleep during long-running checks to maintain SSH connections and continuous terminal output, with platform-specific instructions for macOS and Windows (#109, #110).
- Always install the latest stable Quarto release by resolving the version number from the official download metadata (#106).
- Ignore packages that fail to build or are unavailable by appending pak ignore qualifiers during pre-installation. Retry attempts for transient download errors increased from 3 to 5 (#102).
- Revert headless X11 display changes from #97. Now we run
Rscriptdirectly as packages that fail to build are ignored automatically (#103).
- Install reverse dependency prerequisites with
pak::pkg_install()so Bioconductor dependencies resolve automatically while still respecting the curated dependency set, retrying transient download failures (#95). - Run reverse dependency installs under a headless display and provision the required X11 tooling so Tcl/Tk packages compile reliably (#97).
- Fix package installation errors by normalizing the revdep library path
to an absolute path so the generated R scripts always point to the
absolute library directory. This prevents silent library path setting
failures (!) and guarantees that
xfun::rev_check()will always use the correct library path containing the preinstalled binaries (#90). - Fix package building errors by enhancing the logic in
revdep.rsto parse and install the development dependencies for the package being checked, from both the CRAN version and the development version (#88).
- Add and run a temporary workaround function to fix an issue where the
check comparison results are not written into the Markdown output by
xfun::compare_Rcheck()(#82).
- Align the reverse dependency run script options with yihui/crandalf defaults
with modifications so
xfun::rev_check()has sensible browser, compilation, timeout, sampling, and Markdown summary report retention settings (#81).
- Add
SECURITY.mdto document security risks, best practices, and vulnerability reporting procedures. UpdateREADME.mdto prominently display security best practices with a more visible callout format (#83).
- Respect the number of workers detected by Rust or provided by user
in
revdep.rsinstead of taking the max withparallel::detectCores(), to be consistent withsysreqs.rs(#77).
- Replace
num_cpuswithstd::thread::available_parallelism()to reduce the number of dependencies (#77).
- Reuse the shared progress logging helper so the installer path no longer
carries its own copy of
emit_stream(#74).
- Clarify supported Ubuntu versions are limited to LTS releases in
README.md(#72). - Fix spelling in comments and error messages (#73).
- Install TinyTeX via Quarto commands used in official GitHub Actions workflows and improve existing installation detection (#69).
- Update progress messages during R prerequisite installation to accurately reflect that the system requirements being installed are for the R package {pak}, rather than for revdep dependencies (#66).
- Accept local source package tarballs (
.tar.gz) as inputs for reverse dependency checks (#61).
- Launch
Rscriptwith an auto-tuned--max-connectionsvalue based on the CPU core count to avoid potential connection limits during parallel reverse dependency checks on high-CPU instances (#60).
-
Replace the {revdepcheck.extras} workflow with a fast binary pre-installation phase followed by
xfun::rev_check().The new approach installs the binary packages required for checking reverse dependencies from Posit Public Package Manager (P3M) into
revdep/library/before running the parallel checks. This combination dramatically reduces the pre-install time while making the checks more deterministic and robust (#48, #51).A special thanks to @yihui for his work on
xfun::rev_check()and the helpful discussions enabling this improvement. -
Refactor workspace management to separate the cloned repo and temporary file directory (#52). This makes the directory structure canonical and predictable.
-
Migrate from {revdepcheck} to Henrik Bengtsson's {revdepcheck.extras}, which provides deterministic pre-installation and caching for revdep dependencies (#42).
This might reduce "package suggested but not available" errors when running revdepcheck. It may also reduce potential repeated compilation of the same dependency across different revdeps due to the "caching dependencies while checking multiple packages" mechanism.
- Set
timeoutto the more sensible 60 minutes instead of the previous 12 hours. This is consistent with the default value used byrevdepcheck.extras::check(). From the documentation,timeoutmeans the time limit for runningR CMD checkon one version of one package (#42). - Deduplicate post-install commands in the system requirements script to prevent redundant execution of identical post-install hooks (#41).
- Resolve the Ubuntu system requirements of all CRAN reverse dependencies with
pak::pkg_sysreqs()and run the installation with post-installation commands before running revdepcheck (#35). - Provision Quarto and TinyTeX with
PATHupdates by default so.qmdand PDF vignettes can render during reverse dependency checks (#34).
- Increased the
revdepcheck::revdep_check()timeout to 12 hours to accommodate longer installation and reverse dependency checks (#25). Keep using the source package mirror so that revdepcheck can run (#28, #30).
- Provision
pandocby default so R package vignettes can build during reverse dependency checks (#26). - Set
revdepcheck::revdep_check(bioc = FALSE)to follow the default behavior ofrevdepcheck::cloud_check()on not checking Bioconductor packages by default (#20). - Set
revdepcheck::revdep_check(quiet = TRUE)to suppress the package installation outputs (#21).
revdep.rsnow setsoptions(Ncpus = workers)so the dependency compilation phase can also use all available CPU cores (#12).
- Progress for R and R package installation, workspace preparation, and
repository cloning is now presented with compact spinners
using
indicatif(#13).- Suppress revdepcheck bootstrap logs from R dependency installation. They will only surface when something fails.
- Once revdepcheck dependencies are bootstrapped, only the interactive
revdepchecksession streams to stdout.
- Install
libcurl4-openssl-devandlibssl-devautomatically, which are required by openssl and curl, dependencies of revdepcheck (#4).
- Improved
README.mdfor clarity (#5, #6).
- Initial public release of the
revdeprunCLI. - Automated Ubuntu R installer using the R-hub version resolution API.
- Implemented workflow that clones an R package repository and runs revdepcheck with configurable worker numbers.
- Support for custom workspaces, version overrides, and reusing pre-installed R.