Motivation - The goal of this document is to guide folks with #shiny issues through best practices for getting help from others.
This page is a wiki - If you have wiki-edit privileges and feel you can make a contribution, please do. All edits are version-controlled and tracked, so we can always step back any changes.
Your feedback - If you have a suggestion but don't want to edit, make a comment below.
Is linking to this document a good idea? - Probably not. Early on, this may be a disorganized list of desirables.
Shiny issues can be challenging to resolve relative to other problems with your code or statistical methods. Shiny apps are often large, complex projects with interacting files.
When seeking help from others it is considered polite to:
- First, do your best to work through RStudio's debugging tools to diagnose your issue on your own. Often those shiny logs and tracebacks are useful to others trying to help out.
- Second, strive to minimize the effort required to replicate your issue. You can do this with a shiny reprex (should we make
shireprexa thing? "Shire-Prex"? no, probably not).
Something very light, geared towards new users?
Guide to providing a minimal reproducible example for a shiny issue.
You're much more likely to get help if you have a minimal example which other people can copy and paste to see the same problem. When the code is minimal, it makes it easy for others to see where the problem is. And if the problem can be reproduced by copying and pasting, it makes it much easier for others to debug the problem.
If you don't know what part of your code is triggering the problem, a good way to find it is to remove pieces of code from your application, until the problem goes away. Once you've isolated the code that triggers the problem, you can go on to the next step.
To create a minimal example, you can go one of two ways: you can either keep removing code from your application until all the extraneous parts are gone, or you can construct a new Shiny application and copy the problem code into the new application. It's generally easier for others to understand the problem when you construct a new example, although either way is much better than not having a reproducible example at all.
Asking someone else for help means getting them up to speed about your shiny app and where your issue is likely to lie....