Darshan Upadhyay
This week the all-time commit count crossed 7,000, the project got a live dashboard of its own community activity, the July translation numbers came in with seven languages fully complete, and the mobile team expanded. Here’s the roundup.
The Numbers
This week: 403 commits merged by 34 contributors. All-time since April 2nd: 7,009 commits merged from 72 contributors — crossing the 7,000 milestone in just over four months. There are 224 open changes on online/main.
Top reviewers this week: Noel Grandin (159), Caolán McNamara (58), Mike Kaganski (22), Miklos Vajna (20), Michael Stahl (17), Tomaž Vajngerl (16), Szymon Kłos (12), Stephan Bergmann (9), Michael Meeks (7), Gökay Şatır (4).
Thank you to every reviewer — a special mention to Noel with an extraordinary 159 reviews this week, keeping the large namespace and canvas cleanup work moving through review.
Community Pulse: A Live Look at the Project
Darshan built and launched a new Community Pulse page — a live dashboard giving anyone a real-time look at the health of the Collabora Online community. It pulls together code changes, GitHub issues, forum activity, translations, and even Docker downloads, all refreshed nightly from public data sources.
It’s a lovely way to make the project’s openness tangible — everything happening in the community, visible at a glance.
Easy Hacks Get a Filter
Alongside the Pulse page, the Easy Hacks page got a useful upgrade: you can now search and filter the full list of easy hacks by label, and see at a glance which ones are unclaimed. As of this week there are 73 open easy hacks, 46 of them unclaimed — refreshed nightly straight from the GitHub issues.
If you’ve been looking for a first contribution, the unclaimed ones filtered by “enhancement,” “C++,” or “JavaScript” are a great place to start.
July Translations: Seven Languages at 100%
The July Weblate stats are in, and the localization community continues to shine. Seven languages are now fully translated — Armenian, Dutch, Irish, Lithuanian, Polish, Slovenian, and Swedish are all at 100%, with Welsh and Tamil close behind. Many other languages are translated for enterprise deployments
A huge thank you to July’s top contributors: தமிழ்நேரம் (Tamil, 752 strings), Gabriel (Brazilian Portuguese, 387), and Rhoslyn Prys (Welsh, 337) — and to every one of the 40+ translators who put in work across languages from Estonian and Kabyle to Basque, Armenian, and beyond. Translation is one of the most direct ways to make the software better for real people in their own language.
The Mobile Team Grows
Good news for mobile users: the team working on the mobile apps is expanding. Skyler is now joined by Karthik and Maya, which means mobile releases can happen more consistently going forward. A 26.04 iOS TestFlight build is already in Apple’s review queue and should be available shortly.
What Developers Are Building
A strong week of features and fixes across the board.
Calc: Statistical Analysis Arrives
The standout this week — Dennis built a full Principal Component Analysis (PCA) feature for Calc. It adds a PCA dialog, generates an analysis sheet naming every column and showing explained variance per component, and even draws a correlation circle chart — a brand-new chart type with full ODF import/export support. Underneath it, he added a one-sided Jacobi singular value decomposition and the MSVD function. Serious statistical capability, built in the open.
Dennis also continued hardening Calc’s per-user sheet views — keeping each view’s filter state across a content sync and correctly shifting filter and hidden columns on insert/delete
Writer: Markdown, Horizontal Rules, and a Length Type
Miklos added a copy-as-markdown UI to Writer (cool#16060) — select content, copy it as clean markdown. Mike Kaganski implemented Word horizontal rules in the model and layout (tdf#167714).
Tomaž pushed forward the EMU-based Length type approved a few weeks ago, converting a large batch of Writer measurement code to use gfx::Length — indent measurements, tab stops, footnote heights, table line heights, and more. Strongly-typed lengths, rolling out across the engine one module at a time.
AI Assistant: Smarter Slide Decks
Rashesh landed a big body of work making the AI assistant’s slide generation much more capable: it now proposes an editable outline before building the deck, compiles a declarative deck spec into slide commands, enriches decks with notes, alt text, and emphasis, places generated slides on the picked template’s masters, and offers slide-design templates with an in-chat picker. A much more polished AI presentation experience.
Impress & Draw
Banobe’s animated GIF playback landed — GIFs now play in slideshow and editing modes in Impress and Draw. Darshan added a Distribute group to the object UI of Impress and Draw, and made notes formatting show in the presenter console (cool#13397). Bayram added the ability to resize and rotate all selected objects from one handle.
Vector Rendering
Tomaž continued the JS vector renderer at pace: it now loads and draws the engine’s fonts for text, compresses the font transport, adds a bitmapAlpha primitive, and manages graphics memory by discarding caches when idle or reclaimed. He also cleaned up pivot table rendering — drawing all output formatting in one class with a single thin line width, replacing the old heavy borders.
PDF Security & Correctness
Michael Stahl did careful work on PDF export encryption — fixing bad /Length values with encryption, an off-by-one in the R6 hash, and padding. He also stopped passwords being set on binary MS Office docs where it isn’t safe.
Dynamic Zoom: Landed
Following weeks of careful work, Sahil’s dynamic zoom rework landed — calculating and setting the zoom before requesting tiles, showing the sidebar early when flagged, and refactored into clean helpers with dev-notes documenting how it all works. Thank you Sahil for the patience and the documentation.
Accessibility
Henry Castro continued the a11y push — detecting whole-row selections with the correct column count, documenting F6 and Shift+F10 navigation, and testing keyboard access at 400% zoom. Samuel Mehrbrodt fixed a cluster of focus and interaction issues: Esc closing the context menu, restoring focus to the document after choosing a combobox entry, and showing protected cell content read-only in the formula bar.
Data Loss Prevention
Samuel also fixed an important one: preventing data loss when closing a browser tab before ending a cell edit (cool#1501) — the kind of fix that quietly saves someone’s work.
Reduced Motion
Darshan added motion tokens that honor prefers-reduced-motion — respecting the accessibility preference of users who find animations distracting or uncomfortable.
Build & Engine Cleanup
Stephan continued the substantial automake-to-gbuild migration, switching coolwsd, the coolforkit variants, coolmount, coolconfig, and the SIMD delta tools over, along with a long prequel of code-cleanup fixes. Andras did extensive build-system work making the gbuild path consume POCO, OpenSSL, Cppunit and zlib from the engine consistently, and building warning-free with GCC 12. Noel Grandin ran another sweeping canvas cleanup and continued the cpo:: namespace migration. Michael Meeks landed a nice Calc fix — detecting and excluding filter/pivot headers from sorting (cool#16004).
Design Meeting
The UX/UI Design Meeting was back this week with a thoughtful agenda:
Simplifying arrow styles — Ivana raised whether the many marker/arrow variants could be trimmed (there are six variants of essentially the same simple arrow). Heiko added an important caution: some of those styles aren’t decorative — they come from standards like UML — so the team will check the origins before removing anything. A good example of design and domain knowledge working together.
The overflow-group question — The team worked through how to make it clearer whether a toolbar element is a single button or a button-plus-arrow pair, landing on keeping the current UI but refining hover effects and how disabled states are shown.
Impress navigation — A new icon is needed for closing the full-screen slide grid, and Ivana is preparing a full-screen icon. The team also reviewed a new distribute group for Impress and Draw and a new back-arrow button for the styles deck.
The Forum
The forum continues to provide support:
A community member documented their solved setup of CODE 26.04 behind an Nginx reverse proxy, with a thorough “here’s how I fixed it” thread to helps everyone who follows.
And in the iOS TestFlight thread, Skyler kept the community updated on the 26.04 mobile build’s progress through Apple review — open, honest communication that users clearly appreciated.
Community Calls
-
TC Meeting (August 5) — release engineering (COOL 26.04 red-code tagging), patch review, CI, crash testing, ODF extensions documentation, and SmartArt progress from Regina
-
Collabora Online Weekly Meeting — mobile builds (Skyler, Maya, Karthik now on the team), dynamic zoom landing, CODA-Q fixes, Attila’s Calc print preview fix, testing sessions with Heiko
-
UX/UI Design Meeting — arrow styles, overflow groups, Impress navigation, distribute group, styles-deck back arrow
All minutes on the forum under meeting-minutes.
Get Involved
The community keeps growing — more contributors, more translators, more tools to see it all. Whether you write code, translate, test, design, or document, there’s a place for you.
See the Community Pulse: collaboraoffice.org/post/pulse/
Find an easy hack: collaboraoffice.org/post/easyhacks/
Try the latest builds: collaboraoffice.com/downloads/CODA-Hd7wwbJWxm/
Help translate: hosted.weblate.org/projects/collabora-online/
Community page: collaboraonline.github.io/post/communicate/
Forum: forum.collaboraonline.com
Chat on Matrix: #cool-dev:matrix.org
Browse open changes: gerrit.collaboraoffice.com
See you in the code.