Collabora Online Community Roundup #2

Two weeks ago today, Collabora Online has moved to its new home on GitHub, and started settling in the new infrastructure, expanding its fantastic community, and continuing the work to deliver the latest and greatest developments in productivity and collaboration together. Check our new community website for all the details! 😉

Collabora developers also keep fixing and improving our lovely mother project LibreOffice. As all the good work requires some appreciation, let’s take a look at what the seasoned developers of the Collabora team, and the volunteer contributors from our community have been doing during the last week.

Week in Numbers

On the Collabora Online code repository in the last week, 41 authors have pushed 97 commits to master and 165 commits to all branches. On master, 1,276 files have changed and there have been 11,658 additions and 12,101 deletions.

Screenshot of GitHub Pulse for Collabora Online
Development Activity on Collabora Online GitHub Repository from October 8, 2020 to October 15, 2020
  • Commits on LibreOffice master by the Collabora team: 32
  • Total number of commits on Collabora Online master: 97

New Contributors

Congratulations to Rizal Muttaqin, Alan Verdugo, corleone77,  Batuhan Görkem Benzer, Dilaver Demirel, Pelin Kuran, Andreas Kainz, Buğra Kurt, Yusuf Keten, Mücahid Aydin for their first pull requests, and elpraga and Julius Härtl for reporting their first issues and improvement requests on our GitHub repository!

  • Thanks to Rizal Muttaqin for syncing our Colibre icon sets, making them match the newest Colibre color scheme, and also updating Impress sidebar icons, thus making the general look of Collabora Online more appealing and coherent in colors.
  • Thanks to Alan Verdugo[0], corleone77[1], Batuhan Görkem Benzer[2] and Mücahid Aydin[3] for improving our Python scripts by fixing Pylint errors, thus increasing readability, and making them more developer-friendly.
  • Thanks to Dilaver Demirel[0], Pelin Kuran[1] and BuÄŸra Kurt[2] for fixing code styling issues on our Javascript files towards upgrading our eslint version to 4.0.0. This will bring a bunch of fixes and improvements for one of our depended libraries.
  • Thanks to Andreas Kainz for catching the discrepancy between the widths of Style and Font dropdown lists, and fixing it quickly. He also has multiple other pull requests and issues created, currently in-review, aiming for different fixes and improvements such as syncing COOL icon path with LibreOffice icon path, which will make it way easier to sync icon work between COOL and LibO in the future. Another pull request he is working on together with Pedro Pinto Silva is on revamping the menubar content and arrangement to be in alignment with LibreOffice.
  • Thanks to Yusuf Keten for porting unique pointers in wsd to Util::make_unique(), thus preventing possible memory leaks.

Thank you all, and welcome aboard! 🙂

Join the fun!

You can also join the fun, and be part of our next list of new contributors! 🙂

Just go to our GitHub repo, fork it, build it, grab one of our newcomer-friendly easy hacks, and send your first pull request. And if you get stuck at any point, just drop by one of our communication channels.

Oh, last but not least: We are also participating in the Hacktoberfest. So don’t forget to check our hacktoberfest issues. 😉

Highlights

New, easy way to build and test

To start developing, you need to first build CODE, and we have build instructions for you on our community website. However, they were a bit generic to be compatible with different platforms & Linux distros. Now we have started adding straightforward, easy-to-follow instructions specific to different distros, and the first one is Ubuntu 20.04 LTS. If you are on a different distro, and would like to contribute a new set of instructions for it, please feel free to get in touch!

Thanks to our new daily archives of LibreOffice core builds, now you can just download the necessary pieces and directly start building CODE itself, instead of also build LibreOffice core from scratch.

And as always, please don’t hesitate to report any issues, or better, send pull requests to fix them. 😉

Now easy to get developing on any platform!

On top of our daily LibreOffice core archives, we have also added integration support for Gitpod, a cloud based development environment. Now you can start hacking Collabora Online in under ~5 minutes! You might want to keep an eye on our Twitter account in case a quick video tutorial comes up in the following days. 😉

Steps to quick start:

  • Sign-up on Gitpod.io with your GitHub account
  • Install the proper extension for your browser
  • Go to COOL repo
  • Click on the green Gitpod button

    Gitpod button near the top of the GitHub repo page
  • Wait for a few minutes, and you will have a full development environment with COOL already cloned & built, ready-to-start/develop

    Screenshot: Gitpod, your development environment for Collabora Online on the cloud
    Gitpod, your development environment for Collabora Online on the cloud
  • Don’t forget to also fork the main repo
  • And set the remote address in .git/config to point to your fork’s address with this command:
    git remote set-url origin https://github.com/PUT-YOUR-GITHUB-USERNAME-HERE/online.git

