Workbench 47

A new release of Workbench is available.

Download on Flathub

As the release version indicates; it now uses the GNOME SDK 47.

Roland Lötscher added an action to create a new blank project.

Experimental TypeScript support

Thanks to GSoC student Angelo Verlain (aka vixalien); we now have experimental TypeScript support. See their blog post for details.

What works

What's missing

Code suggestions / completions

It makes use of respective language servers. Only Blueprint and TypeScript have support so far.

Permissions

The goal of Workbench has always been to be fully sandboxed to reduce the risk of running code that would harm the user or the system.

Over time and as the Library covered more and more desktop integration examples, we made exceptions for --share=network (for HTTP/WebSocket) and --socket=pulseaudio (for audio playback).

A new Library entry “Gamepad” by GSoC 2023 student José Hunter would have required us to add --device=all. This would have been too risky; in particular for beginners.

I took the time to remove the problematic permissions and add a dialog that request user action when sandbox permissions are required

Thanks to Brage Fuglseth for the design.

If you are tempted to do this in your apps, please don't. This is a temporary measure until we get the appropriate Flatpak permissions or portals to handle these safely.

While imperfect, in the case of Workbench which targets beginners and can be used to execute any code; it is better than opening sandbox holes by default.

Before:

After:

Library

GSoC student Bharat Tyagi added Language and Category filters to the Library

As usual, many improvements were made to the demos

7 new demos

3 demos ported to Python

7 demos ported to Rust

25 demos ported to Vala

Thanks to all Workbench and demos contributors!