|
4 | 4 |
|
5 | 5 | ## New features / user-visible changes |
6 | 6 |
|
| 7 | +- New `use_skills()`, `use_agent_skills()`, `use_claude_skills()` and |
| 8 | + `use_skill()` helpers install agent skills (Claude Code / AGENTS.md |
| 9 | + layouts) into a `{golem}` project, from the package's bundled skills or |
| 10 | + from the upstream `ThinkR-open/golem-agent-skills` repository |
| 11 | + (@ilyaZar, #1233). |
| 12 | +- `create_golem()` gains `with_agents` and `with_agents_options` arguments |
| 13 | + to optionally install agent skills during project creation, and the |
| 14 | + RStudio "New Project" wizard exposes a matching set of options |
| 15 | + (@ilyaZar, #1233). |
| 16 | +- Installing agent skills now appends the corresponding entries |
| 17 | + (`^\.claude$`, `^CLAUDE\.md$`, `^\.agents$`, `^AGENTS\.md$`) to the |
| 18 | + project's `.Rbuildignore` so `R CMD check` no longer flags them as |
| 19 | + non-standard top-level files. |
| 20 | +- New `add_github_action()` and `add_gitlab_ci()` helpers generate minimal |
| 21 | + deployment CI for fresh `{golem}` apps. |
| 22 | +- The deployment CI helpers restore `renv.lock` when it is present, fall back |
| 23 | + to `DESCRIPTION` when it is not, and declare `{pkgload}` for the generated |
| 24 | + Posit Connect entrypoint. |
7 | 25 | - The `add_dockerfile_with_renv_*` function now generates a multi-stage Dockerfile by default (use `single_file = FALSE` to retain the previous behavior). |
8 | 26 | - The `add_dockerfile_with_renv_*` function now creates a Dockerfile that sets `golem.app.prod = TRUE` by default (use `set_golem.app.prod = FALSE` to retain the previous behavior). |
9 | 27 | - Print functions have be reworked standardized using the `{cli}` package (@ilyaZar, #89) |
| 28 | +- `use_bundled_html()` downloads bundled HTML templates as zip archives, optionally extracts them into `inst/app/www`, and can remove the raw zip afterwards (#848) |
| 29 | + |
| 30 | +- `add_fct()` gains a `template` argument to customize the content of the generated file; the default template is now exposed as the exported `fct_template()` function, mirroring the `module_template()` / `add_module()` pattern (@ilyaZar, #838) |
| 31 | + |
| 32 | +- `add_js_input_binding()` and `add_js_output_binding()` now generate a functional binding: the JS file contains working `find`, `getValue`/`renderValue`, `setValue`, `receiveMessage`, and `subscribe` implementations, and an R companion file (`fct_<name>_input_binding.R` / `fct_<name>_output_binding.R`) is created alongside it with ready-to-use UI constructor, update, and render functions (@ilyaZar, #868, #869) |
10 | 33 |
|
11 | 34 | ## Breaking change |
12 | 35 |
|
13 | 36 | - The `get_current_config()` has been rework in two ways: (1) it now either check the `GOLEM_CONFIG_PATH` env var or the default path (inst/golem-config.yml). `{golem}` no longer tries to guess non standard paths, and does a hard fail if the file doesn't exist, (2) the function no longer copy the `config` files from the skeleton if ever the files are not there (@ilyaZar, @LDSamson, #1178) |
14 | 37 |
|
15 | 38 | - `{golem}` functions used to rely on arguments that where either `wd`, `path`, `pkg` or `golem_wd`. This has now been standardized and all functions rely on `golem_wd` now (@ilyaZar, #845) |
16 | 39 |
|
| 40 | +- `get_sysreqs()` has been removed; use `dockerfiler::get_sysreqs()` instead. |
| 41 | + |
| 42 | +- `use_recommended_deps()` has been removed. |
| 43 | + |
| 44 | +- `add_rstudioconnect_file()` has been removed; use `add_positconnect_file()` instead. |
| 45 | + |
17 | 46 | - Creating a `golem` doesn't call `set_here()` nor `usethis::create_project()` anymore. It used to be because we wanted to be able to use `here::here()`, but the function should be able to find its way based using `DESCRIPTION`. It gives a lighter implementation of golem projects creation as it doesn't mess up with where `here()` is anymore. |
18 | 47 |
|
19 | 48 | - The `add_*_files` and `use_*_files` now fail when: |
20 | | - - The directory where the user tries to add the file doesn't exist. `{golem}` used to try to create the directory but that's not the function job — use\_\*\_file functions should only be there to add file (Singe responsabily ) |
| 49 | + |
| 50 | + - The directory where the user tries to add the file doesn't exist. `{golem}` used to try to create the directory but that's not the function job — use\_\*\_file functions should only be there to add file (Single responsibility) |
21 | 51 | - The file that the user tries to create already exists |
22 | 52 |
|
23 | 53 | - Creating a golem with `create_golem(overwrite = TRUE)` will now **delete the old folder** and replace with the golem skeleton. |
24 | 54 |
|
| 55 | +- `add_js_input_binding()` and `add_js_output_binding()` generate JS files with a new naming scheme: `<name>-input.js` / `<name>-output.js` (previously `input-<name>.js` / `output-<name>.js`). Manually rename or delete any old binding files (@ilyaZar, #868, #869) |
| 56 | + |
| 57 | +- The default `events` argument of `add_js_input_binding()` has changed from `list(name = "click", rate_policy = FALSE)` to `list(name = c("change", "input"), rate_policy = c(FALSE, FALSE))` to produce a functional input binding out of the box (@ilyaZar, #868) |
| 58 | + |
25 | 59 | ## User visible change |
26 | 60 |
|
27 | 61 | - `run_dev()` only prints one message (#1191 / @howardbaik) |
28 | 62 |
|
| 63 | +## Soft deprecated |
| 64 | + |
| 65 | +- `browser_button()` is now soft deprecated (#1155) |
| 66 | + |
| 67 | +- `add_dockerfile()`, `add_dockerfile_shinyproxy()`, and |
| 68 | + `add_dockerfile_heroku()` are now explicitly soft deprecated; use the |
| 69 | + corresponding `add_dockerfile_with_renv_*()` functions. |
| 70 | + |
29 | 71 | ## Bug fix |
30 | 72 |
|
31 | 73 | - Removing the comments on golem creation didn't work fully, this has been fixed. |
|
36 | 78 |
|
37 | 79 | ## Internal changes |
38 | 80 |
|
| 81 | +- Added internal `cli_progress_bar()`, `cli_progress_update()`, `cli_progress_done()` wrappers and `cat_start_unzip()` / `cat_unzipped()` helpers (@ilyaZar, #1234) |
| 82 | + |
39 | 83 | - `{golem}` now embarks a `claude.md` file and a series of skills |
40 | 84 |
|
41 | 85 | - Full refactoring of the `add_*_files` and `use_*_files` functions that now all share the same behavior |
|
0 commit comments