Happy hacking! 🙂

Collabora Online (COOL)

  • Starting to develop Collabora Online is now easier and quicker than ever, thanks to initial support for Gitpod -cloud-based development environment- being merged by Muhammet Kara.
  • Thanks to Miklos Vajna for introducing Util::make_unique() method which helps to prevent potential memory leaks in case of an exception thrown between the allocation of memory for a raw pointer and the construction of an std::unique_ptr, and also for hardening COOL by fixing a potential issue.
  • Thanks to Szymon KÅ‚os for fixing interference of sidebar tooltips between views, causing a mix-up of languages, and for fixing a crash which occurs while using a mobile phone when leaving chart edit mode with chart type modified. He also fixed a bug that caused pasting images with Ctrl + V not working properly on Calc and Impress documents.
  • Thanks to Mert Tümer for fixing a bug that caused read-only documents not automatically switching to edit mode after a copy of it being saved to users’ local storage, thus also improving the user experince while working with copies of documents. He also made sure an exception on localStorage, which caused errors during document load and also the welcome dialog being shown repetitively, is now handled properly, thus improving the user experience for users of private browsing or incognito mode, along with other changes towards better user experience and under-the-hood improvements.[0][1]
  • Thanks to Gökay Åžatır for improving the Hide Sheet and the Copy Hyperlink functions. Now you can hide any sheet with right click even when the sheet is not currently active; and hyperlinks are copied & opened as expected.
  • Thanks to Pedro Silva for continuing his work on making COOL shinier and appealing, with various improvements[0][1] like making sure generated buttons look natural, and the correct icons are used in the toolbars.
  • Thanks to Pranam Lashkari for fixing an issue causing the cursor appearing different than expected on multi-user scenarious while editing an Impress document, and also fixing an error in parsing timestamp for X-LOOL-WOPI-Timestamp, thus improving consistency of logs & messages.
  • Thanks to Henry Castro for working on various fixes and improvements like fixing an issue which causes Writer not having a ruler on start sometimes, and improving cypress parallel run script.
  • Thanks to Jan Holesovsky, it is now possible to edit chart subtitles also from within the mobile wizard.

Collabora Office on Android & iOS

  • Thanks to Mert Tümer for introducing the dark theme support for Android, fixing the libnssckbi not found error on Android, thus making it possible to open password-protected documents. He also made the Save as option offered while switching edit mode on Android. Check out his blog post for the details.

    Screenshot of Collabora Office on Android with the new Dark Theme
    Collabora Office on Android with the new Dark Theme
  • Test coverage for our mobile code has been extended,[0][1][2] thanks to Tamás Zolnai, which will help us maintain a certain level of quality and stability, preventing unexpected issues being added to the code-base during development. Our mobile code-base is also a bit lighter, and easier to maintain, thanks to some dead code removal by him.
  • Thanks to Tor Lillqvist for various fixes and improvements on the iOS platform, including making the key combinations like Cmd-C and CMD-X work properly[0][1] and improving keyboard functionality in tunnelled (directly coming from LibreOffice) dialogs by making sure the keyboard stays usable when user taps on a field other than the one he/she was directed to. He also did some improvements[0][1] in the debugging experience, thus making our code more developer-friendly.
  • Thanks to Jan Holesovsky, mobile apps integrating Collabora Online in an iframe can now handle the hyperlinks in their own ways.

Collabora Online Integrations

  • Thanks to Thomas Müller of ownCloud for making sure updated translations for Collabora Onlines’s ownCloud integration landed on its repo safely.
  • Thanks to Julius Härtl of Nextcloud, for getting a lot of fixes and improvements merged on Collabora Online’s Nextcloud integration, including dependency upgrades, ux improvements, bug fixes, and extending the documentation.
  • Activity Module, Collabora Online integration for Moodle, now has support for fullscreen without using ‘requestFullscreen’, thanks to Andreas Grabs.

