RStudio IDE and Posit Workbench 2024.04.0: What’s New

This post highlights some of the improvements in the latest RStudio IDE and Posit Workbench release 2024.04.0, code-named “Chocolate Cosmos”.
2024-05-01

This post highlights some of the improvements in the latest RStudio IDE and Posit Workbench release 2024.04.0, code-named “Chocolate Cosmos”. You can find more details in the Release Notes.

 

RStudio

 

RStudio now requires R version 3.6 or later and supports R 4.4, as released in April 2024.

Including the callouts below, there were a total of 84 bug fixes or improvements to RStudio in this release. Please see the release notes for all the details!

 

Quarto 1.4

 

RStudio and Posit Workbench 2024.04 bundle Quarto version 1.4, which brings new formats for dashboards and Typst for LaTeX-free PDFs, a new manuscript project type, a cross-reference overhaul, Shiny for Python support, and many other updates. For more information, please see the Quarto 1.4 release post.  Moving forward, RStudio also displays the version of Quarto bundled in the About dialog. To use this bundled Quarto in VS Code or JupyterLab, please have your admin follow the make Quarto available documentation.

 

We’ve also improved highlighting and completions for code cell options for Quarto in RStudio. Note that different arguments are highlighted in integer/boolean or strings.

This also now works with multiline YAML strings in code cell options:

RStudio now highlights and lints Quarto code cell options in both Python and R code cells.

Debugger

 

In previous versions of RStudio, when using debugging or browser() statements and sending portions of files to the R console, a read-only view of the code was created as RStudio couldn’t always match the source file references. As such, sourcing an entire file with the Source button or source() was required to avoid this read-only debug pane that some users found frustrating.

In 2024.04.0, we now support starting debug sessions via sending code to the R console as long as the source file is saved and open. This is especially helpful when you are using loops or purrr::map(), repeatedly executing code, some Shiny app development contexts, or executing code in the R console. In general, this also fixes a class of issues where the RStudio debugger would re-focus a debugged context over-aggressively.

GitHub Copilot

 

While GitHub Copilot and other Generative AI pair-programming assistants can often be a force multiplier, sometimes they feel like a backseat driver who is a bit too chatty. As such, we’ve added the ability to control Copilot suggestions more tightly.

There is a new user preference to control the automatic or manual generation of Copilot code completions. It is available via the Command Palette (Cmd/Ctrl + Shift + P) or via the Global Options > Copilot settings.

Copilot code suggestions can now be requested via the keyboard shortcut Ctrl + \.

 

Additionally, you can now accept generated code tokens by token with Ctrl + Right (Cmd + Right on macOS). This is useful in certain situations where the entire output is not needed.

 

