* Limit deep stack growth
* Improvements to deep stack trace culling
- Keep around the first deep stack trace; it may have useful
information. (We may want to change this in the future to
keep the first two stack traces, or even make it an option)
- Print out an indicator that we've elided stack traces, and
how many
* Add comments
* Add NEWS item
* Add test for unlimited deep stacks
* Code review feedback
* Code review feedback
Co-authored-by: Carson Sievert <cpsievert1@gmail.com>
* Use head() over indexing
Co-authored-by: Carson Sievert <cpsievert1@gmail.com>
* Improve unit test robustness
* Remove vector indices from snapshot
* Make stack trace stripping work across deep stacks
* Pass tests
* Try passing tests again
* Rename keep_head to retain_first_n
* Remove misleading variable assignment
* Add more comments, refine dropTrivialTestFrames
* Don't call stripStackTraces if we're not stripping
* Use deep stack deduplication instead of elision
This hopefully will avoid any potential ..stacktraceon../off..
scoring issues, and will be more useful for users. The downside
is that it's still possible to have uselessly large deep stack
traces, but at least that will only happen now if you have
manually written gigantic async/promise chains by hand or maybe
did some clever metaprogramming. The coro case should be fine.
* Add coro-based unit test
* Use rlang::hash, it's much faster
* typo
Co-authored-by: Carson Sievert <cpsievert1@gmail.com>
* Remove unnecessary logic
* Simplify/robustify reactlog version checking test
* Warn only once on call stack digest cache miss
* Super conservatively wrap appendCallStackWithDupe in try/catch
* Use more specific attribute name
Co-authored-by: Carson Sievert <cpsievert1@gmail.com>
* Remove excessively cautious try/catch
---------
Co-authored-by: Carson Sievert <cpsievert1@gmail.com>
* Avoid way too many promise domains being activated
Using `captureStackTraces` in wrapForContext is a bad idea, it
piles on a new domain every time a handler is bound.
* Use captureStackTraces, it means the same thing
* Update promises version requirement
* Add test for stack trace growth
* Simplify stack trace snapshot tests
The `category` column isn't a good candidate for snapshot
testing, as its contents vary depending on how the package
was loaded/installed. During devtools::test() or similar,
shiny package code shows up as 'user'. But during CI, it
doesn't show up as anything.
* Use double-tilde for strikethrough in Markdown tests
The current dev version of commonmark has disabled single tilde for strikethrough: https://github.com/r-lib/commonmark/pull/33 Using double-tilde will make it consistent with Pandoc's Markdown (where single-tilde is for subscripts).
* Skip tests if commonmark is outdated
* Revert "Skip tests if commonmark is outdated"
This reverts commit 97bee20863.
---------
Co-authored-by: Carson Sievert <cpsievert1@gmail.com>
* First pass at a proper state machine for managing output progress state
* `yarn build` (GitHub Actions)
* Add useBusyIndicators(), spinnerOptions(), and pulseOptions()
* Bring in new spinner defaults
* Use an actual div instead of a pseudo-element since chromium can't be trusted to show them when animated
* Revert "Use an actual div instead of a pseudo-element since chromium can't be trusted to show them when animated"
This reverts commit 6167c1dfd7.
* Embed animation inside svg (to avoid Chromium bug). Consolidate options into a singular busyIndicatorOptions()
* Add to pkgdown reference
* `devtools::document()` (GitHub Actions)
* `yarn build` (GitHub Actions)
* Bump version
* `yarn build` (GitHub Actions)
* Sync package version (GitHub Actions)
* Apply suggestions from code review
Co-authored-by: Garrick Aden-Buie <garrick@adenbuie.com>
* Update snapshots
* `devtools::document()` (GitHub Actions)
* Address feedback
* Bring in more spinner type options
* fix use of fs
* Code review
* `devtools::document()` (GitHub Actions)
* Sync package version (GitHub Actions)
* Update snapshots
* Fix comments
* Make snapshot consistent cross-platform
* Fix namespace issue
* Reduce specificity of position relative
* Skip snapshot on windows; update news
* Whoops
* Scope spinner customizations to parent element by default
* Update snapshots
* Reorder spinner types
* Set a private random seed in tests
* Better id naming
---------
Co-authored-by: cpsievert <cpsievert@users.noreply.github.com>
Co-authored-by: Garrick Aden-Buie <garrick@adenbuie.com>
* Close#4011. Fix and simplify reactlog's version check approach.
* Better variable name
* Use test_path() for consistent path location
* Just use packageDescription()
* Update tests/testthat/test-reactlog.R
* Update tests/testthat/test-reactlog.R
* Update DESCRIPTION
* Revert "feat: Deprecate with warnings, expect `renderDataTable()` to be deprecated (#4007)"
This reverts commit a8c6065b9f.
* Use shiny's datatables implementation when testing
* feat: Deprecate with a warning
Use `rlang::warn()` instead of `rlang::inform()` and use the lifecycle warning class so that lifecycle infrastructure works
* tests: expect that renderDataTable is deprecated
* tests: invert warning and error expectation
* feat(shiny.error.unhandled): Allow users to provide an unhandled error handler
* Extract `shinyUserErrorUnhandled()` to use in MockSession too
* tests(shiny.error.unhandled): Test that unhandled errors are handled safely
* docs: Clarify that session still ends with an unhandled error
* docs: Add news item
* Start release candidate
* Get rid of warnings about qplot() usage in tests
* Clean up news
* `yarn build` (GitHub Actions)
* Sync package version (GitHub Actions)
* Remote remotes (htmltools is now in CRAN)
* Change header syntax in NEWS.md (to match what usethis does)
Co-authored-by: cpsievert <cpsievert@users.noreply.github.com>
* Close#1409: don't supply width/height to the device if they aren't defined
* Update news
* Update unit tests to reflect that plotPNG()/startPNG() now handles NULL dimensions
* Add a note about NULL dimensions on plotPNG() help page
* Update news
* Close#3704. Close#3735. Close#1409. Throw informative error in renderPlot() early if height/width of a plot aren't yet defined
* `devtools::document()` (GitHub Actions)
* Add unit tests
* Use consistent filename; add intentional failure (to get artifact uploads)
* Make output id argument name more unique
* Update news
* plotPNG() test isn't worth it
* Don't try to provide a suggestion on how to fix the issue (it's no worse than what we currently have, and we probably should be defaulting to an 'arbitrary' size anyway
* update news
* minimize diff
Co-authored-by: cpsievert <cpsievert@users.noreply.github.com>
* Fix#3250
pruneStackTrace was interacting badly with dplyr errors. I'm still
not sure what causes these new cases, but the new behavior seems to
be much better, with no downside that I can think of.
* Fix existing unit tests
* Update news
Co-authored-by: Carson Sievert <cpsievert1@gmail.com>
* Don't kill the session when a debounced/throttled reactive expr errors
Fixes#3581
* Update NEWS with PR number
Co-authored-by: Carson Sievert <cpsievert1@gmail.com>