Honorable Mentions

  • Thanks to both Andreas Kainz and Rizal Muttaqin for coming to aid of Pedro Silva, Collabora Online’s lead designer, to help Collabora Online look even better.
  • Thanks to Adolfo Jayme-Barrientos and Rizal Muttaqin, for letting us know about translation platform alternatives better aligned with our open-source mission. We are now on Weblate!
  • Thanks to Tamás Zolnai, we now have 3 more easyhacks[0][1][2] to help our new code contributors get used to the project. Feel free to give them a try! 😉
  • Thanks to Yunusemre Åžentürk for fixing a build issue preventing us from producing new snapshots for Online 6.4 series. It got broken on switch to GitHub, but is now working again. He also worked on providing weekly snapshot builds of Collabora Office for Android on F-Droid, and set-up various bits on the infra side to complete our repo’s integration with Gitpod and provide daily archives of LibreOffice core build, which is needed to reduce CODE build time drastically for development purposes.
  • Thanks to Thaís Vieira for working on various tasks and doing translations on our new project on weblate.
  • Thanks to Tor Lillqvist for cook-ing up several fresh builds both from the 4.2 and 6.4 series for the iOS platform, and releasing 4.2.11 and 4.2.11-1 versions.
  • Thanks to Marc Rodrigues for continuing to keep us updated on various news around Collabora Online and related FOSS projects, and creating a lot of yummy content to read!
  • Thanks to Pedro Silva for working with our new design contributors, and helping them get used to the workflow. He also likes sharing his experience with the newcomers through our forum and improving our community website.
  • For verifying several reports and test cases, thus ensuring the quality of the software, thanks to Nnamani Ezinne Martina! We also heard that she has started reading docs on Cypress, so we might also see some automated tests written by her in the future.
  • Thanks to Andras Timar for keeping us organized, setting up our new translation project on Weblate, and delivering hot new releases of our software!
  • Thanks to Marco Cecchetti for working on some new surprises -hint: more integrations ;)- for us.
  • Thanks to Jan Holesovsky for doing a lot of research on different topics, and providing mentoring/patch-reviewing/hand-holding/wisdom within the team, in our communication channels, and also on various channels of our lovely mother project LibreOffice.
  • Thanks to Eloy Crespo for his efforts to help the project well-funded as always.
  • Thanks to Cor Nouws for leading the marketing team, and not stopping there but continuing with testing & reporting bugs, attending to community events, and keeping us all informed about what’s going on.
  • Your friendly community mentor, Muhammet Kara, is also creating & improving easy hacks, running workshops, helping new contributors solving their setup & build issues and reviewing their pull requests, working on easing the build procedure, improving our GitHub presense bit by bit based on its community guidelines, compiling/composing these community updates…

Translators

Last but not least, we can’t thank enough to our translators who constantly help COOL and its friends talk many languages on this earth. Collabora Online speaks many languages, thanks to all of our translators in our translation project, and all of those who previously contributed and keeps contributing to our mother project, LibreOffice.

We’re continuing to work to find good ways to credit translators’ hard work in the product. Please see a list of those involved, and please get in touch if you’re not listed. Many thanks to all those who have worked on translating Online, you rock!

Listening to our translators

In the previous weeks, our translators reported that the platform we were using was once open source, but no longer, and there are open source alternatives that can be used in alignment with our open source mission/spirit. So we listened, and switched to weblate!

If you would like to help COOL speak your language, you can just go to our translation project on weblate, and start contributing! 😉

Collabora loves LibreOffice!

We’re still contributing to LibreOffice and encourage you too to do so because LibreOffice rocks. 😉

  • Thanks to Tomaž Vajngerl for continuing his work on improving support for annotated PDF documents: creating a PDFAnnotationMarker class that holds various properties of markers, implementing OverlayPolyPolygon to serve as an overlay for the annotation, and extending the PDFium library by adding support for reading border properties from PDF annotation, along with some clean-ups to improve readability. Check out his blog post for the details.

    Screenshot: Pop-up Note annotation in PDF viewer (Evince) and Draw
    Pop-up Note annotation in PDF viewer (Evince) and Draw
  • Thanks to GülÅŸah Köse for continuing her work on fixing the z-rotation positioning of certain text in imported PPTX files, and thanks to Miklos Vajna for unblocking her way when she needs.
  • Thanks to Pranam Lashkari for improving stability of Impress by fixing a crash which was happening while duplicating a slide with hidden slidepan.
  • It is now possible to edit title and subtitle of charts from the sidebar, thanks to Jan Holesovsky.
  • Thanks to Miklos Vajna, for various fixes and improvements around pdfium, one of the libraries LibreOffice depends on for PDF handling, like removing some unused bits to make the code-base ligher, and adding more methods to make it integrated into our code-base in a better way.[0][1]

Collabora Online Community Roundup #1

Last week, Collabora Online has moved to its new home on GitHub, and started settling in the new infrastructure, expanding its fantastic community, and continuing the work to deliver the latest and greatest developments in productivity and collaboration together. Check our new community website for all the details! 😉

Collabora developers also keep fixing and improving our lovely mother project LibreOffice. As all the good work requires some appreciation, let’s take a look at what the seasoned developers of the Collabora team, and the volunteer contributors from our community have been doing during the last week.