In older versions of RStudio, Copilot generated code cells in Quarto documents sometimes have duplicated closing backticks ```. We are now cleaning up some of the results to better guard against duplicated backticks, and displaying them as their own line to accept in the “ghost text” when they are generated.

 

 

Posit Workbench

 

Quality of Life improvements

 

We’ve added preliminary support for identifying which Workbench-managed AWS or Databricks credentials are active in RStudio Pro sessions. A new icon on the RStudio Pro toolbar shows information on active AWS or Databricks credentials, if present.

We’ve now made it possible to set the Posit Workbench database password via an environmental variable. This is especially useful in Kubernetes-based deployments of Workbench that make use of tools like Helm to manage deployments.

We now organize images into sections based on their registry/namespace. Previously these prefixes resulted in very long or overflowing image names that made the dropdown unwieldy; truncated image names are much more manageable. For Singularity-style images, we use parent directories as the grouping mechanism.

 

Automatic User Provisioning

 

In Posit Workbench versions before 2024.04.0, admins were required to set up an LDAP or Active Directory server to automate the creation of local Linux system accounts in conjunction with the Identity Provider (IdP). Posit Workbench 2024.04.0 and beyond now supports automatic user provisioning meaning, an external LDAP/AD server is no longer required. Workbench can now be configured to automatically manage local accounts for users that authenticate via an external identity provider (IdP) that supports the System for Cross-domain Identity Management (SCIM) protocol. This greatly simplifies the initial setup and long-term maintenance of Workbench as Workbench can “speak” directly to the IdP. With this change, usernames like first.last@domain.com are also correctly converted to appropriate posix usernames like first.last, stripping out @domain.co

Workbench currently supports the following IdPs for user provisioning (support for other IdPs may be added in the future):

  • Okta
  • Microsoft Entra ID (formerly Azure Active Directory)

This feature also supports moving existing users from local, or LDAP/sssd, to IdP-provisioned users. For more details, please see the User Provisioning section of the Admin Guide.

 

JupyterLab 4 support

 

We’ve added support for JupyterLab 4 sessions and will deprecate JupyterLab 3 support in a future release. JupyterLab 4 brings many exciting features, namely some speed and performance improvements especially when working with larger notebooks, an upgraded text editor (CodeMirror 6), many accessibility improvements, a new extension manager, and more than 100 bug fixes. 

The extension manager now uses prebuilt extensions from PyPI, which removes the need to build when installing extensions. For more information, please see the JupyterLab 4 release blogpost from the Jupyter Blog. Please see the Posit Workbench admin guide for more information on configuring JupyterLab sessions.

As of the release of this blogpost in April 2024, there is a known issue where JupyterLab <4 is currently incompatible with Python 3.12 due to some issues in the Jupyter-dependency chain. While this may be resolved in the future, we suggest using JupyterLab 4 in Posit Workbench if you intend to use Jupyter with Python 3.12. 

 

VS Code update

 

We’ve supported Code Server (VS Code – Open Source) sessions on Posit Workbench for several years through the Coder/code-server implementation. For 2024.04.0, we have updated the version to v4.21.1 (VS Code 1.86.1). By default, VS Code sessions use an open-source project called code-server to run in Posit Workbench. Starting in Workbench version 2024.04, Posit also provides Posit Workbench Code Server (PWB Code Server), which is built directly off a fork of Microsoft’s Visual Studio Code – Open Source repository

As a user or admin, if you opt into using PWB Code Server, you shouldn’t notice any differences in the short term. Going forward, this update allows us to provide more recent versions of Code Server (VS Code – Open Source) with each release of Posit Workbench, delivering bug fixes, improvements, and other benefits to you faster. We’d love for you to try out the new “PWB Code Server” implementation we’re providing, as documented in the admin guide, and report on any friction points you run into. Once we move PWB Code Server sessions out of Public Preview and into general availability, we will deprecate the alternative coder/code-server setup.

 

Prometheus Session metrics

 

An initial set of Prometheus metrics is now available as a Preview feature in the 2024.04.0 release of Posit Workbench. These metrics include useful data points for monitoring the server and Workbench statistics, like the number of HTTP requests in total or in flight, HTTP response durations at various levels, session startup and connection durations at various levels, the total number of sessions, IDE-level session information, and licensing data such as license user seats and active users.

Prometheus metrics can now be enabled or disabled with metrics-enabled=[1|0] in rserver.conf. For more details see the Prometheus Metrics section in the Workbench Admin Guide. 

 

Build updates

 

  • Updated zlib to 1.3.1 (#5971)
  • Posit Workbench no longer has a dependency on the libuser package (#4261)
  • Updated Ace to version 1.32.5 (#14227; Desktop + Server)
  • Updated Electron to version 28.2.6 (#14055; Desktop)
  • Updated GWT to version 2.10.0 (#11505; Desktop + Server)
  • Updated NSIS to version 3.09 (#14123; Windows Desktop)
  • Updated OpenSSL to version 3.1.4 (Windows Desktop)
  • Updated node.js to version 18.19.1 (#14373)

 

Learn more

 

There’s lots more in this release, and it’s available for download today. You can read about all the features & bug fixes in the Posit Workbench and RStudio 2024.04.0 “Chocolate Cosmos” release in the RStudio/Posit Workbench Release Notes. We’d love to hear your feedback about the new release on our community forum.

To be notified of product updates, patches, etc., please subscribe to the Product Information email list on the Posit Subscription Management page.