feat: Fully reload ui/server when autoreload occurs#4184
Merged
Conversation
gadenbuie
commented
Feb 3, 2025
jcheng5
reviewed
Feb 21, 2025
jcheng5
previously approved these changes
Feb 21, 2025
* feat: Use {watcher}
* chore: shikokuchuo/watcher@dev
* chore: watcher is on CRAN now
* chore: Undo air format changes
* feat: Use `shiny.autoreload.interval` for watcher latency
* chore: Simply track last time auto-reload changed
* docs: rewrite options docs for clarity
Updated since approved, changes now include reloading global+support files in ui/server apps
Member
Author
|
@jcheng5 Can you take another quick look at this PR? After testing I realized that it's equally confusing not to load changes in |
cpsievert
reviewed
Feb 28, 2025
gadenbuie
commented
Feb 28, 2025
cpsievert
reviewed
Apr 23, 2025
cpsievert
reviewed
Apr 23, 2025
|
Great |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR updates the auto reload to fully reload both the UI and server source code when any change is detected in the watched autoreload files.
Previously, auto reload would trigger a refresh of the app but the UI or server functions would be updated only if the
ui.Rorserver.Rfiles themselves changed (or both if using a single-file app source).This PR updates auto reloading so that any change to the files matching
shiny.autoreload.patterncauses both the UI and server source to be reloaded.This fixes two long-standing open issues:
Fixes #2711
Fixes #1142
Example app
For testing, the following app sources R files and uses stylesheets outside the main
app.R. Currently, inmain, any changes to the supporting files causes the app to be reloaded but the reloaded app does not reflect the changes.After this PR, changes to support files are reflected after the reload.
Example app on shinylive.
TODO