mlr3misc
The mlr3 utility belt has spent a year rebuilding how errors travel
A side-by-side editorial comparison of ps and rappdirs — release velocity, themes, recent moves, and the top alternatives to consider.
ps grew from a process inspector into the thing that reliably kills what you started.
ps is the cross-platform process API underneath processx and callr, and its recent work splits between widening what it can query and hardening the guarantee that a handle still refers to the process you think it does. Version 1.8.0 added interruptible multi-process waiting, vectorised signalling, and graceful kill with a TERM-then-KILL grace period. Version 1.9.3 rebuilt Linux process creation times on a clock pair instead of integer-second boot time, closing a window where two processes could look identical.
Load-bearing across CRAN, and untouched since January 2021.
rappdirs answers one question — where does an application put its data, cache and config on this operating system — and it has answered it the same way since 2014. The last release was 0.3.3 in January 2021, a revert of accidental vectorisation introduced four days earlier. The only substantive change in the package's visible history is 0.3.2 teaching user_data_dir(), use_cache_dir() and use_config_dir() to respect the R_USER_DATA_DIR, R_USER_CACHE_DIR and R_USER_CONFIG_DIR environment variables.
ps is the cross-platform process API underneath processx and callr, and its recent work splits between widening what it can query and hardening the guarantee that a handle still refers to the process you think it does. Version 1.8.0 added interruptible multi-process waiting, vectorised signalling, and graceful kill with a TERM-then-KILL grace period. Version 1.9.3 rebuilt Linux process creation times on a clock pair instead of integer-second boot time, closing a window where two processes could look identical.
The direction is from observation to control. Early releases in view are per-process queries — CPU times, memory, affinity — and the newer ones are orchestration: wait on many processes with a timeout, signal a list of handles at once, terminate a tree politely before forcing it. The create-time precision work is what makes that safe, since a handle's identity is a PID plus a start time, and a one-second resolution start time is not enough to rule out PID reuse on a busy machine.
Expect the remaining platform-specific gaps in ps_status() and ps_apps() to close before any new capability area opens, since the recent additions have all been driven by processx issue reports.
rappdirs answers one question — where does an application put its data, cache and config on this operating system — and it has answered it the same way since 2014. The last release was 0.3.3 in January 2021, a revert of accidental vectorisation introduced four days earlier. The only substantive change in the package's visible history is 0.3.2 teaching user_data_dir(), use_cache_dir() and use_config_dir() to respect the R_USER_DATA_DIR, R_USER_CACHE_DIR and R_USER_CONFIG_DIR environment variables.
Nothing is heading anywhere, and that is the finding. A port of a Python utility with no open direction, four releases in eleven years, and a dependency position underneath a large share of CRAN packages that need a cache directory. The 0.3.2 and 0.3.3 pair is instructive: a real improvement shipped alongside an accidental behaviour change that had to be reverted within the week, and then silence.
The entries give no basis for predicting a next release; on eleven years of evidence the most likely next change is a CRAN-mandated check fix rather than anything user-facing.
Other DevOps products tracked by Sparkpulse, ranked by recent ship velocity. Each card links to a full editorial trajectory and lets you pivot into a head-to-head comparison with either ps or rappdirs.
The mlr3 utility belt has spent a year rebuilding how errors travel
Zed ships weekly, and the Git surface is finally catching up to the agent surface
odbc keeps turning into an authentication broker with a database driver attached.
wk spent one release fixing what empty means, then went quiet.
A package whose entire job is to ship someone else's database on time.
TinyTeX went where the containers are: Alpine, ARM64, and a naming scheme to match.
Latest ship moves from both products, interleaved chronologically. ⚡ = editorial spark.
Both compete on the same themes — cross-platform — within DevOps. ps and rappdirs are shipping at a similar cadence (velocity 0.0 vs 0.0, both within Sparkpulse's "active" band). See the at-a-glance table above for a side-by-side breakdown of velocity, recent sparks, and editorial themes.
Sparkpulse doesn't pick a winner — we score release velocity, not feature parity. ps and rappdirs are shipping at a similar cadence (velocity 0.0 vs 0.0, both within Sparkpulse's "active" band). For your specific use case, the alternatives sections above list other DevOps products to evaluate alongside.
Top ps alternatives in DevOps are ranked by recent ship velocity. Browse the "ps alternatives" section above for the current picks, or visit /alternatives/ps-r for the full list with editorial commentary on each.
Top rappdirs alternatives in DevOps are ranked by recent ship velocity. Browse the "rappdirs alternatives" section above for the current picks, or visit /alternatives/rappdirs for the full list with editorial commentary on each.