#131 STF Happenings

• Curated by Felix

Update on what happened across the GNOME project in the week from January 12 to January 19.

Sovereign Tech Fund

Sonny announces

As part of the GNOME STF (Sovereign Tech Fund) project, a number of community members are working on infrastructure related projects.

nirbheek reports

Last week, the foundation of a full Rust rewrite of GStreamer’s Real-Time Protocol (RTP/RTCP) network stack was created, with the effort funded by the Sovereign Tech Fund. You can read STF’s announcement on Mastodon.

RTP, RTCP, and SDP are standard specifications which constitute the basic building blocks on top of which widely-used real-time protocols like RTSP (Real-Time Session Protocol) and WebRTC (Web Real-Time Communication) have been created. You can read more about this and the project in general at https://www.sovereigntechfund.de/tech/gstreamer

The rewrite has several technical advantages over the existing C-based stack built ontop of GObject and GIO:

  1. Improved memory safety: important when parsing untrusted network data
  2. More flexible architecture: the existing RTP stack was “layer cake” which made adding new interactions and features hacky and cumbersome
  3. Better performance: the previous architecture suffered from lock contention, excessive use of threads, and the overhead of repeatedly mapping and unmapping buffers due to the “layer cake” architecture
  4. Easier for newcomers: the aforementioned “layer cake” of abstractions made it difficult for non-experts to understand the stack, and we expect new contributors to have an easier time helping, which helps with sustainability
  5. Lower cognitive overhead: the revised architecture and the use of async Rust will reduce the effort required to write new features, refactor code, and generally increase maintainability

The new stack is in a functional and usable state, but lacks some advanced features that are needed for being a complete rewrite of the existing stack. You can follow the progress in the below merge requests:

GNOME Core Apps and Libraries

GJS

Use the GNOME platform libraries in your JavaScript programs. GJS powers GNOME Shell, Polari, GNOME Documents, and many other apps.

ptomato says

We released extra versions of GJS, 1.78.3 (stable) and 1.79.2 (unstable) to fix a regression that made extension preferences windows crash in GNOME Shell. The 1.79.2 release also contains several performance improvements from Marco Trevisan!

GNOME Circle Apps and Libraries

Graphs

Plot and manipulate data

Brage Fuglseth reports

This week Graphs was accepted into GNOME Circle. Graphs is a simple, yet powerful tool that allows you to plot and manipulate your data with ease. Congratulations!

Workbench

A sandbox to learn and prototype with GNOME technologies.

Sonny says

Workbench, the Code Playground for GNOME is out in version 45.4 🛠️ https://flathub.org/apps/re.sonny.Workbench

The highlights of this release are

  • Restore on-disk projects when starting Workbench
  • Open the Library on start if there are no projects to restore
  • Restore scroll and cusor positions on format and Run
  • Add “Copy” and “Select All” to Console
  • Add Vala formatter support
  • Add WebP image format support
  • Library: Add “Context Menu” demo
  • Library: Add “HTTP Server” demo
  • Library: 12 demos ported to Python, 4 to Vala and 2 to Rust
  • Use Biome instead of prettier as JavaScript formatter
  • Use GTKCssLanguageServer instead of prettier as CSS formatter
  • Fix Console style when toggling dark mode
  • Fix blank preview on demos with no code
  • Fix Style affecting other windows

Thanks to the following contributors Gregor Niehl, UrtsiSantsi, Sabri Ünal, Hofer-Julian, Roland Lötscher, Sahil Shadwal, Dan Yeaw, AkshayWarrier, Marco Köpcke, Diego Iván M.E, Sonny Piers.

Happy hacking / learning / prototyping

Boatswain

A guiding hand when navigating through streams.

Georges Stavracas (feaneron) says

Due to a surprisingly popular demand, I’m preparing to add support for Elgato Stream Deck+ devices to Boatswain. For that to happen, Boatswain needs to be adjusted for new button types, a different USB protocol, and new input events. In order to test it, I’ll need a device, so I started a small fundraising campaign. You can read more here.

Apostrophe

