|
1 | 1 | # Changelog |
2 | 2 |
|
3 | | -## Unreleased |
4 | | - |
5 | | -v3.0.0 of the R Extension for VS code is a major release. It introduces a |
6 | | -significant architectural change via the |
7 | | -[**`sess`**](https://github.com/REditorSupport/vscode-R/tree/master/sess) R |
8 | | -Package, which powers faster and more robust communication with the underlying R |
9 | | -session. In turn, this enables a variety of ancillary improvements and feature |
10 | | -requests, which we hope to continue building on. The extension will |
11 | | -automatically prompt users to install `sess` (on their behalf) if it is not |
12 | | -detected. |
13 | | - |
14 | | -### Bug Fixes |
15 | | - |
16 | | -* fix(dataview): fit columns to the viewer width by default and preserve fit-width sizing when scrolling, resizing, or refreshing the viewer |
17 | | -* fix(dataview): use supported grid and row-selection APIs in file-backed tables, initialize the grid after the document is ready, and preserve date and integer64 handling in both viewer modes |
18 | | -* fix(console): use the workspace directory as terminal cwd when given a file URI |
19 | | -* fix(console): preserve remote workspace configuration for R terminals created from the terminal profile |
20 | | - |
21 | | -* fix(sess): clean up failed runtime and server initialization and preserve the selected terminal during reconnect |
22 | | - |
23 | | -* fix(sess): share server startup across concurrent session clients and wait for startup during shutdown |
24 | | - |
25 | | -* fix(sess): defer workspace and plot notifications until task callbacks return |
26 | | - |
27 | | -* fix(sess): refresh JGD renderer discovery on reconnect and identify managed terminals by discovery ownership |
28 | | - |
29 | | -* fix(sess): reconnect managed R sessions after window reload and prioritize manual recovery of the selected R terminal |
30 | | - |
31 | | -* fix(rstudioapi): resolve emulation issues and viewer routing |
32 | | -* fix(workspace): fix code submission delays when the workspace contains many or large objects |
33 | | - |
34 | | -### Features |
35 | | - |
36 | | -* feat(dataview): upgrade AG Grid Community to 36.2.0, add searchable column pinning, inline filters and clear-all controls, row counts, saved view settings, full-value tooltips, and column sizing controls |
37 | | -* feat(sess): migrate session watcher to WebSockets/JSON-RPC 2.0 |
38 | | -* feat(sess): migrate session watcher to Unix domain sockets / Windows named pipes with JSON Lines framing and JSON-RPC 2.0 |
39 | | -* feat: implement rstudioapi::showPrompt() and rstudioapi::askForPassword() for sess package |
40 | | -* feat: evaluate params from YAML header in Rmd files before running code |
41 | | -* feat: check sess package version and prompt for update |
42 | | -* feat(session): implement file-based reconnection and suppress verbose logs |
43 | | -* feat(plot): new `r.plot.backend` enum setting for finer-grained control of the preferred plotting backend, including integration with the lightweight `jgd` graphics device (default if installed). `r.plot.useHttpgd` is deprecated in favor of `r.plot.backend`; it remains supported for compatibility with existing configurations but will be removed in a future release. |
44 | | -* feat(r-path): add `r.executablePath` as the canonical setting for vanilla R used by background processes and `r.consolePath` for the interactive R console. Both accept an absolute or substituted path, or a bare executable name available on `PATH`; for example, `r.executablePath` can be the bare vanilla executable name `R`, while `r.consolePath` can be `arf` (or `radian`). Path settings are resolved against the relevant workspace resource when one is available. When `r.consolePath` and the legacy `r.rterm.<platform>` setting are unset, an explicitly configured `r.executablePath` is also used for the console. The legacy `r.rpath.<platform>` settings never affect console selection. The legacy `r.rpath.<platform>` and `r.rterm.<platform>` settings are deprecated in favor of the canonical settings, remain supported for backward compatibility, and may be removed in a future release. |
45 | | -* feat(dataview): keep one viewer per data name, refreshing the existing viewer on repeated `View()` calls |
46 | | -* feat(dataview): load data rows on demand while scrolling, with support for Arrow and Polars DataFrames |
47 | | -* feat(workspace): support recursive expansion of nested lists, environments, pairlists, S4 objects, and data frames |
48 | | - |
49 | | -### Performance |
50 | | - |
51 | | -* perf: optimize package monitoring in helpServer.R |
52 | | - |
53 | | -### Other |
54 | | - |
55 | | -* Hide context-dependent plot commands from the Command Palette while keeping the Show Viewers command discoverable for reopening plot viewers and retaining viewer-local controls. |
56 | | - |
57 | | -* Remove Live Share integration, including its commands and settings. Remove other obsolete session settings that are no longer consumed. |
58 | | -* Stop writing `~/.vscode-R/settings.json`; the current sess protocol no longer reads the propagated configuration. Remove the unused WebSocket server compatibility function, the unused `SESS_USE_HTTPGD` environment variable, and the path override argument left by the removed help-path setting. |
59 | | -* Remove the unused `r.workspaceViewer.showObjectSize` setting and obsolete object-size tooltip support |
60 | | -* Remove obsolete `r.session.objectLengthLimit`, `r.session.objectTimeout`, and `r.session.levelOfObjectDetail` settings following the switch to on-demand workspace inspection |
61 | | -* Remove `r.helpPanel.rpath`, which was previously deprecated and no longer used by the extension |
62 | | - |
63 | | -### Configuration |
64 | | - |
65 | | -* Add `r.consoleArgs` and `r.consoleSendDelay` as canonical settings, with legacy `r.rterm.option` and `r.rtermSendDelay` deprecated and supported for backward compatibility. Resolve renamed console and executable-path settings by workspace folder (where supported), workspace, then user scope; plot-backend settings use workspace then user scope. Prefer the canonical name within each scope. Empty paths and automatic backend selection retain their fallback behavior. |
66 | | - |
67 | | -### Styling |
68 | | - |
69 | | -* style: fix line length lint error in sess/R/rstudioapi.R |
70 | | - |
71 | | -### Testing |
72 | | - |
73 | | -* test: implement comprehensive integration test suite and modernize CI |
74 | | -* test: add Rmd params tests and cleanup test files |
75 | | -* test(session): add retry logic for plot tests to avoid timeouts on Windows |
76 | | -* test(session): add version check, retry logic, and fix lint warnings |
| 3 | +## 3.0.0 - 2026-09-27 |
| 4 | + |
| 5 | +`v3.0.0` of the R Extension for VS Code is a major release. It introduces a |
| 6 | +significant architectural change via the (new) |
| 7 | +[**`sess`**](https://github.com/REditorSupport/vscode-R/tree/main/sess) R |
| 8 | +package, which powers faster and more robust communication with the underlying R |
| 9 | +session. In turn, this has allowed us to close numerous long-standing bugs, as |
| 10 | +well as enable a variety of ancillary improvements and feature requests. The |
| 11 | +extension bundles its own copy of `sess` and will offer to install it (on your |
| 12 | +behalf) if it is missing or outdated. See the |
| 13 | +[`sess` |
| 14 | +README](https://github.com/REditorSupport/vscode-R/tree/main/sess#readme) for |
| 15 | +more details. |
| 16 | + |
| 17 | +### Highlights |
| 18 | + |
| 19 | +- **More reliable R sessions:** Session communication now uses `sess` with |
| 20 | + local sockets or named pipes. Managed R sessions can reconnect after a VS |
| 21 | + Code window reload, and workspace updates no longer delay code submission |
| 22 | + when the environment contains large objects. |
| 23 | +- **More flexible plot viewing:** `r.plot.backend` selects `jgd`, `httpgd`, or |
| 24 | + the standard graphics device. Automatic selection prefers `jgd` when |
| 25 | + installed, then `httpgd`, then the standard device. |
| 26 | +- **Faster, more capable data and workspace viewers:** Data rows and workspace |
| 27 | + objects load on demand, including Arrow and Polars data frames in the data |
| 28 | + viewer, which also gains column controls, filtering, and row counts. |
| 29 | +- **R Markdown and RStudio API:** YAML parameters are evaluated before running |
| 30 | + R Markdown code, and `rstudioapi::showPrompt()` and |
| 31 | + `rstudioapi::askForPassword()` are now supported. |
| 32 | +- **Improved console configuration:** Console and background R executables can |
| 33 | + be set separately, including executable names found on `PATH`. |
| 34 | + |
| 35 | +### Breaking changes |
| 36 | + |
| 37 | +- **VS Code 1.110 or later is now required.** |
| 38 | +- The session watcher has been rewritten around the new `sess` package, which |
| 39 | + replaces the R scripts that previously lived under `~/.vscode-R/`. The |
| 40 | + extension and R now talk over a local socket (Unix) or named pipe (Windows), |
| 41 | + rather than by watching files. For most users, this change should be |
| 42 | + invisible apart from being faster and more reliable. However, users who |
| 43 | + customized the old session watcher should note the following: |
| 44 | + - The R-side `vsc.*` options (e.g., `vsc.plot`, `vsc.viewer`, `vsc.browser`, |
| 45 | + `vsc.row_limit`) are no longer read. Use the equivalent `r.*` VS Code |
| 46 | + settings instead. |
| 47 | + - The `~/.vscode-R/init.R` script and the **R: Attach Active Terminal** |
| 48 | + command have been removed. |
| 49 | +- Live Share integration has been removed, including its commands and |
| 50 | + `r.liveShare.*` settings. (#1684 @randy3k) |
| 51 | +- Several settings that no longer had any effect have been removed: |
| 52 | + `r.helpPanel.rpath`, `r.session.useWebServer`, `r.session.data.rowLimit` |
| 53 | + (superseded by on-demand loading in the data viewer), `r.session.objectLengthLimit`, |
| 54 | + `r.session.objectTimeout`, `r.session.levelOfObjectDetail`, and |
| 55 | + `r.workspaceViewer.showObjectSize`. (#1713, #1734 @Fred-Wu, #1762 @eitsupi) |
| 56 | + |
| 57 | +### Renamed settings |
| 58 | + |
| 59 | +Several settings have been given clearer, platform-independent names. The old |
| 60 | +names are deprecated but still work, so existing configurations will continue |
| 61 | +to behave as before. If both are set, the new name takes precedence (within the |
| 62 | +same user/workspace scope). |
| 63 | + |
| 64 | +| Old (deprecated) | New | |
| 65 | +|------------------------|-----------------------| |
| 66 | +| `r.rpath.<platform>` | `r.executablePath` | |
| 67 | +| `r.rterm.<platform>` | `r.consolePath` | |
| 68 | +| `r.rterm.option` | `r.consoleArgs` | |
| 69 | +| `r.rtermSendDelay` | `r.consoleSendDelay` | |
| 70 | +| `r.plot.useHttpgd` | `r.plot.backend` | |
| 71 | + |
| 72 | +(#1733, #1735, #1762 @eitsupi) |
| 73 | + |
| 74 | +### New features |
| 75 | + |
| 76 | +#### Plot viewer |
| 77 | + |
| 78 | +- New `r.plot.backend` setting for choosing the plot viewer: `"standard"`, |
| 79 | + `"httpgd"`, `"jgd"`, or `"auto"` (the default). The latter picks the best |
| 80 | + available backend, trying [jgd](https://github.com/REditorSupport/jgd) first |
| 81 | + (see next bullet), then httpgd, then the standard viewer. Changes should take |
| 82 | + effect without reloading VS Code, and you'll get a warning if the requested |
| 83 | + backend isn't installed. This supersedes the old `r.plot.useHttpgd` setting, |
| 84 | + which is deprecated but still respected (see "Renamed settings" above). |
| 85 | + (#1706, #1716, #1766 @grantmcdermott, #1733 @eitsupi) |
| 86 | +- Native integration with the lightweight `jgd` graphics device, including |
| 87 | + plot history and export. Only the `jgd` R package is needed; no separate VS |
| 88 | + Code extension required. See the `r.plot.jgd.*` settings for history and |
| 89 | + export options. (#1706 @grantmcdermott) |
| 90 | +- The standard plot viewer now re-renders plots to fit the viewer panel as it |
| 91 | + is resized, rather than displaying a fixed-size image. It also produces |
| 92 | + crisp SVG output by default if the `svglite` package is installed, falling |
| 93 | + back to PNG otherwise. Use the new `r.plot.format` setting to choose |
| 94 | + explicitly. (#1684 @randy3k) |
| 95 | +- Plot navigation commands (next, previous, zoom, export, etc.) are now hidden |
| 96 | + from the Command Palette, since they only apply to an open plot viewer. They |
| 97 | + remain available from the viewer toolbar. (#1762 @eitsupi) |
| 98 | + |
| 99 | +#### R executable and console |
| 100 | + |
| 101 | +- `r.executablePath` sets the R used for background tasks (e.g., the help |
| 102 | + server and package installation), while `r.consolePath` sets the interactive |
| 103 | + console. The latter makes it easy to use alternative consoles like |
| 104 | + [arf](https://github.com/eitsupi/arf) or |
| 105 | + [radian](https://github.com/randy3k/radian). Both accept either a full path |
| 106 | + or a bare command name on your `PATH` (e.g., `"R"` or `"arf"`), and support |
| 107 | + variables like `${workspaceFolder}`. If `r.consolePath` is unset, |
| 108 | + `r.executablePath` is used for the console too. (#1735, #1762 @eitsupi) |
| 109 | + |
| 110 | +#### Data viewer |
| 111 | + |
| 112 | +- Much faster for large datasets. Rows are loaded on demand as you scroll, |
| 113 | + rather than all at once. Arrow tables and Polars DataFrames are also |
| 114 | + supported. (#1703 @renkun-ken, #1717 @Fred-Wu) |
| 115 | +- New column panel to search, show/hide, and pin columns, plus inline filters, |
| 116 | + a "clear all filters" button, row counts, and full-value tooltips. Columns |
| 117 | + fit the viewer width by default, and your view settings are remembered. |
| 118 | + (#1747 @Fred-Wu, #1765 @renkun-ken) |
| 119 | +- Calling `View()` on the same object again refreshes the existing viewer tab, |
| 120 | + instead of opening a new one. The viewer also keeps its column layout if the |
| 121 | + column names, order, and types are unchanged. (#1707 @Fred-Wu, #1765 |
| 122 | + @renkun-ken) |
| 123 | + |
| 124 | +#### Workspace viewer |
| 125 | + |
| 126 | +- Nested objects (lists, environments, pairlists, S4 and R6 objects, data |
| 127 | + frames) can now be expanded recursively. Large objects load 500 items at a |
| 128 | + time, with a "..." row to load more. (#1713, #1730 @Fred-Wu) |
| 129 | + |
| 130 | +#### Session |
| 131 | + |
| 132 | +- R terminals now reconnect automatically after reloading the VS Code window. |
| 133 | + (#1764 @eitsupi) |
| 134 | + |
| 135 | +#### Other |
| 136 | + |
| 137 | +- `rstudioapi::showPrompt()` and `rstudioapi::askForPassword()` are now |
| 138 | + supported. (#1684 @randy3k) |
| 139 | +- R Markdown `params` from the YAML header are now evaluated before running |
| 140 | + code chunks. (#1684 @randy3k) |
| 141 | +- The extension now activates when an R or R Markdown file is opened, not just |
| 142 | + when a workspace contains one. (#1768 @ThomasSoeiro) |
| 143 | +- New R documentation files default to the `.Rd` extension. (#1773 |
| 144 | + @ThomasSoeiro) |
| 145 | + |
| 146 | +### Bug fixes |
| 147 | + |
| 148 | +- Fixed lag when sending code to the console while the workspace contains many |
| 149 | + or large objects. (#1713, #1720 @Fred-Wu) |
| 150 | +- The data viewer no longer displays very small numbers as `0`. (#1738, #1757 |
| 151 | + @Fred-Wu) |
| 152 | +- Fixed various `rstudioapi` emulation issues, including viewer routing. |
| 153 | + (#1684 @randy3k) |
| 154 | +- Removed the spurious "No text editor active" warning. (#1704 @renkun-ken) |
| 155 | +- The help viewer no longer disables TLS certificate validation when fetching |
| 156 | + from CRAN. (@tomaioo) |
| 157 | +- Session files are now created with owner-only permissions. (#1705 |
| 158 | + @renkun-ken) |
| 159 | +- `r.session.viewers.viewColumn.helpPanel` is now respected for help pages |
| 160 | + opened from R, including `"Disable"`. (#1762 @eitsupi) |
| 161 | +- Language server diagnostics now ignore virtual and deleted files. |
| 162 | + (#1697 @toscm) |
| 163 | +- When the session watcher is disabled, the warning now links to the relevant |
| 164 | + setting rather than an empty wiki page. (#1760 @Fred-Wu) |
| 165 | + |
| 166 | +### Internals |
| 167 | + |
| 168 | +- New integration test suite. (#1684 @randy3k) |
| 169 | +- Modernized CI, including Node.js 24, updated GitHub Actions, and Dependabot |
| 170 | + updates for workflow dependencies. (#1731, #1771 @eitsupi) |
| 171 | +- The `sess` R tests use |
| 172 | + [tinytest](https://github.com/markvanderloo/tinytest). (#1706 |
| 173 | + @grantmcdermott) |
| 174 | + |
| 175 | +### Organization |
| 176 | + |
| 177 | +- New maintainers with write access: @eitsupi, @Fred-Wu, and @grantmcdermott. |
| 178 | +- The [jgd](https://github.com/REditorSupport/jgd) graphics device package |
| 179 | + has joined the REditorSupport organization. |
| 180 | +- REditorSupport now has its own |
| 181 | + [R-universe](https://reditorsupport.r-universe.dev), providing up-to-date |
| 182 | + (dev) binary builds of our various R packages. |
| 183 | + |
| 184 | +**Full Changelog**: <https://github.com/REditorSupport/vscode-R/compare/v2.8.8...v3.0.0> |
77 | 185 |
|
78 | 186 | ## 2.8.8 - 2026-03-24 |
79 | 187 |
|
|
0 commit comments