tidyr
tidyr replaced separate() with a family that says what it does.
A side-by-side editorial comparison of cmdstanpy and shiny — release velocity, themes, recent moves, and the top alternatives to consider.
CmdStanPy is clearing deprecations ahead of a 2.0 it keeps announcing.
CmdStanPy is at v1.3.0, which added a diagnose method on CmdStanModel, sampler timing information, create_inits() across the stanfit classes, and much faster MCMC CSV parsing. Every release in this window opens with the same notice: the next non-bugfix release will be 2.0 and will remove existing deprecations. In line with that, 1.3.0 drops Python 3.8 and renames the metric argument to inv_metric.
Shiny made reactive apps observable, then gave them a way to tear themselves down
Version 1.12.0 added OpenTelemetry support through the {otel} package, emitting spans for session start and end, reactive updates and individual reactive expressions, with collection depth set by an option or environment variable. The releases since have refined it - scoped collection controls in 1.12.1, cleaner stack traces in 1.13.0 - while 1.14.0 turned to lifecycle, adding session$destroy() on module proxies and a non-blocking startApp() for driving apps programmatically.
CmdStanPy is at v1.3.0, which added a diagnose method on CmdStanModel, sampler timing information, create_inits() across the stanfit classes, and much faster MCMC CSV parsing. Every release in this window opens with the same notice: the next non-bugfix release will be 2.0 and will remove existing deprecations. In line with that, 1.3.0 drops Python 3.8 and renames the metric argument to inv_metric.
The package tracks upstream Stan and prepares for its own break. New inference methods arrive as Stan ships them — Laplace with Stan 2.32, Pathfinder with 2.33 — while the interface work is mostly deprecation staging and CSV input-output performance. The repeated 2.0 warning across two years of releases suggests the cut has been deferred more than once.
The notice at the top of every release points to 2.0 as the next non-bugfix version, removing the deprecations staged here including the metric argument.
Version 1.12.0 added OpenTelemetry support through the {otel} package, emitting spans for session start and end, reactive updates and individual reactive expressions, with collection depth set by an option or environment variable. The releases since have refined it - scoped collection controls in 1.12.1, cleaner stack traces in 1.13.0 - while 1.14.0 turned to lifecycle, adding session$destroy() on module proxies and a non-blocking startApp() for driving apps programmatically.
The framework is addressing the two things that make Shiny apps hard to run in production: you could not see inside the reactive graph, and you could not reliably dispose of parts of it. Tracing answers the first; scoped destruction of module session proxies answers the second. Both are aimed at long-lived, dynamically composed apps rather than at the single-file demo.
Expect the OpenTelemetry attribute names to settle once the deprecated spellings are dropped, and more of the reactive lifecycle to gain explicit teardown hooks now that session$destroy() has established the pattern. Editor integration is a likely area for follow-up after the Ark breakpoint support.
Other Analytics 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 cmdstanpy or shiny.
tidyr replaced separate() with a family that says what it does.
modeltime built conformal intervals in, then went quiet on features.
performance keeps adding ways to check a model you have already fitted.
DoWhy adds one estimation method a year and keeps its identification edge.
OpenHouse is hardening the seams where table policies and jobs quietly fail.
silx 3.0 moved its default Qt binding to PySide6 — a migration for everyone embedding it.
See all cmdstanpy alternatives → · See all shiny alternatives →
Latest ship moves from both products, interleaved chronologically. ⚡ = editorial spark.
They serve adjacent needs but don't currently overlap on shipped themes. cmdstanpy and shiny 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. cmdstanpy and shiny 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 Analytics products to evaluate alongside.
Top cmdstanpy alternatives in Analytics are ranked by recent ship velocity. Browse the "cmdstanpy alternatives" section above for the current picks, or visit /alternatives/cmdstanpy for the full list with editorial commentary on each.
Top shiny alternatives in Analytics are ranked by recent ship velocity. Browse the "shiny alternatives" section above for the current picks, or visit /alternatives/r-shiny for the full list with editorial commentary on each.