A distraction free Markdown editor.

Manu announces

I’ve been working on a new Layout Manager for Apostrophe to replace the now deprecated AdwLeaflet. This has been a nice opportunity to implement a tailor made solution for apostrophe’s panels which fully adapts to the app’s needs

Third Party Projects

ghani1990 says

Lorenzo Paderi has just released Collector, a new application that aims to be a Dropover alternative for GNOME. Collector allows users to quickly and easily drag files, images, text and links onto the Collection window, and drop them anywhere! Collector also supports a variety of features, including:

  • The ability to Open multiple Collector windows and customize their color
  • The ability to download images by Easily drag them from web browser.
  • The ability to group texts into a single, ready-to-use CSV file

If you are a user who is looking for an effortless Drag & Drop, I encourage you to check out Collector. It is a great option that is sure to meet your needs.

Gianni Rosato reports

Today, we have a very exciting development - Aviator has switched to an in-house custom fork of SVT-AV1 dubbed SVT-AV1-PSY!

Featuring development efforts from BlueSwordM (author of the previous custom fork Aviator has been occaisonally using), myself (Gianni), and others, this change will enable us to have much more control over the encoder’s development so that it aligns most effectively with Aviator’s number one priority: visual quality.

So far, SVT-AV1-PSY’s most noteworthy feature is a variance boost patch that appreciably improves intra- and inter-frame fidelity consistency across wide range of content. Visual fidelity per bit is estimated to have increased by up to 5% with this patch, which currently isn’t present in mainline SVT-AV1.

Even though this patch should inevitably make it to mainline, the gains from having more direct control are already being realized as we can implement features like this flexibly at a pace we decide.

Aside from that, FFmpeg has been updated to version 6.1, the SCM toggle has been replaced with a more useful Open GOP toggle, and the README has been modified to reflect some of these more recent changes with regard to SVT-AV1-PSY.

Thank you for using Aviator, and happy encoding!

Gir.Core

Gir.Core is a project which aims to provide C# bindings for different GObject based libraries.

badcel announces

Gir.Core 0.5.0-preview.4 got released. It is the next step to the upcoming 0.5.0 release and adds a lot of public API for records. See the release notes for further details.

Fractal

Matrix messaging app for GNOME written in Rust.

Kévin Commaille says

Fractal 6 is up and ready!

That’s right, barely 2 months after Fractal 5, we feel there have been enough improvements to grant a new stable release. You have probably noticed that we have adopted a version scheme similar to GNOME and will bump the major version with each new release.

The list of goodies:

  • Fractal can open Matrix URIs, it is even registered as a handler for the matrix scheme
  • The verification flow was rewritten, hopefully solving most verification issues
  • Room members can be kicked, banned or ignored from their profile
  • More notifications settings, global or per-room, were added
  • Times follow the format (12h or 24h) from the system settings
  • Tab auto-completion also works for mentioning public rooms, just start your query with #

It is available right now on Flathub.

This version is fully translated into 6 languages 🙌️ and we hope to get even more 📈 for the next one! Head over to Damned Lies if you want to give a hand.

We would also like to thank our new and returning contributors and our upstream projects.

For our next iteration, we already have a bunch of accessibility improvements waiting, and we plan to continue improving the room settings and the moderation features. Any extra work from you 🫵️ will be highly valued!

Events

Pedro Sader Azevedo reports

The GNOME Africa community has been hard at work on organizing a preparatory Bootcamp for those who intend to apply for Google Summer of Code (GSoC) and Outreachy internships.

The goal for this event is to equip participants with the necessary technical skills, project-specific knowledge, mentorship guidance, and community insights, thereby increasing their competitiveness and readiness to successfully contribute to GNOME during the application cycles of these internship programs.

The event will be held entirely online, so people from anywhere in the world are welcome to join. It will happen from January 22nd to February 2nd, so save those dates!

If you’re interested in attending, please register for the event in the following link: https://events.gnome.org/event/244/

That’s all for this week!

See you next week, and be sure to stop by #thisweek:gnome.org with updates on your own projects!