Week in Numbers

On the Collabora Online code repository in the last week, 21 authors have pushed 123 commits to master and 209 commits to all branches. On master, 274 files have changed and there have been 2,317 additions and 1,601 deletions.

Screenshot of GitHub Pulse for Collabora Online
Development Activity on Collabora Online GitHub Repository from October 1, 2020 to October 8, 2020
  • Commits on LibreOffice master by the Collabora team: 68
  • Total number of commits on Collabora Online master: 123

New Contributors

Congratulations to Kandarp Patel, Guy Lunardi, Yunus Bulut, and Andrea Gelmini for their first pull requests, and Andreas Kainz, Adolfo Jayme-Barrientos, and xklonx for reporting their first issues and improvement requests on our GitHub repository!

  • Thanks to Kandarp Patel for resolving the easy hack to ensure consistent function declarations, thus reducing code size a bit and improving readability. He had minor trouble with the Change-Ids on the first PR. Then Jan Holesovsky (a.k.a kendy) came to his aid, and he did just fine with his second PR. (By the way, Miklos Vajna has already made sure, such “missing Change-Id” problems will not occur again.)
  • Thanks to Yunus Bulut for killing WebDAVStorage in the code, thus getting rid of an unused/unneeded piece and making the code lighter.
  • Thanks to Andrea Gelmini, our code-base is now cleaner and more readable.
  • Thanks to Andreas Kainz, we have one more pair of expert eyes now, watching for user interface consistency and beauty.
  • Thanks to Adolfo Jayme-Barrientos for letting us know about translation platform alternatives better aligned with our open-source mission. We are acting on it. 😉
  • Thanks to xklonx for letting us know about the small inconsistency in the X-LOOL-WOPI-Timestamps.

Thank you all, and welcome aboard! 🙂

Join the fun!

You can also join the fun, and be part of our next list of new contributors! 🙂

Just go to our GitHub repo, fork it, build it, grab one of our newcomer-friendly easy hacks, and send your first pull request. And if you get stuck at any point, just drop by one of our communication channels.

Oh, last but not least: We are also participating in the Hacktoberfest. So don’t forget to check our hacktoberfest issues. 😉

Highlights

Collabora Online (COOL)

  • A potential JS issue was fixed, increasing security and stability of Collabora Online, thanks to Miklos Vajna
  • Convert-to API can now handle file names with non-ASCII characters[0][1][2], thanks to Henry Castro
  • ‘make dist’ error on openSUSE Leap 15.2 was fixed, thanks to Henry Castro
  • It is now much easier to theme COOL from outside the iframe by posting the CSS variables in the loleaflet.html, which will be showing up as improved looks of various integrations, thanks to Jan Holesovsky
  • Jan Holesovsky merged his work on the CanvasTileLayer to the code base, which helps make our rendering crisper at all zoom levels, particularly with an ongoing Chrome issue of odd device pixel ratios.
  • The Area panel of the Chart sidebar now resizes properly, allowing gradients to be selected again[0][1], thanks to Szymon KÅ‚os
  • Writer’s Split Cells dialog is now async, and thus works fluidly in the online collaborative environments, thanks to Szymon KÅ‚os.
  • Sidebar dropdowns are now shown properly all the time, with a correct layout on Impress, along with properly placed tooltips, thanks to Szymon KÅ‚os [0] [1]
  • It is now possible to copy the hyperlink location on a text via the context (right-click)  menu, thanks to Gökay Åžatır.
  • “Show Sheet” buttons are now localizable, and the npm packages under the hood are shinier, thanks to Gökay Åžatır.
  • Thanks to Thaís Vieira for working on making all the tooltips look more coherent, with the same coloring.
  • Thanks to Pranam Lashkari, it is now easier to work with comments on Impress, with no more focus issues.
  • The language selection list is now properly localized and displayed, thanks to Pranam Lashkari.
  • Several items on the user interface have met with their missing icons, and visually improved thanks to Pedro Silva. [0] [1]
  • Created easy hacks for new developers, thanks to various Collabora developers

Collabora Office on Android & iOS

  • Area tab of the Chart Sidebar now shows the correct default color, thanks to Szymon KÅ‚os.
  • Newly inserted hyperlinked text is now properly placed within the visible area of the slide on iOS, thanks to Szymon KÅ‚os.
  • On iOS, the input bar is now accessible before opening the sidebar, thanks to Tor Lillqvist.
  • Thanks to Tor Lillqvist for making new iOS builds available for testing.

