Open Source in Action #10: 4,600 Merges, Crashes at 59, and TypeScript Overtakes JavaScript

Ten weeks in and the momentum holds strong — 370 more merges, crash testing down to 59, CI turnaround times slashed dramatically, and a nice milestone: the codebase now has more TypeScript than JavaScript. Here’s the roundup.

The Numbers

This week: 370 commits merged by 41 contributors, with 282 open changes in review. All-time since April 2nd: 4,627 commits merged from 69 contributors.

Only 10 open PRs remain on GitHub — the migration is essentially complete. Regression issues are down to 12.

Top reviewers this week: Caolán McNamara (63), Mike Kaganski (36), Tomaž Vajngerl (27), Noel Grandin (26), Stephan Bergmann (20), Szymon Kłos (16), Michael Stahl (15), Andras Timar (11), Balázs Varga (7), Darshan Upadhyay (5).

Thank you to every reviewer — with several regular contributors on vacation this week, those keeping reviews moving deserve extra appreciation.

Welcome to this week’s new contributors: Ben Urban, Charles Chase, Filippo Moscatelli, Hans Henrik Juhl, Kasper Isager Dalsgarð, Mustafa Siam-ur-Rafique, hyperflint, and muysup — thank you for your first contributions!

TypeScript Overtakes JavaScript

A quiet but meaningful milestone: the codebase now has more TypeScript than JavaScript. The current breakdown (excluding the engine directory):

  • C++ — 32.7%

  • TypeScript — 27.0%

  • JavaScript — 24.3%

  • CSS — 4.3%

The steady TypeScript migration effort over many months is paying off — more type safety, fewer runtime surprises. Thank you to everyone who’s been converting files one at a time.

CI: Turnaround Times Slashed

The CI improvements are showing dramatic results. Build turnaround dropped from a median of 6 hours 29 minutes (last Wednesday’s peak) to just 54 minutes this week. Builds are now more evenly distributed throughout the day, so the queue peaks that used to cause long waits have largely disappeared.

Caolán also tested building Windows without optimization — it turns out this produces slightly better warnings and no downsides, a potential path to faster Windows builds.

Crash Testing: 59

The crash count continues its steady decline — down to 59 this week from 70. Consistent, disciplined quality work from Caolán and the team keeps this number falling.

WASM Nightly Builds

Adrià generated a cowasm nightly package, now available for testing at collaboraoffice.com/downloads/COOL-Wasm-Nightly/. This is a big step toward running Collabora Office directly in the browser via WebAssembly. Thank you Adrià for pushing this forward alongside the ongoing CI work.

A Length Type for the Whole Codebase

Tomaž started a thoughtful forum discussion proposing a new Length unit type as the standard for logical units across the codebase. It stores values internally as EMU (English Metric Units), is strongly typed, and has built-in conversions between units — you can even write expressions like 1_hmm + 2_twip with literal suffixes.

The key benefit: eliminating round-trip rounding errors when converting between units during import/export. Noel and Mike Kaganski gave detailed feedback on the implementation approach, and the plan is to integrate it top-down starting with Writer. This is exactly the kind of open, considered technical discussion that leads to solid foundations.

What Developers Are Building

Notebookbar Table Size Controls: Sahil landed table size controls in the notebookbar, including a Cypress test workaround — the commit chain is merged. He’s now back on the dynamic zoom rework.

CODA Templates: Darshan fixed opening templates as new documents instead of editing them directly (cool#13881), and moved the drop hint overlay to design system tokens.

Build-Time Translations: Andras reworked how UNO command translations work — they’re now generated at build time from core plus translations, rather than maintained separately in the online repo. This automatically fixes issues like the Swedish “Add Theme” translation without manual updates.

SmartArt Continues: Armin is deep in SmartArt work, investigating layout node behavior, with Regina collaborating on the forum.

Impress Selection Frames: Bayram’s hyperlink dialog fix is merged, and he’s extending the selection frames work to both Impress and Draw.

E-Signature Config: Vivek is migrating e-signature configuration into the admin iframe settings.

DOCX Recommended Styles: Szymon is working on proper DOCX import of recommended styles and showing them in the notebookbar, plus clearing various errors found in logs by Cypress.

GIF Playback in Presentations: Banobe is investigating why GIFs don’t play in presentations — with the team suggesting a WebGL approach similar to how video rendering already works.

CODA Presentation: Caolán is improving full-screen switching for Qt and Mac, and experimenting with WebKit performance on desktop.

Container Security: Adrià converted “privileged” containers to “unprivileged” across build machines, reducing the attack surface, and is basing the COOL/CODE Docker images on ZenDiS hardened images.

Icons Redesign: Ivana is redesigning the unprotected lock icon and collapse/expand icons, working on a Writer intro template, and exploring Penpot for icon design. Next up: color picker UX.

Calc Performance: Noel is working on performance for invisible Calc columns, alongside ongoing conversions and removal of deprecated offapi/udkapi code.

F-Droid Guide: Darshan added an F-Droid install guide to the Android page — making it easier for users to install via the open-source app store.

Design Meeting

The UX/UI Design Meeting covered several improvements:

  • Presentation console loading indicator: Szymon noticed the current slide has no frame or loading indicator when it loads slowly — a border and placeholder will be added.

  • References tab button: Ivana suggested shortening “Table of Contents and Index” to just “Table of Contents” to save space.

  • Icon approvals for Theme, unprotected lock, and collapse/expand

  • Discussion on GIF playback via WebGL

  • Mobile hamburger menu and dark mode cursor fixes

The Community in Action

Michael Meeks shared his delight at seeing new Writer functionality land — the kind of moment that reminds everyone why this work matters.

The forum continues to host substantive technical discussions — from Tomaž’s Length unit proposal to Regina and Armin’s ongoing SmartArt collaboration. Andras also fixed the Swedish translation issue that was reported last week.

Community Calls

  • TC Meeting (July 1) — 6 attendees — Classic code removal discussion, CI turnaround improvements, crash testing, WASM nightly

  • Collabora Online Weekly Meeting (July 2) — 11 attendees — release schedule, SmartArt, selection frames, e-signature config

  • UX/UI Design Meeting (July 2) — presentation console, GIF playback, icon approvals, mobile fixes

All minutes on the forum under meeting-minutes.

Get Involved

69 contributors. 4,627 merges. More TypeScript than JavaScript. Crashes at 59. Every week the codebase gets cleaner, faster, and more welcoming.

See you in the code.

Leave a Reply