NEWS
shinyscholar 0.4.5 (2026-04-03)
- Migrate from
{devtools} to {pak} for installation
- Set
R_USER_CACHE_DIR in tests
- Import app dependencies in
global.R instead of via Depends
- Fixed bug in
global.R due to missing function
create_module() updates the module .yml and global.R so that the app runs
reset_data(), show_loading_modal(), close_loading_modal(), show_map(), show_results() and show_table() have been moved from R/helper_functions to inst/shiny/ui_helpers.R and are no longer exported
shinyscholar 0.4.4 (2026-02-06)
- Skip problematic test on CRAN
shinyscholar 0.4.3 (2025-09-05)
create_template() now creates testthat.R file
- Fixed
create_module() module function calls for async apps containing a map
- Saving apps now only stores data in
common (i.e. excluding common$tasks)
- Updated README with clarifications
shinyscholar 0.4.2 (2025-06-01)
- Various tweaks to ensure that created apps pass
R CMD check
- Removed
{magrittr} dependency and migrated to native pipes, increasing R dependency to v4.1.0
create_module() now creates skeleton functions that include {roxygen2} tags
shinyscholar 0.4.1 (2025-05-19)
- Fix half-baked bslib migration
- Further UI tweaks
shinyscholar 0.4.0
Bug fixes
- Fixed UI generation in
create_template()
- Enter key no longer reruns a module when an error message is displayed
- Fixed API calls in
select_query() and select_async()
Changes
- Stopped running
{shinytest2} tests on CRAN
- Migrated from
{promises} to {mirai} for running async tasks
- Migrated to
{bslib} layout functions and various UI tweaks
- Added a small footer linking to the CRAN package to generated apps
shinyscholar 0.3.0 (2025-03-20)
Bug fixes
- Fixed
core_code module when no function exists
- Break up very long lines in the markdown so that they can be read in again
- Disabled
register_module() as it has not been refactored to work for created apps
- Made loading process more robust by adding the app name
- Made loading fault-tolerant if deprecated
common objects exist
Changes
- Tidied up
library() calls
- Removed unnecessary
gargoyle:: and leaflet:: scoping
New features
- Entries in the logger are now restored on load and made available in testing
- Added
plot_auto and plot_semi modules to the example app that run automatically and semi-automatically respectively
- Added ability to control generated markdown chunks using
asis chunks and example to plot_hist.Rmd
- Added
common$reset() and reset_data() to reset the common object and remove all outputs
- Added an area to the UI for including global options available inside all modules
- Added an options to
create_template() and create_module() to include a downloadButton and downloadHandler to modules that is only visible once the module runs successfully
- Rewrote
create_template() and create_module() so that create_module() creates the module function and tests
- Switched to use
shinyWidgets::radioGroupButtons() for module selection menu
- Added a description of the package structure to the README
shinyscholar 0.2.5 (2025-02-05)
- Fix bug in writeLog when
type = warning
- Skip tests that download files on Fedora systems
- Module
run buttons can be pressed using the Enter key
shinyscholar 0.2.4 (2025-01-29)
- Simplified and improved
printVecAsis() by using dput to support improved reproducibility e.g. by including dataframes directly
- Removed all remnants of map when
include_map is FALSE in create_template()
- Install packages created by
create_template() in tests
- Only run markdown tests when pandoc is installed
shinyscholar 0.2.3 (2025-01-17)
- Fixed bug caused by being on CRAN
- Fixed bug in module ordering in
global.R
shinyscholar 0.2.2 (2025-01-15)
- Removed
run_module() as it was not maintainable.
- Moved all packages to Suggests unless they are required for development of new applications.
- Added
asyncLog() to improve logging from inside async functions.
- Updated
run_<app name>() to take a load file as an argument which is loaded automatically.
- Creating
load_file_path containing the path to a save file will attempt to load it on app start up.
- Made
create_template(), metadata() and save_and_load() more robust.
shinyscholar 0.2.1
- The
select_query and select_async modules in the demonstration app have been re-written to use a different API.
shinyscholar 0.2.0
- Added ability to run functions asynchronously using
shiny::ExtendedTask().
- Modules that do not produce results now have a placeholder informing the user.
- Updated
writeLog() to use icons for different events.
- Updated
save_and_load() to ignore manually added lines and fix indenting.
- Added
metadata() to semi-automate adding code for reproducibility.
- Module function file names now take the form of
<identifier>_f.R to prevent confusion between the function and module file.
- Objects are all passed to
printVecAsis() when generating the Rmarkdown, removing the need to manually wrap strings in the .Rmd files.
- Use
{shinyAce} to display formatted code in core_code module.
shinyscholar 0.1.2
- Moved mapping, introduction, code, save and load functionality out of server into
core_ modules.
- Passed
parent_session to the modules enabling switching to the results, map and table tab from within modules and added show_table(), show_results() and show_table() to simplify code.
- Added
rep_renv module to enable capturing dependencies.
shinyscholar 0.1.1
- Added
save_and_load() to automate adding the lines to modules which facilitate saving and loading of input values.
- Added an introduction using
{rintrojs} which is only shown to users on their first visit.
shinyscholar 0.1.0
- The template has been created mainly through the removal of functionality from
Wallace and the addition of basic functionality to demonstrate how modules can be used.
- These are the key features which have been retained:
- Automatic loading of modules
- Saving and loading of the current app state
- Creating Rmarkdown files for reproducing the workflow outside of the application
- Logging errors
- These changes have been made:
common - the data structure passed between modules - has been changed from a list() containing spp <- reactiveValues() to an R6::R6Class().
- Due to objects inside
common not being inherently reactive, event triggers have been added using {gargoyle}
- A Code tab has been added to the Visualization panel to allow the code for each module and the function that each module calls to be viewed.
- Unit tests for each module have been created using
{shinytest2} in addition to unit tests for the function that the module calls.
- ~~Added a new function
run_module() which can be used to run a single module.~~ Removed in 0.2.2 use run_<app name>() or load_file_path
- Added a new function
create_template() which can be used to create a skeleton app.
- Added a Dockerfile which can be used to run the app on a shiny-server.
- Added
show_loading_modal() which uses {shinybusy} to display a modal whilst slow functions are running.