Darshan Upadhyay
A quieter week on the calendar but a busy one in the code — a community contributor brought an experimental Python =PY() function to Calc, callables became first-class objects in Calc formulas, and plenty of solid engineering landed across the board. Here’s the roundup.
The Numbers
This week: 401 commits merged by 35 contributors. All-time since April 2nd: 6,678 commits merged from 71 contributors, with 264 open changes on online/main.
Top reviewers this week: Caolán McNamara (82), Noel Grandin (58), Michael Stahl (27), Miklos Vajna (19), Stephan Bergmann (14), Szymon Kłos (14), Sarper Akdemir (5), Tor Lillqvist (4), Henry Castro (3), Mike Kaganski (3).
Even with a lighter release schedule this week, the review engine kept running — a huge thank you to Caolán with 82 reviews.
A warm welcome to new contributor Maya Stephens, who landed Android version bumps this week — thank you for jumping in!
What Developers Are Building
Here’s what the team explored and built this week:
Automake → gbuild (Stephan) — Stephan took on an ambitious build-system project: moving the C++ parts of Online from automake to gbuild. Unifying the build tooling is deep, foundational work.
In-Place Flamegraph Profiling (Caolán) — Caolán built an admin-console in-place flamegraph profile for a target document — letting you see exactly where time is being spent, right from the admin console. A powerful tool for hunting down performance issues.
Vector Rendering Polish (Tomaž) — Tomaž continued refining the vector renderer, fixing crop and invalid-graphics issues. Vector rendering is now committed — add &vector=true to the URL to try it (Impress only for now). He also dug into pivot table styles: moving output writing to a new class, simplifying the default style, and removing the heavy borders in favor of a cleaner look, on the way to implementing OOXML styles.
NSS Update (Michael Stahl) — Michael updated NSS (the security/crypto library) — a relatively smooth upgrade this time — and worked on converting the ODF implementer notes.
Staging-Perf Reliability (Adrià) — Adrià worked on making the staging-perf environment update reliably on every commit, refining the process so performance testing stays current.
Translations (Luna) — Luna worked on updating the Swedish translation, coordinating with Leif-Jöran to keep it moving. Localization is one of the most impactful ways to make the software better for real users.
From the Forum: =PY() Python in Calc
One of the most exciting community threads reached a milestone this week. KeithCu — who’s been developing the idea of bringing Python into Calc — submitted an experimental MVP to Gerrit: a =PY() compute AddIn that runs Python (with a separate compute service), broadly modeled on how the AI chat integration talks to an external service. He shared the news and a detailed roadmap on the forum thread.
It’s early and experimental — default-off, with the compute service installed separately for now — but it’s a genuinely interesting look at what spreadsheet extensibility could become. Keith also laid out a thoughtful multi-phase roadmap covering Calc parity (auto-spill, dynamic arrays), authoring UX, Excel-file support, and more. The discussion with Michael Meeks about how to fit Python’s fixed calculation order into Calc’s flexible dependency graph is well worth a read for anyone curious about spreadsheet internals.
This is exactly the kind of ambitious idea that open source makes possible — a community contributor prototyping a major feature in the open, with the core team engaging on the design.
And Plenty More Shipped
Callables as first-class objects in Calc — Benjamin Urban landed a substantial feature: callables as first-class objects in Calc formulas, building on the earlier LAMBDA work. A real step forward for advanced spreadsheet users.
Remove Duplicates in Calc — Balázs added a Remove Duplicates command to the Table tools and a Handle Duplicates entry in the data notebookbar tab, plus fixed resizing a formula reference range by dragging its handle. He also showed all users on the same cell in the username popup — a nice collaborative touch.
PDF trailing-space rendering — Mike Kaganski did a careful series of fixes so trailing blanks and their decorations (underlines, highlights) paint correctly in PDF export and on screen (tdf#171959, tdf#171688, tdf#168777) — the kind of detailed typographic correctness that makes documents look right.
Graphic cropping survives rotation — Tomaž made graphic cropping survive rotation and continued advancing vector rendering, including composing colour-modifier filters and applying the full text matrix when drawing vector text.
Slide sorter improvements — Pranam made the slide sorter maximize into a grid, rename a section by double-clicking its header, and improved the drag experience with proper drag ghosts and insertion gaps.
Presenter console accessibility — Caolán added aria labels for the current/next slide previews and fixed several focus and labelling details in the presenter console, continuing the strong accessibility push.
Health check endpoints — Michael Meeks added /livez and /readyz health-check endpoints — a practical improvement for anyone running Collabora Online in Kubernetes or behind a load balancer.
Robustness & security — Caolán landed an enormous run of fuzzer-driven robustness fixes across the font, EMF, WMF, RTF, and drawing import paths — the unglamorous, essential work that keeps the software safe when handling untrusted files. Michael Stahl upgraded NSS to 3.126 and improved random-number usage across several modules.
And underneath all of it, Noel Grandin continued his sweeping canvas and UNO cleanup, and Tor Lillqvist did a thorough modernization of the COKit enumerations and headers.
CI and Infrastructure
Even in hack week, the infrastructure kept improving:
Caolán turned on --enable-pch on the ccache-using Windows CI, speeding up Windows builds. Windows builds for the coc-25 and coc-26 branches were enabled on a build machine, helping the Windows side further. CI turnaround on online/main is holding at a healthy median of around 2.5 hours, with the success rate continuing to climb. And new hardware is arriving — including a new Mac mini (M4) to help with Mac builds and testing.
Crash Testing
Crash testing sits at 62 this week. A previously-hidden layout issue surfaced after recent numbering improvements — the kind of thing that gets caught precisely because the crash-testing process is thorough — and it’s already being worked on. The prior week had reached 55 with strong progress, so the trend remains healthy
Get Involved
This project thrives on curiosity and experimentation. Whether you want to prototype something ambitious, fix a bug, translate, or explore — there’s room for it here.
Try the latest builds: collaboraoffice.com/downloads/CODA-Hd7wwbJWxm/
Help translate: hosted.weblate.org/projects/collabora-online/
Easy hacks: github.com/CollaboraOnline/online/issues?q=label:easy-hack
Community page: collaboraonline.github.io/post/communicate/
Design system: collaboraoffice.org/design-system
Forum: forum.collaboraonline.com
Chat on Matrix: #cool-dev:matrix.org
Browse open changes: gerrit.collaboraoffice.com
See you in the code.

