Notes: the # between parenthesis refers to the related issue on GitHub, and the @ refers to an external contributor solving this issue.
- Hotfixing a bug with utils_download_file (#1168)
-
is_golem()
tries to guess if the current folder is a{golem}
-based app (#836) -
use_readme_rmd()
adds a{golem}
specificREADME.Rmd
(@ilyaZar, #1011) -
rename
add_rstudioconnect_file()
toadd_positconnect_file()
(@ilyaZar, #1017) -
add_empty_file
creates an empty file in the www directory (#837) -
add_r6()
adds an empty R6 file (@ilyaZar, #1009) -
golem::welcome_page()
now display a page on default scaffold app (#1126) -
Defunct usethis functions has been removed from dev.R (@ilyaZar, #1125)
-
sourcing
dev/01_start.R
leaves the file in a clean state with all files added to the initial commit (#1094, @ilyaZar) -
allow for user supplied
run_dev
-files (#886, @ilyaZar) -
README
is re-styled and links to various external resources of thegolemverse
(#1064, @ilyaZar) -
a_start
-vignette has updated documentation (#1046, @ilyaZar) -
fill_desc()
automatically callsset_options()
; seedev/01_start.R
as well (#1040, @ilyaZar) -
fill_desc()
now uses aperson
vector (#1027, @jmeyer2482, @ColinFay and @ilyaZar) -
use_{internal,external}_XXX_file()
function family has improved error handling for non-interactive usage (#1062, @ilyaZar) -
add_fct()
now adds the skeleton for a function (#1004, @ilyaZar) -
The module skeleton now stick to tidyverse style (#1019, @ni2scmn)
-
Better comments to
fill_desc()
in01_start.R
(#1021, @ilyaZar) -
01_start.R
now has a call tousethis::use_git_remote()
(#1015, @ilyaZar) -
Tests for
R/golem_utils_server.R
andR/golem_utils_ui.R
now have full code coverage (#1020, @ilyaZar) -
When setting a new name,
{golem}
now browses tests & vignettes (#805, @ilyaZar) -
Adding
writeManifest()
todeploy.R
(#1063, @ilyaZar) -
use_git()
is now at the bottom of 01_dev.R ((#1094, @ilyaZar)) -
golem::add_dockerfile_with_renv_*()
set "rstudio" as default USER in Dockerfile to avoid launching app as root -
It is now easier to modify the renv.config.pak.enabled parameter in the Dockerfile generated by
golem::add_dockerfile_with_renv_*()
functions. -
We create an
.rscignore
in the golem dir whenever creating the connect related file (#110, @ilyaZar)
-
use_{internal,external}_XXX_file()
function family works with default missingname
argument (#1060, @ilyaZar) -
run_dev()
now install needed dependencies to sourcedev/run_dev.R
if needed (#942, @ilyaZar, @vincentGuyader) -
use_readme_rmd()
does not pop up when argumentopen=FALSE
is set (#1044, @ilyaZar) -
Docker commands now take the
-it
flag so it can be killed with^C
(#1002, @ivokwee) -
add_module()
now behaves correctly when trying to usemod_mod_XXX
and no longer opens an interactive menu (#997, @ilyaZar) -
{attachment}
now has a minimum version requirement (#1104, @ilyaZar) -
{pkgload}
now has a minimum version requirement (#1106) -
create_golem()
can be now used with path = "." and package_name empty
-
Add tests for (under/un)-tested files and functions and improve code coverage of
{golem}
(#1043, #1050, #1059, #1066, #1075, @ilyaZar) -
guess_where_config()
now finds the user config-yaml by reading its new location from user changes in "R/app_config.R" (#887, @ilyaZar) -
All functions that require to get a path now rely on
get_golem_wd()
(#1016, @ilyaZar) -
The test suite has been refactored and is now silent and faster.
This is an intermediate release after CRAN feedback.
- Add
add_partial_html_template()
to create a partial html template, with only a div and a{{ }}
(@nathansquan #858).
- Dev hard dependencies have been moved to soft dependencies. You can see the list with
golem:::dev_deps
. They can be installed viagolem::install_dev_deps()
. - Soft dependency check is now done via
rlang::check_installed()
(#835) golem::run_dev()
has been refactored to match the behavior of other functions, notably it now usesgolem::get_golem_wd()
to find the current working dir.{golem}
now depends on{rlang}
version >= 1.0.0- Functions that print to the console are now quiet if
options("golem.quiet" = TRUE)
, #793 - Small documentation update in dockerfile related functions (#939)
fill_desc()
now allows to set the version (#877)- Setting the Environment variable
GOLEM_MAINTENANCE_ACTIVE
toTRUE
activates the maintenance mode of your app golem::run_dev()
now save all open documents before sourcing thedev/run_dev.R
file- When creating an app, you'll get a message if the dev deps are not all installed (#915)
03_deploy
now contains an example of sending the app to PositConnect or Shinyapps.io (#923)
- The message after htmlTemplate creation now suggests to add in the UI, not only in
app_ui.R
(#861) - The Deprecation message for
use_recommended_deps
no longer suggest to useruse_recommended_deps
(#900) - The setting of the config file has been unified so that we are sure to keep the
!expr
ingolem_set_wd()
, and the codebase has been simplified for this (#709). - The functions adding files can no longer take a
name
argument that haslength() > 1
. This used to cause some bugs (#781) - The typo in
install.packages()
in02_dev.R
has been corrected (@asiripanich) add_dockerfile_with_renv()
now works well with uppercase in package name- improve
get_golem_options()
documentation
add_dockerfile_with_renv
now works well with uppercase in package name
Update in the tests for CRAN (commented a test that made new version of testthat fail).
Update in the tests for CRAN (skip not installed + examples).
add_dockerfile_with_renv()
,add_dockerfile_with_renv_heroku()
andadd_dockerfile_with_renv_shinyproxy()
build Dockerfiles that rely on{renv}
add_dockerfile
,add_dockerfile_shinyproxy()
andadd_dockerfile_heroku()
now recommend to switch to their_with_renv_
counterpart
use_recommended_deps()
is now soft deprecated (#786)
- The
html
parameter inexpect_html_equal()
is no longer in use (#55).
-
add_sass_file()
creates a .sass file in inst/app/www (#768) -
use_module_test()
creates a test skeleton for a module (#725)
-
The
02_dev.R
file now suggests usingattachment::att_amend_desc()
(#787) -
use_code_of_conduct()
in dev script now has the contact param (#812) -
All
with_test
params are now TRUE in the dev script (#801) -
test-golem-recommended
now has two new tests forapp_sys
andget_golem_config
(#751) -
use_utils_ui()
use_utils_server()
& now come with awith_test
parameter that adds a test file for theses functions (#625 & #801) -
{golem}
now checks if a module exists before adding a module related file (#779) -
Every
{rstudioapi}
calls is now conditionned by the availabily of this function (#776) -
use_external_*
functions no longer suggest to "Go to" (#713, @novica) -
create_golem()
now comes withwith_git
parameter that can be used to initialize git repository while creating a project template -
use_recommended_tests()
now comes withtestServer
(#720). -
expect_html_equal()
now usestestthat::expect_snapshot()
(#55). -
add_modules()
,add_fct()
andadd_utils()
now come with awith_test
parameter that can be turned on to add a test file to the module (#719 & #141) -
/!\ All docker related functions have been moved to
{dockerfiler}
. This is more or less a breaking change, cause you'll need to install{dockerfiler}
> 0.1.4 in order to build the Dockerfile but{golem}
will ask you to install{dockerfiler}
> 0.1.4 if it can't find it, (#412) -
Modules ID no longer contain an
_ui_
element, (#651, @MargotBr) -
run_dev now has
options(shiny.port = httpuv::randomPort())
to prevent the browser from caching the CSS & JS files (#675) -
You can now specify the path to R in
expect_running()
.
-
Fixed a bug in the printing of the htmlTemplate code (#827)
-
We now require the correct
{usethis}
version (822) -
golem::amend_config()
now keeps the!expr
(#709, @teofiln) -
recommended tests now use
expect_type()
instead ofexpect_is
, which was deprecated from{testthat}
(#671) -
Fixed check warning when using
golem::use_utils_server()
(#678), -
Fixed issue with expect_running & path to R (#700, @waiteb5)
-
expect_running()
now find R.exe on windows. -
use_recommended_tests()
no longer add{processx}
to theDESCRIPTION
(#710) -
bundle_resource()
does not include empty stylesheet anymore (#689, @erikvona)
-
Create
{golem}
is more robust and now comes with anoverwrite
argument (#777) -
{testthat}
and{rlang}
are no longer hard dependencies (#742)
-
You can now create a skeleton for a Shiny input binding using the
golem::add_js_binding("name")
function (#452, @DivadNojnarg) -
You can now create a skeleton for a Shiny output binding using the
golem::add_js_output_binding("name")
function (@DivadNojnarg) -
add_html_template()
creates an htmlTemplate.
-
use_external_file()
allows to add any file to thewww
folder,use_external_css_file()
,use_external_html_template()
, anduse_external_js_file()
will download them from a URL (#295, #491). -
use_internal_css_file()
,use_internal_file()
,use_internal_html_template()
,use_internal_js_file()
functions allow to any file from the current computer to thewww
folder (@KasperThystrup, #529)
expect_running()
expects the current shiny app to be running.
-
Every
{golem}
project now have aproject_hook
that is launched after the project creation. -
module_template()
is the default function for{golem}
module creation. Users will now be able to define a custommodule_template()
function foradd_module()
, allowing to extend{golem}
with your own module creation function. See ?golem::module_template for more info (#365) -
add_js_
andadd_css_
functions now have a template function, allowing to pass a file constructor.
-
is_running()
checks if the current running application is a{golem}
based application (#366) -
utils_ui.R
now contains a "make_action_button()" function (#457, @DivadNojnarg) -
run_dev()
launches therun_dev.R
script (#478, @KoderKow) -
run_dev()
performs a check on golem name. -
sanity_check()
function has been added to check for any 'browser()' or commented #TODO / #TOFIX / #BUG in the code (#1354 @Swechhya)
-
The modules are now created with the new skeleton when the installed version of
{shiny}
is >= 1.5.0. -
use_external_*()
function don't open files by default (#404) -
use_recommended_tests*()
now callsuse_spell_check()
(#430) -
The
02_dev.R
now includes more CI links -
golem::expect_running()
is now bundled in default tests -
Default tests now test for functions formals (#437)
-
You can now pass arguments to internal
roxygenise()
&load_all()
(#467) -
Bundle_resources()
now handle subfolders (#446) -
run_app()
now includes the default arguments ofshinyApp()
(#254, @chasemc) -
create_golem()
now adds strict dependency versions (#466) -
{golem}
app now comes with a meta tags "app-builder", which default to "golem", and that can be changed or turn off inbundle_resources()
. -
with_golem_options
can now explicit callsprint
on theapp
object, solving some issues with benchmarking the application. This explicit print can be turned off by settingprint
to FALSE inwith_golem_options
(#148) -
dockerignore
is now available. -
The
add_helpers
andadd_utils
now have roxygen comments (Richard Pilbery, #330) -
dev/03_dev.R
now hasdevtools::build()
(#603) -
detach_all_attached()
is now silent (#605)
add_ui_server_files()
is now signaled as deprecated. Please comment on #445 if you want it to be kept inside the package
-
add_dockerfile*
function now return the{dockerfiler}
object instead of the path to it. It allows to modify the Dockerfile object programmatically. (#493) -
The
get_golem_config
now first look for aGOLEM_CONFIG_ACTIVE
before looking forR_CONFIG_ACTIVE
(#563)
-
add_
functions no longer append to file if it already exists (#393) -
config::get()
is no longer exported to prevent namespace conflicts withbase::get()
-
fixed issue with favicon when package is built (#387)
-
use_external_*()
function don't add ext if already there (#405) -
create_golem
function does not modify any existing file (#423, @antoine-sachet) -
add_resources_path()
now correctly handles empty folder (#395) -
test for app launching is now skipped if not interactive()
-
add_utils
andadd_fct
now print to the console (#427, @novica) -
Multiple CRAN repo are now correctly passed to the Dockerfile (#462)
-
app_config, DESC and golem-config.yml are now updated whenever you change the name of the package using a golem function (#469 )
-
test_recommended
now work in every case (hopefully)
-
usethis::use_mit_license
does not have thename
argument anymore so if fits new version of{usethis}
(#594) -
Typo fix preventing
invoke_js("prompt")
andinvoke_js("confirm")
to work (#606)
-
document_and_reload()
now hasexport_all = FALSE,helpers = FALSE,attach_testthat = FALSE
, allowing the function to behave more closely to what library() does (#399) -
Dockerfile generation now removes the copied file and tar.gz
-
add_dockerfile()
was completely refactored. It now starts from r-ver, uses explicit package versions from you local machine, and tries to set as much System Requirements as possible by using{sysreq}
, and parses and installs the Remotes tag from the DESCRIPTION (#189, #175) -
add_dockerfile()
allow now to directly use the source of the package by mounting the source folder in the container and runningremotes::install_local()
-
add_dockerfile()
now builds the tar.gz (#273) -
add_fct
andadd_utils
add new files in your R folder that can hold utils and functions (#123). -
We switched from
shiny::addResourcePath()
togolem::add_resource_path()
, which doesn't fail if the folder is empty (#223). -
New JavaScript functions to use alert, prompt and confirm (#108, @zwycl)
-
use_external_js_file
anduse_external_css_file
are designed to download .js and .css file off the web to the appropriate directory (#130, @zwycl)
-
{golem}
now comes with an internal config file. Please refer to theconfig
Vignette for more information. -
bundle_resources()
comes with every new app and bundles all the css and js files you put inside theinst/app/www
folder, by matchine the file extension. -
There is now an
app_sys()
function, which is a wrapper aroundsystem.file(..., package = "myapp")
(#207, @novica) -
document_and_reload()
now stops when it fails, and returns an explicit failure message (#157) -
You can now create a golem without any comment (#171, @ArthurData)
-
The default
app_ui()
now has arequest
parameter, to natively handle bookmarking. -
document_and_reload()
now stops when it fails, and returns an explicit failure message (#157). It also usesget_golem_wd()
as a default path, to be consistent with the rest of{golem}
(#219, @j450h1) -
add_module
now allows to create andfct_
and anutils_
file (#154, @novica) -
golem::detach_all_attached()
is now silent (#186, @annakau) -
There is now a series of addins for going to a specific golem file (#212, @novica), and also to wrap a selected text into
ns()
(#143, @kokbent) -
Creation of a golem project is now a little bit more talkative (#63, @novica)
-
golem apps now have a title tag in the header by default, (#172, @novica)
-
The
rsconnect
folder is now added to.Rbuildignore
(#244) -
devtools::test()
in 03_deploy.R is nowdevtools::check()
-
modules bow have a placeholder for content
-
Dev scripts have been rewritten and reordered a little bit
-
invoke_js()
now takes a list of elements to send to JS (through...
) instead of a vector (#155, @zwycl) -
get_dependencies
was removed from this package, please usedesc::desc_get_deps()
instead (#251) -
{golem}
now useshere::here()
to determine the default working directory (#287) -
Modules used to be exported by default. You now have to specify it when creating the modules (#144)
-
run_app()
is no longer explicitely namespaced in the run_dev script (#267) -
JavaScript files now default to having
$(document).ready()
(#227) -
Every filesystem manipulation is now done with
{fs}
. That should be pretty transparent for most users but please open an issue if it causes problem (#285)
-
The Dockerfile is now correctly added to .Rbuildignore (#81)
-
The dockerfile for shinyproxy no longer has a typo (#156, @fmmattioni)
-
normalizePath()
now has a correct winlash (@kokbent) -
spellcheck in files (@privefl)
-
Message to link to
golem_add_external_resources()
is now conditional to R being in a golem project (#167, @novica) -
Better error on missing name in add_*, (#120, @novica)
-
When adding file, the extension is now ignored if provided by the user (#231)
-
The dots R/run_app.R are now documented by default (#243)
-
Bug fix of the pkgdown website (#180)
-
{golem}
now correctly handles command line creation of projet inside the current directory (#248) -
The test are now more robust when it comes to random name generation (#281)
-
We no longer depend on
{stringr}
(#201, @TomerPacific) -
get_golem_wd() is now used everywhere in
{golem}
(#237, @felixgolcher)
get_golem_wd
allows to print the current golem working directory, andset_golem_wd
to change it.
-
In order to work, the functions creating files need a
golem.wd
. This working directory is set byset_golem_options
or the first time you create a file. It default to"."
, the current directory. -
Changes in the name of the args in
set_golem_options
:pkg_path
is nowgolem_wd
,pkg_name
is nowgolem_name
,pkg_version
is nowgolem_version
-
The
installed.packages()
function is no longer used. -
Every filesystem manipulation is now done with
{fs}
(#285)
- There is now a unique framework for run_app, that allows to deploy anywhere and can accept arguments. These arguments can then be retrieved with
get_golem_options()
.
See https://rtask.thinkr.fr/blog/shinyapp-runapp-shinyappdir-difference/
- There is no need for
ui.R
andserver.R
to exist by default. Removed. Can be recreated withadd_ui_server_files()
- There is now
add_shinyserver_file
&add_shinyappsio_file
, #40 add_ui_server_files()
creates an ui & server.R files.
- Functions that create file(s) now automatically create folder if it's not there. Can be prevented with
dir_create = FALSE
- Functions that create file(s) can now be prevented from opening with
open = FALSE
, #75 - We have made explicit how to add external files (css & js) to the app, #78
- Launch test is now included in the default tests #48
create_golem()
now switch to the newly created projectuse_git()
is not listed indev/01_start.R
- Renamed
add_rconnect_file()
toadd_rstudioconnect_file()
- Renamed
create_shiny_template()
tocreate_golem()
- Renamed
js()
toactivate_js()
- Renamed
use_recommended_dep()
touse_recommended_deps()
invoke_js()
allows to call JS functions from the server side. #52
-
The dev files are now split in three - start / dev / deploy
-
Every function that adds a file now check if the file already exists, and ask the user if they want to overwrite it (#15)
-
Every module is now named mod_x_ui / mod_x_server, for consistency.
-
You can now create package with "illegal" names, using the command line
golem::create_shiny_template()
. #18 -
add_browser_button()
is now namedbrowser_button()
, so that all theadd_*
function are only reserved for function adding files to thegolem
.
add_*_files
now check if the folder exists, if not suggests to create it. #36
-
You now have a
browser_dev()
function that behaves likewarning_dev
and friends. #46 -
Added
set_golem_options()
to add local options used internally by {golem} && added it to the01_start.R
. #49 -
Added
add_dockerfile()
to create a Dockerfile from a DESCRIPTION. -
Added
add_dockerfile_shinyproxy()
to create a Dockerfile from a DESCRIPTION, to be used in Shiny Proxy. -
Added
add_dockerfile_heroku()
to create a Dockerfile from a DESCRIPTION, to be used with Heroku. -
add_css_file()
,add_js_file()
andadd_js_handler()
create a CSS, JS, and JS with Shiny custom handler files.
use_utils_prod
is now included in golem so you don't have to explicitly include the functions.
- Golem now has four vignettes
Last round of functions, and some documentation cleanup.
-
Moved from {shinytemplate} to {golem}
-
Added a
NEWS.md
file to track changes to the package.