Collabora Online Integrations

  • For Collabora Onlines’s ownCloud integration, a pull request to improve user experience in terms of automatic locale setting on new files was created by Andras Timar of Collabora, reviewed and merged by Juan Pablo Villafañez and Phil Davis of ownCloud.
  • For Collabora Online’s Nextcloud integration, multiple npm components under-the-hood has been updated[0] [1] [2], thanks to Julius Härtl.
  • Activity Module, Collabora Online integration for Moodle, now has simple support for multiple languages, thanks to Andreas Grabs

New Workflow & the CI Issues

We write and use a lot of unit tests and cypress tests, and also run them integrated into our GitHub flow, to ensure code/product quality. On October 5, our CI for master stopped giving green lights because of a unit test failure, and it got fixed during the night, thanks to Henry Castro.

As we have just moved to GitHub, we are still getting used to the new environment, and trying to make the developer experience smoother for all of us. So please bear with us in this warm-up phase, and don’t hesitate to report any issues, or better, send pull requests to fix them. 😉

Honorable Mentions

  • For various improvements around web content, and compiling the translator credits for Collabora Online, and ensuring the quality of the software, thanks to Nnamani Ezinne Martina!
  • Thanks to Marc Rodrigues for keeping us updated on various news around Collabora Online and related FOSS projects, and creating a lot of yummy content to read!
  • Thanks to Andras Timar and Yunusemre Åžentürk for keeping our servers running!
  • Thanks to Yunusemre Åžentürk for setting up our CI chains, and keeping them healthy, thus allowing us, developers, to focus on the actual development!
  • Thanks to Andras Timar for keeping us organized, setting up our new home on GitHub, and delivering hot new releases of our software!
  • Thanks to Tamás Zolnai for keeping our cypress tests in shape, allowing us to ensure COOL works flawlessly on browsers all the time!
  • Thanks to Pedro Silva for helping COOL look cool all the time, by using his graphics and design magic, and for crafting our new community page!
  • Thanks to Guy Lunardi for correcting small punctuation and text issues on the README file, and on our community page.

Translators

Last but not least, we can’t thank enough to our translators who constantly help COOL and its friends talk many languages on this earth. Collabora Online speaks many languages, thanks to all of our translators in our translation project, and all of those who previously contributed and keeps contributing to our mother project, LibreOffice.

We’re continuing to work to find good ways to credit translators’ hard work in the product. Please see a list of those involved, and please get in touch if you’re not listed. Many thanks to all those who have worked on translating Online, you rock!

Collabora loves LibreOffice!

We’re still contributing to LibreOffice and encourage you too to do so because LibreOffice rocks. 😉

  • Thanks to Miklos Vajna, Impress now has support for an improved auto-fit-of-text layout across multiple shapes, also the snake algorithm now handles width requests from constraints much better for SmartArt graphics from PPTX files. This builds on top of the previous improvements around SmartArt support. Check out his blog post for the details.
    Smartart snake rows, new output

    Smartart snake rows, old output
  • The formatting on the first paragraph of the content, inserted from a file via scripting is now properly preserved all the time, thanks to Miklos Vajna.
  • The default color and the gradient color selection controls on the Chart sidebar are now working properly, thanks to Szymon KÅ‚os
  • Thanks to Tomaž Vajngerl for a lot of improvements on annotated PDF documents: integrating some extended PDFium functions into LibreOffice, allowing to be able to handle certain properties like InkStrokes and Vertices, and expanding the range of the known annotation types, thus improving compatibility with external PDF tools.
  • Thanks to Dennis Francis for working on improving Calc’s performance by resolving issues caused by spell-checking on cells, and adding features like SharedStrings to cache duplicate words, which would especially result in a significant performance gain on large pivot data ranges etc. This change is expected to be even more effective on Online.
  • Thanks to GülÅŸah Köse for working on fixing the z-rotation positioning of certain text in imported PPTX files.
  • Thanks to Ivan Stefanenko for improving accessibility on Writer documents by adding a check for headers inside tables [0], on top of the work he has been working on for a while now. [1] [2] [3]
  • Thanks to LuboÅ¡ Luňák for various improvements and fixes around our new drawing backend based on the Skia library, which allows LibreOffice to use the modern Vulkan API to graphics operations. The results of his recent work should be visible primarily on Windows platforms. All his patches can be seen on gerrit[0], including some fixing crashes[1], ensuring quality by adding more tests[2][3][4], and improving performance[5][6][7][8].
  • Thanks to Tor Lillqvist for his work on Building LibreOffice for Windows on WSL (Windows Subsystem for Linux), towards making it much more easier & convenient developing LibreOffice on Windows. [0][1][2][3] We’re looking forward to seeing its completion. 🙂