Upgrade notes for Shiny 1.7.2

Full changelog

Breaking changes

New features and improvements

Bug fixes

  • Closed #3250:rlang/{tidyeval} conditions (i.e., warnings and errors) are no longer filtered from stack traces. (#3602)

  • Closed #3581: Errors in throttled/debounced reactive expressions no longer cause the session to exit. (#3624)

  • Closed #3657: throttle.ts and the Throttler typescript objects it provides now function as intended. (Thanks gto @dvg-p4, #3659)

  • The auto-reload feature (options(shiny.autoreload=TRUE)) was not being activated by devmode(TRUE), despite a console message asserting that it was. (#3620)

  • Closed #2297: If an error occurred in parsing a value in a bookmark query string, an error would be thrown and nothing would be restored. Now a message is displayed and that value is ignored. (Thanks to @daattali, #3385)

  • Restored the previous behavior of automatically guessing the Content-Type header for downloadHandler functions when no explicit contentType argument is supplied. (#3393)

  • Previously, updating an input value without a corresponding Input binding element did not trigger a JavaScript shiny:inputchanged event. Now, if no Input binding element is found, the shiny:inputchanged event is triggered on window.document. (#3584)

  • Closed #2955: Input and output bindings previously attempted to use el['data-input-id'], but that never worked. They now use el.getAttribute('data-input-id') instead. (#3538)

Minor improvements

  • When taking a test snapshot, the sort order of the json keys of the input, output, and export fields is currently sorted using the locale of the machine. This can lead to inconsistent test snapshot results. To opt-in to a consistent ordering of snapshot fields with shinytest, please set the global option options(shiny.snapshotsortc = TRUE). shinytest2 users do not need to set this value. (#3515)

  • Closed rstudio/shinytest2#222: When restoring a context (i.e., bookmarking) from a URL, Shiny now better handles a trailing = after _inputs_ and _values_. (#3648)

  • Shiny’s internal HTML dependencies are now mounted dynamically instead of statically. (#3537)

  • HTML dependencies that are sent to dynamic UI now have better type checking, and no longer require a dep.src.href field. (#3537)