Document Foundation Planet - Latest News
- Michael Meeks: 2023-09-26 Tuesday (2023/09/26 21:00)Early partner call, chewed mail, brief catch-up with Pedro, partner call, lunch. Sync with Eloy, monthly management meeting. Somehow after a week of conference, trying to get back into sitting-in-one-spot-all-day mode again. Couple of interviews. Productivity All Hands call - the mis-pronunciation of Customers as Costumers - never ceases to mildly amuse me and enlivens things: Costume Drama - the way to go. Checked in and booked parking for the Seafile Conference tomorrow. Poked at profiles, tickets, research etc.
- Official TDF Blog: Important release of LibreOffice 7.6.2 Community and LibreOffice 7.5.7 Community with key security fix (2023/09/26 13:21)Berlin, 26 September 2023 – The Document Foundation is releasing LibreOffice 7.6.2 Community and LibreOffice 7.5.7 Community ahead of schedule to address a security issue known as CVE 2023-4863, which originates in a widely used code library known as libwebp, created by Google more than a decade ago to render the then-new WebP graphics format [1]. In addition to the CVE, the two new versions fix other bugs and regressions and are available immediately from www.libreoffice.org/download [2]. All users of LibreOffice are encouraged to update their current version as soon as possible. The minimum requirements for proprietary operating systems are Microsoft Windows 7 SP1 and Apple MacOS 10.15. For enterprise-class deployments, TDF strongly recommends the LibreOffice Enterprise family of applications from ecosystem partners – for desktop, mobile and cloud – with a wide range of dedicated value-added features and other benefits such as SLAs: www.libreoffice.org/download/libreoffice-in-business/. The Document Foundation does not provide technical support to users, although it is available from volunteers on user mailing lists and the Ask LibreOffice website: ask.libreoffice.org. LibreOffice users, free software advocates and community members can support the Document Foundation by making a donation at www.libreoffice.org/donate. [1] Details of CVE 2023-4863: nvd.nist.gov/vuln/detail/CVE-2023-4863. Bugzilla: bugs.documentfoundation.org/show_bug.cgi?id=157231. [2] Change logs for LibreOffice 7.6.2 Community: wiki.documentfoundation.org/Releases/7.6.2/RC1 and LibreOffice 7.5.7 Community: wiki.documentfoundation.org/Releases/7.5.7/RC1.
- Michael Meeks: 2023-09-25 Monday (2023/09/25 21:00)Dropped E. to school. Planning call, lunch, marketing content call. Admin bits. Packed the car, managed to ge the bike rack on the back; set off with J, and N. to Loughborough. Got N. fed, settled into her room, and partially unpacked. Blessed her & bid 'bye. Out for a burger in town, and drove home together; another daughter not at home: traumatic.
- Michael Meeks: 2023-09-24 Sunday (2023/09/24 21:00)Somehow ended up hacking over midnight; got AVX2 profiled - 2x faster than optimized C++ - for processing 8 pixels at once, a somewhat smaller win than expected. Got home very early, sleep. Up at midday for brunch with N. M. and E. - lovely to see them and spend time with them again. StAG in the evening; passionate sermon explaining the text with a Welsh flavour - lovely. Home to see J. and H. - back from Durham and to catch up with their news. Picked up babes, found lost soldering iron(s) for H. and had the fun of building a set of tools for N. to take to University. Bed early.
- Michael Meeks: 2023-09-23 Saturday (2023/09/23 21:00)Up; snatched breakfast at speed; got to the venue just in time to give a reasonably stock talk to students on why contributing to LibreOffice is awesome for student's skills as developers. Call from H. trying to find a soldering iron to mend a failed Philips LCD screen PSU board; on to talk a little about a few economic themes. Caught up with Florian at some length; its been too long; bid 'bye to many friends, thanked Gabriel and other 1&1'ers - and headed for dinner with Caolan, Cor & Uwe. Got to the Airport early; RyanAir flight delayed by around an hour shock - on-time RyanAir flights appear to be like the yetti for me. Got blog updated, and slides up-loaded on the plane.
- Michael Meeks: 2023-09-22 Friday (2023/09/22 21:00)Up lateish; listened to a somewhat saturated Caolan's crash-testing talk on jitsi streaming - hopefully the recordings will be great quality. To the venue, talked to lots more people back to back. Held an impromptu talk for Uwe and some others on COLEAT - Tor's IAT patching interception wizardry - finally noticed. Community dinner in the evening; up until early in the morning working on slides.
- Official TDF Blog: LibreOffice Conference 2023: Group photos (2023/09/22 11:51)
- Official TDF Blog: The LibreOffice Conference 2023 begins! (2023/09/21 10:56)Yes, it has started! Check out the conference website for live streams and more information – and a big thanks to the organisers, sponsors and supporters. Here’s to a great event
- Official TDF Blog: LibreOffice Conference 2023 in Bucharest (2023/09/15 22:30)LibreOffice Conference 2023 will be hosted by the Universitatea Națională de Știință și Tehnologie Politehnica București, Facultatea de Automatică și Calculatoare (National University of Science and Technology, Polytechnic University of Bucharest, Faculty of Automation and Computer Science) at the PRECIS building from Wednesday 20 September to Saturday 23 Septembe. On Wednesday, the community will gather for the usual community meeting to discuss localisation and marketing activities at the local level. The conference will open on Thursday morning and continue with talks and workshops until Saturday lunchtime (schedule). Alongside this, there will be a technical workshop focusing on LibreOffice development. The conference is sponsored by Collabora Office and Allotropia (main sponsors), dvloper.io and 1&1, with a significant contribution from The Document Foundation, and the technical support of IT Genetics. The event has been organized by a local team of volunteers, backed by 1&1 and supported by the team at The Document Foundation with the help of local NGOs Rosedu and Tech Lounge. More information on the conference website.
- Official TDF Blog: LibreOffice and Google Summer of Code 2023: The results (2023/09/15 07:02)This year, LibreOffice was once again a mentoring organization in the Google Summer of Code (GSoC), a global program focused on bringing more student developers into free and open source software development. Five projects were finished successfully. Students and mentors enjoyed the time, and here we present some of the achievements, which should make their way into LibreOffice 24.2 in early February 2024! You can experiment with the new features by using daily builds and report any problems in our bug tracker. Improving OpenPGP encryption experience in LibreOffice by Ahmed Gamal Eltokhy Mentors: Thorsten Behrens (allotropia), Heiko Tietze (TDF), Hossein Nourikhah (TDF) LibreOffice can encrypt documents using OpenPGP public key cryptography by making use of external applications such as gpg4win, GPGTools and gnupg. Thanks to Ahmed’s work, it is now easier to manage and search keys and faster to navigate large keyrings. Learn more about the encryption experience improvements in the final report. Selecting tests to run on gerrit patches based on machine learning by Baole Fang Mentors: Thorsten Behrens (allotropia), Stéphane Guillou (TDF), Christian Lohmaier (TDF) This project was inspired by Mozilla’s work on Firefox’s continuous integration. There is now a system in place that makes predictions on the test failure possibility of submitted code changes and decides the most efficient way to build the changes. As this kind of machinery is very new to everyone, we expect many tweaks to follow. Learn more about the machine learning project in the final report. Search Field in Options by Bayram Çiçek Mentors: Andreas Heinisch, Heiko Tietze (TDF) Searching through options is pretty standard in applications these days, so it is about time LibreOffice learned how to do it! Learn more about the search feature in the final report. Convert Writer’s Java UNO API Tests to C++ by Dipam Turkar Mentors: Tomaž Vajngerl (Collabora), Xisco Faulí (TDF) The idea here was to reduce the dependency on Java during the LibreOffice build process. Half of the tests for Writer were converted. Learn more about the test conversion project in the final report. Add APNG import/export support by Paris Oplopoios Mentors: Tomaž Vajngerl (Collabora) APNG is short for Animated Portable Network Graphics. It is not an official extension to PNG, but nevertheless has broad support in web browsers these days. Thanks to Paris’s work, LibreOffice now fully supports this format. Learn more about the APNG feature in the final report. Wrapping up Many thanks to all contributors who spent their summer time improving LibreOffice. You are awesome! And special thanks also to the mentors who always put so much love and energy into these tasks. That’s what makes LibreOffice rock. Now we are looking forward to next year’s GSoC. If you are interested, why not prepare early? Learn more at out wiki page where some ideas are listed. Participating in GSoC is a great way to build your skills, and show future employers what you’re capable of!
- LibreOffice Dev Blog: Catalog and schema support for SQL functions – difficulty interesting EasyHack (2023/09/14 13:58)LibreOffice has a database application called Base. It can connect to various database management systems, and is integrated with two internal database engines: Firebird and HSQLDB. Here I discuss how to add catalog and schema support for SQL functions in LibreOffice Base. SQL window One can use SQL to create and use internal functions. For example, with Firebird: CREATE FUNCTION F(X INT) RETURNS INT AS BEGIN RETURN X+1; END; To run this, you can use “Tools > SQL…”, and then write the above SQL query. To see the result, you need to run this query: SELECT F(5) FROM RDB$DATABASE; Catalog and schema support On the other hand, support for SQL commands is limited. For example, as the issue tdf#95174 describes, SQL parser of LibreOffice parser currently does not handle catalog and schema in function names: tdf#95174 – SQL parser doesn’t support catalog&schema in function name Currently, this command works fine: SELECT function_name(a, b) FROM C But this one does not: SELECT schema_name.function_name(a, b) FROM C The goal is to make the second one also work in LibreOffice Base. Code Pointers To add the support for catalog and schema in function names, you should refer to the Yacc rule for the SQL Parer. Lionel, the experienced Base developer describes what to do in the first comment. In the file connectivity/source/parse/sqlbison.y, you can find this rule function_name: string_function | date_function | numeric_function | SQL_TOKEN_NAME Here, you should add two new cases, like: | SQL_TOKEN_NAME '.' SQL_TOKEN_NAME {$$ = SQL_NEW_RULE; $$->append($1); $$->append(newNode(".", SQLNodeType::Punctuation)); $$->append($3); } | SQL_TOKEN_NAME '.' SQL_TOKEN_NAME '.' SQL_TOKEN_NAME {$$ = SQL_NEW_RULE; $$->append($1); $$->append(newNode(".", SQLNodeType::Punctuation)); $$->append($3); $$->append(newNode(".", SQLNodeType::Punctuation)); $$->append($5);} After that, one should invoke this command: git grep -E '(function_name|set_fct_spec)' to find parts of the code that use them. If the code is examining one of the above nodes, it expects a single token at the function_name. The code should be changed to expect a token or a node to handle the schema_name and function_name. Final Notes An implementation should be accompanied with a test to make sure that the code actually works, and will remain fine in the future changes. To see other discussed EasyHacks, follow the EasyHacks tag in this blog.
- LibreOffice QA Blog: QA/Dev Report: August 2023 (2023/09/07 08:59)General Activities LibreOffice 7.6.0 was released on August 21 Olivier Hallot (TDF) continued adding Tabbed UI examples into help instructions, updated help for command line PDF export and anchoring of images in Writer, improved help for Title Page and added extended tips to its dialog and added help pages for tooltips when dragging scrollbars and document themes Juan C. Sanz added Firebird’s DATEADD and DATEDIFF functions to the SQL parser Stéphane Guillou (TDF) updated help for PDF export regarding comments in margin Rafael Lima fixed issues with F1 help shortcut not working in some contexts, made the table toolbar hidden when Notebookbar is active and updated help for ScriptForge Seth Chaiklin updated help for AutoRecovery Laurent Balland extended ODF support to include reserved blank spaces in Calc custom number formats Miklós Vajna (Collabora) worked on multi-page floating tables in Writer. He also made improvements to automated tests Jean-Pierre Ledure worked on the ScriptForge library Szymon Kłos (Collabora) worked on jsdialog used by Collabora Online Marco Cecchetti and Attila Szűcs (Collabora) worked on LOKit used by Collabora Online. Attila also added an Excel compatibility option to limit the creation of hyperlinks to only one per cell Áron Budea (Collabora) fixed a crash when parsing an XML with undeclared namespace Eike Rathke (Red Hat) made date/time arithmetic in Calc use rounding in order to work more intuitively with date and time functions Tomaž Vajngerl (Collabora) continued polishing support for document themes Julien Nabet fixed GTK3 Disabled menu items not being hidden in DontHideDisabledEntry = false mode and did some cleanups in code and in Help Andreas Heinisch made it so slides in Impress copied by Ctrl + drag and drop get unique names László Németh improved Writer change tracking related to tables Xisco Faulí (TDF) did many SVG handling and rendering improvements, fixed many crashes and made some changes and additions to automated tests Michael Stahl (allotropia) made floating tables in Writer more robust Mike Kaganski (Collabora) made it so truncated bookmark names are created to be unique thus preventing any problems with hyperlinking, fixed HTML export of nested tables at the beginning of a document, fixed an issue with missing cell padding in imported ReqIF tables, fixed PPTX import issues related to images and charts and fixed unwanted JRE errors popping up in macro contexts Caolán McNamara (Collabora) improved the performance of spreadsheets with lots of comments, implemented Small Caps in Impress and Draw and made the CJK typography-related “Enable char unit” option take effect only when the locale is a CJK one. He also fixed crashes and issues found by code analysers Stephan Bergmann (Red Hat) did many code, test and build-related cleanups Noel Grandin (Collabora) added a new Clang plugin to look for methods in the code where there is no need to guard access to the field, because the field is never modified and another plugin to warn against using the ‘operator bool’ conversion of std::optional, fixed a tricky Report Builder crash and started making it clearer in the code what kind of coordinate system is being handled and therefore to help the compilers find inconsistencies. He also did many code cleanups and optimisations Justin Luth (Collabora) fixed an issue causing line numbering to be lost in DOCX export and made many improvements and bug fixes related to AutoRecovery Heiko Tietze (TDF) made it possible to copy formulas by copying cells even when Show Formula is active Tibor Nagy (NISZ) fixed an issue with repainting sparklines in Calc after updating data Paris Oplopoios finished the GSoC project for implementing APNG (Animated PNG) support. He also fixed a text wrapping issue affecting XLSX export Baole Fang finished the GSoC project for selecting tests to run on Gerrit patches based on machine learning Dipam Turkar finished the GSoC project for converting Writer’s Java UNO API tests to C++ Ahmed Gamal Eltokhy finished the GSoC project for improving PGP/GPG encryption support Bayram Çiçek finished the GSoC project for adding a search field into Options Michael Weghorn (TDF) fixed accessibility issues in areas such as popups and grid controls Balázs Varga (allotropia) worked on the accessibility Sidebar panel and added support for XLSX files encrypted with SHA-384 Samuel Mehrbrodt (allotropia) disabled automatic slide advancement in Impress when moving backwards and fixed textbox indentation issues affecting PPTX export Czeber László Ádám (NISZ) fixed an issue causing lost hyperlinks when merging its cell with an empty cell and made mouse focusing into centered or right-aligned Calc cells more robust Khaled Hosny (TDF) improved the speed of populating the font list on systems that use FontConfig, fixed math rendering in elements dock with RTL UI, made it so English symbol names are always accepted in math, worked around an Adobe Acrobat bug with Type 3 fonts and unusual UPEM, added the ability to change math font in Math and fixed reading math font settings from file Patrick Luby (NeoOffice) fixed PDF export of bitmap color fonts, fixed a gradient drawing issue in slideshows and fixed many issues resulting from last month’s graphics code overhaul changing transparency to alpha Jim Raykowski made Shift+Tab behave as expected in Sidebar, made keyboard navigation skip over disabled Sidebar tabs and improved the Insert Special Character toolbar button so it displays character info in tooltips and a label Hossein Nourikhah (TDF) fixed a problem with using ccache when building on Windows and fixed RTL numbers changing to LTR upon DOCX export Arnaud Versini did some code cleanups Taichi Haradaguchi updated some dependencies Colomban Wendling (Hypra) polished the gtk3 accessibility test implementation Regina Henschel improved the “mouse as pen” feature in Impress, so the result is easier to manipulate later, made it possible to save and load themes in Draw and not only Impress Matt K made it so the –cat and –script-cat command line options inform the user they should close other running LibreOffice processes, if they are present Björn Michaelsen refactored Writer code a bit Sarper Akdemir (allotropia) improved the Clone Formatting feature, for example making it context aware (paragraph properties are applied when the selection contains a whole paragraph or there’s no selection at all) Kohei Yoshida added support for rich-text string import via orcus interface Armin Le Grand (allotropia) made performance improvements in fundamental code features related to handling attributes and properties Thorsten Behrens (allotropia) fixed an issue resulting from last month’s graphics code overhaul changing transparency to alpha Jun Nogata fixed CJK and CTL font style in Impress templates and added Japanese template to the Localization category Andrea Rosetti added a reset function to Crop dialog Denis Sorotnik made it so navigating through Calc sheet tabs using the keyboard now cycles from the last sheet to the first Henry Castro (Collabora) fixed a formula selection issue affecting merged Calc cells Kudos to Ilmari Lauhakangas for helping to elaborate this list. Reported Bugs 478 bugs, 59 of which are enhancements, have been reported by 274 people. Top 10 Reporters Gabor Kelemen (allotropia) ( 26 ) Gerald Pfeifer ( 20 ) Rafael Lima ( 18 ) Eyal Rozenberg ( 15 ) Hossein ( 13 ) Telesto ( 11 ) Regina Henschel ( 10 ) Stéphane Guillou (stragu) ( 8 ) Xisco Faulí ( 7 ) Mike Kaganski ( 6 ) Triaged Bugs 471 bugs have been triaged by 78 people. Top 10 Triagers Stéphane Guillou (stragu) ( 82 ) m.a.riosv ( 56 ) Buovjaga ( 44 ) Julien Nabet ( 31 ) Heiko Tietze ( 28 ) Gabor Kelemen (allotropia) ( 21 ) Mike Kaganski ( 15 ) Dieter ( 14 ) Regina Henschel ( 13 ) Xisco Faulí ( 11 ) Resolution of resolved bugs 603 bugs have been set to RESOLVED. Check the following sections for more information about bugs resolved as FIXED, WORKSFORME and DUPLICATE. Fixed Bugs 215 bugs have been fixed by 35 people. Top 10 Fixers Michael Stahl ( 20 ) Balazs Varga ( 18 ) Xisco Fauli ( 14 ) Noel Grandin ( 13 ) Khaled Hosny ( 10 ) Patrick Luby ( 10 ) Miklos Vajna ( 9 ) Mike Kaganski ( 7 ) László Németh ( 7 ) Michael Weghorn ( 6 ) List of high severity bugs fixed tdf#100894 FILEOPEN FILESAVE IMPORT Conditional formatting: xls file with a lot of Conditional formatting freeze Calc when opening Styles sidebar ( Thanks to Noel Grandin ) tdf#101174 Allow changing Formula Editor math font ( Thanks to Khaled Hosny ) tdf#128437 FILEOPEN: Cell in table is displayed on next page ( Thanks to Michael Stahl ) tdf#139164 Always default to ‘whole document’ in Print and PDF export dialogs ( Thanks to Khaled Hosny ) tdf#142694 Writer stops responding with busy CPU after opening this document ( Thanks to Michael Stahl ) tdf#144072 LibreofficeBase crashed when 2 fields selected in report builder from different sections and width is adjusted 2nd time ( Thanks to Noel Grandin ) tdf#156209 Font size increases when copying from cell in edit mode and pasting into another in non-edit mode ( Thanks to Noel Grandin ) tdf#156306 tagged PDF export of odt document runs in a loop (hangs) ( Thanks to Michael Stahl ) tdf#156508 Blur shadow is solid in edit and presentation mode ( Thanks to Patrick Luby ) tdf#156514 Check spelling red underlines are gone (but spell checking still works) ( Thanks to Noel Grandin ) tdf#156525 Save as > HTML loses drawing object as invalid gif ( Thanks to Noel Grandin ) tdf#156546 Writer freezes/hangs at redo inserting a table ( Thanks to Michael Stahl ) tdf#156551 Texttables – Writer not responding anymore ( Thanks to Michael Stahl ) tdf#156721 Crash if cursor in Basic IDE is in a macro from a document and that document is closed ( Thanks to Noel Grandin ) tdf#156978 Crash on load of ODT with headings/ToC if Navigator open ( Thanks to Jim Raykowski ) List of crashes fixed tdf#144072 LibreofficeBase crashed when 2 fields selected in report builder from different sections and width is adjusted 2nd time ( Thanks to Noel Grandin ) tdf#145743 Embedded file crash master document ( Thanks to Michael Stahl ) tdf#147938 Crash in: msvcp140.dll ( Thanks to Michael Stahl ) tdf#150137 Crash when parsing an XML with undeclared namespace ( Thanks to Aron Budea ) tdf#151866 Crash swlo!SwFrame::GetPrevSctLeaf+0x52d: on CTRL+X ( Thanks to Michael Stahl ) tdf#156589 CRASH: inserting page break ( Thanks to Miklos Vajna ) tdf#156595 LO crash when deleting a table row in a row with a hidden deleted table column at the beginning. ( Thanks to László Németh ) tdf#156721 Crash if cursor in Basic IDE is in a macro from a document and that document is closed ( Thanks to Noel Grandin ) tdf#156783 LO crash selecting table with the whole document and changing table border ( Thanks to László Németh ) tdf#156967 CALC: Basic: CSV import macro crashes Calc 7.6.0.3 (worked fine in 7.5) ( Thanks to Noel Grandin ) tdf#156978 Crash on load of ODT with headings/ToC if Navigator open ( Thanks to Jim Raykowski ) List of performance issues fixed tdf#114192 Call psp::PrintFontManager::analyzeFontFile font scan only when needed ( Thanks to Khaled Hosny ) tdf#142694 Writer stops responding with busy CPU after opening this document ( Thanks to Michael Stahl ) tdf#156551 Texttables – Writer not responding anymore ( Thanks to Michael Stahl ) List of old bugs ( more than 4 years old ) fixed tdf#100894 FILEOPEN FILESAVE IMPORT Conditional formatting: xls file with a lot of Conditional formatting freeze Calc when opening Styles sidebar ( Thanks to Noel Grandin ) tdf#101174 Allow changing Formula Editor math font ( Thanks to Khaled Hosny ) tdf#101886 Border line style control not a11y accessible ( Thanks to Michael Weghorn ) tdf#101895 Paragraph dialog units shown as “ch” and “lines” when “Enable char unit” is enabled by default ( Thanks to Caolán McNamara ) tdf#103480 EDITING: Hyperlink deleted when merging cells (if not in the first cell) ( Thanks to Czeber László Ádám ) tdf#103706 Alternate Clone Formatting scope ( Thanks to Sarper Akdemir ) tdf#104918 LibreOffice …
- Miklos Vajna: Multi-page floating tables in Writer: overlap control, border and footnotes (2023/09/01 11:33)This post is part of a series to describe how Writer now gets a feature to handle tables that are both floating and span over multiple pages. This work is primarily for Collabora Online, but is useful on the desktop as well. See the sixth post for the previous part. Motivation¶ The current post features sub-tasks for the multi-page floating table work that is around an explicit table overlap control that Word has (and Writer lacked so far), compatible border rendering of split tables and having footnotes in floating tables, which was not working previously. Results so far¶ Regarding testing, the core.git repository has 60 files now which are focusing on correct handling of floating tables (filename matching floattable-|floating-table-). This doesn't count cases where the document model is built using C++ code in the memory and then we assert the result of some operation. Here are some screenshots from the fixes this month: Old, new and reference rendering after expanding an autotext. The first screenshot shows a case where the anchor paragraph of a floating table had some autotext (e.g. "dt", which stands for dummy text), and pressing the relevant shortcut (F3) expands that autotext with the actual content. This includes changing the anchor position of the floating table, which lead to overlapping text. (A multi-page floating table has multiple anchors, we have to make sure we don't set all of them to the new value as-is.) Old, new and reference rendering of tables with the overlap=never markup. The next screenshot shows a case where two tables are positioned in a way that they would overlap. Word has a flag that asks the layout to still re-position the second table so the overlap doesn't happen, and now Writer supports this as well. Old, new and reference rendering of duplicated anchor text. This screenshot shows a bug where the anchor text on the first page was also duplicated on the second page. Now we properly start the anchor text on the last page of the floating table, like Word does. Old, new and reference rendering of a multi-page floating table with borders. What you can see is a floating table that has 2 pages, but simply a split of the table would result in no bottom border on the first page and no top border for the second, like perhaps you would expect it, matching Word. This is now fixed, the layout infers the border style in those cases correctly. Old, new and reference rendering of a footnote in a floating table. The last screenshot shows a mini-feature: it was possible to float tables and to have footnotes in tables, but not both at the same time. The screenshot shows a case where a floating table is needed, so a specific paragraph is above the table. But we couldn't float the table, because it had a footnote and that would be lost as-is. Now you can have a correct position for that paragraph and the footnote is there as well, at the same time. How is this implemented?¶ If you would like to know a bit more about how this works, continue reading... :-) As usual, the high-level problem was addressed by a series of small changes: tdf#156350 sw floattable: fix bad additional draw:frame in ODT with layout tdf#156260 sw floattable: avoid overlapping flys on anchor change tdf#156260 sw floattable: avoid moving text from the last anchor to its precede sw floattable: simplify collecting frames at node with layout tdf#156349 sw floattable: fix caption insert for tables inside split fly frames sw floattable, crashtesting: fix PDF export of tdf73201-1.docx tdf#156589 sw floattable: fix follow fly moving inside a table on the next page sw floattable: import w:tblOverlap w:val="never" from DOCX sw floattable: handle AllowOverlap==false in the layout sw floattable: export w:tblOverlap w:val=never to DOCX sw floattable: handle AllowOverlap==false in the DOC filter sw floattable: handle AllowOverlap==false in the RTF filter tdf#156682 sw floattable: fix missing del of master anchor para por on split Related: tdf#156351 sw floattable: fix missing top border in follow table tdf#156351 sw floattable: fix missing bottom border in master table tdf#77760 sw floattable: add support for footnotes, doc model tdf#77760 sw floattable: add support for footnotes, layout tdf#77760 sw floattable: add support for footnotes, DOCX import sw floattable: don't split if anchored inside a footnote tdf#77760 sw floattable: add support for footnotes, DOC import tdf#77760 sw floattable: add support for footnotes, UI Want to start using this?¶ You can get a snapshot / demo of Collabora Office 23.05 and try it out yourself right now: try the unstable snapshot. Collabora intends to continue supporting and contributing to LibreOffice, the code is merged so we expect all of this work will be available in TDF's next release too (24.2).
- LibreOffice Dev Blog: Warning for low disk space – difficulty interesting EasyHack (2023/08/31 10:30)Without enough space, one may face data corruption, which is really a terrible thing that can possibly happen for someones important data. In order to avoid falling into such a situation, it is good idea to give warning to the users in advance. Code Pointers for generating warning for low disk space To implement such a feature in LibreOffice, first place to look is this file sfx2/source/doc/sfxbasemodel.cxx. The method to query the free space method should be added to the sal/osl folder in LibreOffice core source code. To add OS specific code, one may use unx and w32 folders inside it. Please note that LibreOffice needs to know the disk space on different devices, so passing a vector containing path and free disk space is a good suggestion here. You should know that guessing the required disk space to save the file is not easy. So, the idea is to have several megabytes free to avoid facing problems. That is in cases the file is not actually very huge. It is possible to add that limit as an option, placed in Tools > Options. These days, even 100-200 megabyte is not that much when comparing it to the very fast disk consumption by different applications like browsers and other similar huge software that people use regularly. Another nice feature to implement is a handler that runs with low priority every several seconds and checks the available temporary space. That will help avoiding problems with saving images in that specifc temp directory. Testing the Warning for Low Disk Space One needs to create a test environment to actually test the patch in action. Using a small RAM drive, it is possible to do that. These commands are useful to create a 20 MB partition for testing: mkdir /tmp/small sudo /bin/mount -t tmpfs -o size=20m,mode=0700,uid=$USER,gid=$GROUP /dev/shm /tmp/small After invoking the above instructions and filling the disk space, you can invoke LibreOffice with the below command to use temp drive. As a result, you will get the below error message: No disk space error But, no warning message is shown when you have some small disk space which is < 1 MB. $ instdir/program/soffice -env:SAL_USE_VCLPLUGIN=gen -env:UserInstallation=file:///tmp/small /tmp/small/1.pptx While having < 1 MB disk space, you will get this warning in the terminal, but not when the space is between 1 and 2 MBs. warn:configmgr:57868:58063:configmgr/source/components.cxx:190: error writing modifications com.sun.star.uno.RuntimeException message: "cannot write to file:///tmp/small/user/nnePqE at ~/Projects/libreoffice/core/configmgr/source/writemodfile.cxx:109" Please note that both the profile and the opened file were inside /tmp/small. Final Words The above issue is tdf#60909. If you like it, just follow the Bugzilla link to see more information. To implement this feature, first you have to build LibreOffice from the sources. If you have not done that yet, please refer to this guide first: Getting Started (Video Tutorial)
- LibreOffice Dev Blog: Find and replace For Base – difficulty interesting EasyHack (2023/08/31 09:12)LibreOffice Base is part of LibreOffice productivity suite that makes it possible to work with databases. It is an alternative to MS Access. One of the proposed enhancement for Base is to add a “Find and replace” dialog. Right now, a “Find” dialog is available, but it is not possible to do the replacement with the LibreOffice Base dialogs. This issue is filed as tdf#32506. The importance This was requested for a long time ago, but until now no developer has put time to make it a reality. This feature request has is a difficutlyIntersting EasyHack, which means it is among the EasyHacks that need more work compared to the difficutlyBeginner and difficutlyMedium ones. I will describe the details of the task, and if you find it interesting, you can start working on it. Solving difficutlyIntersting EasyHacks is among the criterias for selecting GSoC candidates, so it worth trying if you want to be among next year GSoC candidates. It is worth mentioning that MS Office provide a comparable functionality in “Find and replace” dialog for MS Access. Thus, it would be helpful for the people migrating from Access to Base. Proposed UI Design for Find and Replace Enrique, which proposed this enhancement, also provided a design for the “Search and replace” dialog. Proposed design for LibreOffice Base Find and Replace dialog Code Pointers For Implementing Find and Replace As described, this enhancement will be extending the search functionality of Base with the ability to do replacement, which is not currently available from dialogs. It is however possible to use SQL queries to do the replacement. Then, the task would be extending the search dialog, and then adding the required methods that use SQL to do search and replacement. Lionel, a LibreOffice Base developer, has suggested this path, which I have updated: The discussed dialog is instantiated in this C++ file dbaccess/source/ui/browser/brwctrlr.cxx:1798: pDialog = pFact->CreateFmSearchDialog(getFrameWeld(), sInitialText, aContextNames, 0, LINK(this, SbaXDataBrowserController, OnSearchContextRequest)); pDialog->SetActiveField( sActiveField ); pDialog->SetFoundHandler( LINK( this, SbaXDataBrowserController, OnFoundData ) ); pDialog->SetCanceledNotFoundHdl( LINK( this, SbaXDataBrowserController, OnCanceledNotFound ) ); pDialog->Execute(); pDialog.disposeAndClear(); As the SetFoundHandler() uses OnFoundData, we search the same file for "OnFoundData", and find it in the line 2347: IMPL_LINK(SbaXDataBrowserController, OnFoundData, FmFoundRecordInformation&, rInfo, void) { ... } This function is called, when a match is found. The comment above the function SetFoundHandler() describes the idea of “found handler”s: /** The found-handler gets in the 'found'-case a pointer on a FmFoundRecordInformation-structure (which is only valid in the handler; so if one needs to memorize the data, don't copy the pointer but the structure). This handler MUST be set. Furthermore, it should be considered, that during the handler the search-dialog is still modal. */ void SetFoundHandler(const Link<FmFoundRecordInformation&, void>& lnk) { ... } In the above mentioned file, brwctlr.cxx, this is the start of handler function: Reference< css::sdbcx::XRowLocate > xCursor(getRowSet(), UNO_QUERY); This "xCursor" is the form object. The brwctlr.cxx is only for grid (table) controls. For other controls, one should look into svx/source/form/fmshimp.cxx:1544: SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create(); ScopedVclPtr<AbstractFmSearchDialog> pDialog( pFact->CreateFmSearchDialog( m_pShell->GetViewShell()->GetViewFrame().GetFrameWeld(), strInitialText, aContextNames, nInitialContext, LINK(this, FmXFormShell, OnSearchContextRequest_Lock) )); pDialog->SetActiveField( strActiveField ); pDialog->SetFoundHandler(LINK(this, FmXFormShell, OnFoundData_Lock)); pDialog->SetCanceledNotFoundHdl(LINK(this, FmXFormShell, OnCanceledNotFound_Lock)); pDialog->Execute(); pDialog.disposeAndClear(); The corresponding OnFoundData is line 2150: IMPL_LINK(FmXFormShell, OnFoundData_Lock, FmFoundRecordInformation&, rfriWhere, void) { if (impl_checkDisposed_Lock()) return; DBG_ASSERT((rfriWhere.nContext >= 0) && (o3tl::make_unsigned(rfriWhere.nContext) < m_aSearchForms.size()), "FmXFormShell::OnFoundData : invalid context!"); Reference< XForm> xForm( m_aSearchForms.at(rfriWhere.nContext)); DBG_ASSERT(xForm.is(), "FmXFormShell::OnFoundData : invalid form!"); ... } And then we can use the form object to implement the required change to fulfill the request. Possible Pitfalls It is important not to cause troubles with the keys, both foreign keys and primary keys. The idea is to allow find and replace in primary and foreign keys, but then it would be the role of the underlying database engine to see if the replacement is actually possible, or not, and then raise an error message. Also, it would be the responsibility of the users to make sure that the search and replace they issue is a meaningful one. But, anyway the developer should handle the errors from the underlying database engine. Final Notes To implement this feature, first you have to build LibreOffice from the sources. If you have not done that yet, please refer to this guide first: Getting Started (Video Tutorial)
- Bayram Çiçek: Final Report - Google Summer of Code 2023 - Search Field in Options (2023/08/26 09:00)About project LibreOffice is a complex application with a large and growing number of options. It is not easy to find the right needle in the haystack. Like most other complex applications, it will be valuable and useful enhancement to add a search field to the “Tools > Options” dialog that iterates over the various tabs and filters where the search text is found. The Search Field in Options project aims to provide this search functionality in “Tools > Options” page. Project page: https://summerofcode.withgoogle.com/programs/2023/projects/IKtSHIH1 Enhancement request on Bugzilla: https://bugs.documentfoundation.org/show_bug.cgi?id=49895 Patch on Gerrit: https://gerrit.libreoffice.org/c/core/+/152519 Tasks Add search field to Options dialog - UI Implement search function Include Options TreeView’s parent and child node names into searching Add GetAllStrings() method to fetch strings from 69 dialogs step by step Include following element strings into searching: labels check buttons radio buttons toggle buttons link buttons buttons Include accessibility elements into searching: accessible-names accessible-descriptions tooltip-texts Include option pages from extensions into searching Initialize all dialogs at background if it’s possible (salhelper::Thread - asynchronously) Initialize all dialogs to get strings properly (not in background - synchronously) initialize ~half of them after opening the options and initialize remaining ones after doing a search Update Options TreeView properly after the searching done Expand the first node and select first child-node after search by default Remove Hyphen (_) and Tilde (~) symbols from fetched strings to make the search function work correctly My Work during GSoC During 13 weeks GSoC program, I added a search field in Options dialog and included the node names and their .ui strings into searching. Since sub-dialogs under the Options are not initialized at startup of Options dialog, it was not possible to access their .ui strings. To overcome this issue we had two options: Option A: Extract .ui strings at build-time and fetch them at run-time This option requires working on file operations, LibreOffice’s build system, makefiles, localization etc. I worked on this option for ~5 weeks but this approach caused a lot of issues that took the project out of its scope. For example, how to deal with localization issue while extracting strings at build-time? This was another big problem… Option B: Initialize all dialogs in some way and get their strings This option is more understandable and simple. Instructions are clear. No need to worry about localization. No need to work on file operations, extracting and fetching data, working with makefiles etc… When I felt that Option A is just wasting my time (~5 weeks); I switched to Option B where I can -at least- make some progress. The main issue in Option B was initializing all dialogs which takes about 4-8 secs. I tried to initialize them at background but there was some errors on Win10 that I don’t reproduce the issue on my linux machine. Then I tried to see the errors on Win10 with a virtual machine, but it was too slow to test. Therefore I uninstalled Manjaro/Linux (which I’ve been using it more than 1.5 years) from my computer and had to install Win10 (which I last used 6 years ago) on my machine to see the problems in there. There was some visual inconsistencies while initializing sub-dialogs using salhelper::Thread at background. After working long hours for weeks meanwhile the time was running out, I decided to initialize almost half of them at Options dialog startup and the remaining ones at the time of searching. In that way, time of initializing process is divided by ~2 which can be acceptable time in some degree in terms of user experience. There is a single patch on Gerrit for this project: https://gerrit.libreoffice.org/c/core/+/152519. The patch has more than 30 patchsets and includes “+2255 -47” changes. The most challenging part was implementing GetAllStrings() function for every ~69 dialogs step by step. Current implementation may not be the best solution for user experience, but at least searching through the numerous options is now possible. Whats left to do or can be done? Following tasks are left and can be implemented after GSoC: Include accessibility elements into searching: accessible-names accessible-descriptions tooltip-texts Include option pages from extensions into searching Initialize all dialogs at background if it’s possible (salhelper::Thread - asynchronously) Additional hacks Show modified options with some special indicator (as in KDE settings). (better to discuss this idea in a separate ticket) Implement highlighting feature Tasks I’ll be working on after GSoC improvement on the initialization of the dialogs, maybe it can be possible to initialize them at background without encountering any visual inconsistencies - especially on Windows. Implementing the remaining tasks: Include accessibility elements into searching Include option pages from extensions into searching If everything works fine I’d like to work on the highlighting feature Also it would be prettier if Options dialog have a modified options indicator (as in KDE settings) Thanks I’m very happy that we all reached the end of GSoC. During that time, I know that I had a responsibility for doing everything that I can. Therefore I worked hard and tried to complete as much tasks as I can. I learned a lot of things during the GSoC. Although GSoC is finished, I will definitely continue to contribute to LibreOffice. I am really happy to be a part of the LibreOffice community and Google Summer of Code. I’m really thankful to LibreOffice and Google for providing us this such a great opportunity which helped me gain this amazing experience! I always tried to be active on IRC #libreoffice-dev channel, and I want to thank for everybody who helped me about my questions. And most importantly, greatly thankful to Andreas Heinisch and Heiko Tietze who were my mentors throughout the GSoC period. They always guided me everything about my questions. Thank you endlessly for your time and effort. I appreciate that you always motivating and encouraging me in all that I attempt and do. I can never truly express how grateful I am. Your guidance, reviews, help and shared experiences have been invaluable. Thank you very much for everything. I’d like to express my gratitude to everyone in the LibreOffice community for their help and kindness. They always tried to answer my questions on IRC. I fell very lucky to work with this amazing community. I have learned a lot from you and I will never forget this wonderful experience. Regards, Bayram Çiçek All weekly GSoC reports: 26 Aug 2023 Final Report - Google Summer of Code 2023 - Search Field in Options 14 Aug 2023 Week #7 - #11 - GSoC 2023 Weekly Report - Search Field in Options 08 Jul 2023 Week #5 and #6 - GSoC 2023 Weekly Report - Search Field in Options 26 Jun 2023 Week #4 - GSoC 2023 Weekly Report - Search Field in Options 18 Jun 2023 Week #3 - GSoC 2023 Weekly Report - Search Field in Options 10 Jun 2023 Week #2 - GSoC 2023 Weekly Report - Search Field in Options 03 Jun 2023 Week #1 - GSoC 2023 Weekly Report - Search Field in Options 18 May 2023 Google Summer of Code 2023 Timeline - Search Field in Options Useful links: https://gerrit.libreoffice.org/q/owner:bayramcicek2125%2540gmail.com (my all contributions to LibreOffice) https://translations.documentfoundation.org/user/bayramcicek/ (my translations in LibreOffice) https://bayramcicek.github.io/libreoffice/ (all blog posts related to LibreOffice development) https://summerofcode.withgoogle.com/programs/2023/projects/IKtSHIH1 (Google Summer of Code - Project page) # free as in freedom
- Ahmed Gamal Eltokhy: Final Report (2023/08/25 12:25)The past four months working on LibreOffice for Google Summer of Code 2023 have been an amazing learning experience. With the help of mentors Thorsten, Heiko, and Hossein, I implemented features to improve the user experience around digital signing and encryption like remembering recipients, better recipient selection UI, fast searching/filtering of keys, and documentation. My 12 patches were merged and it was incredible contributing to open source with the friendly LibreOffice community. I look forward to more FOSS contributions in the future!
- Caolán McNamara: Small Caps in Impress (2023/08/23 16:01)Writer supports Small Caps, but Impress and drawing shapes in general never fully supported Small Caps. The option was available, and the character dialog provided a preview, but Small Caps was rendered the same as All Caps, as seen here. This has lingered for years and it's not easy as a user to try and manually workaround with varying font sizes because underline/overline/strike-through decorations won't link up, as seen in this example: but finally for Collabora Hack Week I was able to carve out some time to fix this. So in today's LibreOffice trunk we finally have this implemented as:In addition a buggy case seen in the preview of double overlines for mixed upper/lower case was also fixed, from:to: Also noticed during all of this was the wrong width scaling used for the red wave line underneath incorrect spelling in impress when the text is superscript or subscript so the line didn't stretch over the whole text, as seen here: Now corrected as:and finally added was a missing implementation in the RTF export of shape text to allow the small caps format to be copy and pasted into other applications from impress.
- Björn Michaelsen: How to survive being bought by Oracle (2023/08/21 06:00)How to survive being bought by Oracle? When I wrote Quo vadis with The Document Foundation? a month ago, that was mostly a side product of sorting out my thoughts on open source governance in general, and on LibreOffice in particular. And while that sparked some discussion on the identity of the LibreOffice project, mostly here on Board Discuss, it ultimately was preparation for a talk Thorsten and me had submitted for a vacation on Chaos Communication Camp 2023. Our preparation was somewhat chaotic -- because both Thorsten and me decided to get very creative about the "dont come by car" suggestion by the organizers and our talk being scheduled on the first day of the event -- so we ended up honouring the LibreOffice tradition of finishing slides only hours before the scheduled slot. The session itself did not seem to have suffered too much by this -- it was more free form, which might actually have been a bonus. We ended up even being allowed to use some extra time for Q&A as there was quite some interest for that in the audience. The video recording can be found on media.ccc.de and describes both bits of the history of the LibreOffice fork a decade ago and lessons learned that are still relevant for open source communities forking (or otherwise reorganizing themselves) today. A huge thank you to all the volunteers that made #CCCamp23 (and therefore this talk) happen, especially c3voc for the recording and c3cert who did a great job in checking a minor injury I suffered due to my own stupidity during the event. Comments? Feedback? Additions? Most welcome here on the fediverse !
- Ahmed Gamal Eltokhy: Week 10 11 Report (2023/08/19 16:18)I'm providing an update after 10 weeks working on LibreOffice. I have successfully completed all the requirements I originally proposed related to improving the user interface for digital certificates and signatures. This includes developing a mechanism to remember selected recipients, improving the recipient selection UI, enabling intelligent searching of large keyrings, improving UI latency, and adding filtering for search results. I'm very pleased with the progress made so far. Going forward, I plan to focus on enhancing the documentation for the xmlsecurity module and addressing any bugs related to digital signatures. I'm very grateful to several LibreOffice developers, including Thorsten Behrens, Heiko Tietze, and Hossein Nourikhah, who provided excellent guidance during this project. While I'm sad this journey is nearly over, I achieved my goals and learned a lot along the way. I look forward to continuing to contribute to LibreOffice in the future.
- Bayram Çiçek: Week #7 - #11 - GSoC 2023 Weekly Report - Search Field in Options (2023/08/14 09:18)Thanks to my ‘Search Field in Options’ project mentors Andreas Heinisch and Heiko Tietze for their time and guidance. Project Report for Week #7 - #11 A lot of new patchsets submitted (between patchset 10 and 19): https://gerrit.libreoffice.org/c/core/+/152519 We decided to implement Plan B(initialize all strings at Options dialog start-up) instead of “extracting strings at build-time” approach. all (visible) strings of 69 dialogs included in searching. Currently: labels, check buttons, radio buttons and buttons are included. TODO: add accessible-names, accessible-descriptions and tooltip-texts into searching. GetAllStrings() function returns all visible strings. e.g.: OUString ScTpFormulaOptions::GetAllStrings() { OUString sAllStrings; OUString labels[] = { "label1", "formulasyntaxlabel", "label3", "label6", "label7", "label8", "label2", "label4", "label9", "label10" }; for (auto& label : labels) { if (m_xBuilder->weld_label(label)->is_visible()) sAllStrings += m_xBuilder->weld_label(label)->get_label() + OUString(' '); } OUString radioButton[] = { "calcdefault", "calccustom" }; for (auto& radio : radioButton) { if (m_xBuilder->weld_radio_button(radio)->is_visible()) sAllStrings += m_xBuilder->weld_radio_button(radio)->get_label() + OUString(' '); } OUString button[] = { "reset", "details" }; for (auto& btn : button) { if (m_xBuilder->weld_button(btn)->is_visible()) sAllStrings += m_xBuilder->weld_button(btn)->get_label() + OUString(' '); } // check button if (mxCbEnglishFuncName->is_visible()) sAllStrings += mxCbEnglishFuncName->get_label() + OUString(' '); return sAllStrings.replaceAll("_", ""); } Some screenshots from the development Summary New patchsets submitted (between patchset 10 and 19): https://gerrit.libreoffice.org/c/core/+/152519 Implementation of Plan B is completed. (initialize all strings at Options dialog start-up) all (visible) strings of 69 dialogs included in searching.: labels, check buttons, radio buttons and buttons are included. *** Patch: https://gerrit.libreoffice.org/c/core/+/152519 Project Mentors: Andreas Heinisch and Heiko Tietze (Thanks for their time and guidance) GSoC project page: https://summerofcode.withgoogle.com/programs/2023/projects/IKtSHIH1 Enhancement request on Bugzilla: https://bugs.documentfoundation.org/show_bug.cgi?id=49895
- LibreOffice Dev Blog: Highlight the current row and column in Calc – difficulty interesting EasyHack (2023/08/10 14:04)In large computer displays, it is somehow hard to track the active cell, and the associated row and column. One of the solutions provided to fix this problem is to highlight the row and column. The proposed solution is visible in tdf#33201: tdf#33201 – UI: Highlight (not select) current row and column in spreadsheet The importance This is requested for a long time, but until now no developer has put time to make it a reality. This feature request has is a difficutlyIntersting EasyHack, which means it is among the EasyHacks that need more work compared to the difficutlyBeginner and difficutlyMedium ones. I will describe the details of the task, and if you find it interesting, you can start working on it. Solving difficutlyIntersting EasyHacks is among the criterias for selecting GSoC candidates, so it worth trying if you want to be among next year GSoC candidates. Highlighting the row and column in Calc One of the contributors have created the above mock-up to show that how the implementation should look like. As you can see, it is somehow similar to a combination of the situations where you select a row, and a column. This can provide an insight on the possible path to the actual implementation. The only difference is that the actual color of the selected cell should be different. Code pointers to highlight row and column Eike, an experienced LibreOffice developer, suggests that one should look intoScTabView::MarkRows() and ScTabView::MarkColumns(). These functions are called for .uno:SelectRow and .uno:SelectColumn. As described previously, the selected cell should have a different color. To do the implementation, one should add HighlightOverlay to the OverlayManager. As a similar implementation, SelectionOverlay is updated from InitBlockMode() as ScGridWindow::UpdateSelectionOverlay(), for example like UpdateHighlightOverlay(). Rafael, another active community member, suggests looking into these files, and add a new sdr::overlay::OverlayObjectList to handle the new highlight overlay: sc/source/ui/inc/gridwin.hxx sc/source/ui/view/gridwin.cxx sc/source/ui/view/gridwin4.cxx Heiko, the UX mentor for LibreOffice, has mentioned that this feature should be optional. He suggested to use this path in options: Tools > Options > Calc > View: “[x] Highlight col/row <Blue> Final Notes To implement this feature, first you have to build LibreOffice from the sources. If you have not done that yet, please refer to this guide first: Getting Started (Video Tutorial)
- LibreOffice QA Blog: QA/Dev Report: July 2023 (2023/08/10 11:57)General Activities LibreOffice 7.5.5 was released on July 20 Olivier Hallot (TDF) continued adding Tabbed UI examples into help instructions, added an example on how to get user data from registry with BASIC, added help pages for document themes and Calc drawing styles and fixed a JavaScript issue related to displaying different embedded help content depending on the operating system Stanislav Horáček improved the help for Sort command in Writer Juan C. Sanz added a new help section for direct connections to PostgreSQL databases Nay Catina Dia-Schneebeli added a help page for the new Style Spotlight feature Stéphane Guillou (TDF) improved help pages for hyphenation, Outline Folding and labels Rafael Lima fixed issues with F1 help shortcut not working in some contexts and fixed incorrect menu positions with KDE Frameworks 5 UI. He also updated help for ScriptForge, improved help on setting PYTHONPATH and did a lot of fixes in help bookmarks that connect something in the UI to a relevant help target Seth Chaiklin added help for the new “Place backup in same folder as document” option and added a tip of the day entry about Search Commands Laurent Balland added optional detection of numbers in scientific notation to HTML paste Alain Romedenne updated help for ScriptForge Miklós Vajna (Collabora) worked on multi-page floating tables in Writer and added initial help for it Jean-Pierre Ledure worked on the ScriptForge library Szymon Kłos, Áron Budea, Marco Cecchetti and Pranam Lashkari (Collabora) worked on LOKit and/or jsdialog used by Collabora Online. Szymon also made it so when inserting internal links in Impress the dialog will not mix master slides with regular ones and Áron fixed a Skia gradient transparency regression Eike Rathke (Red Hat) made it so ROW() and COLUMN() in array mode return a scalar value instead of a single element matrix and added code to deal with bad XLSX files generated by QuickBooks Tomaž Vajngerl (Collabora) continued polishing support for document themes Julien Nabet made many code cleanups and simplifications Andreas Heinisch made it so hiding a slide in Impress can be undone, made indexes of tables support Ctrl-clicking items for navigation and made it so inserting a hyperlink pre-fills the URL field, if the clipboard contains a URL. He also improved the help for CDbl and Csng BASIC functions László Németh improved Writer change tracking related to tables Xisco Faulí (TDF) did many SVG handling and rendering improvements, fixed many crashes and made some changes and additions to automated tests Michael Stahl (allotropia) made lots of improvements to the Universal Accessibility PDF export support, added support for decorative flags for objects, fixed an issue with frame styles not exporting properly in some cases and made it so setting comments to be in margin doesn’t cause link annotations to be lost in PDF export Mike Kaganski (Collabora) made it so paragraph autostyle is used to mimic Word’s table style in DOCX files, fixed the Writer scrollbar tooltip feature which had broken in multiple ways, prevented unwanted tabs from appearing sometimes in table of contents upon DOCX export, implemented “Legal” numbering style that forces all levels to use Arabic numerals to improve interoperability with Word, untangled configuration nodes related to AutoRecovery, made it so AutoRecovery interval is applied separately per document, fixed handling of WM_UNICHAR message on Windows and fixed handling of PDF page scaling factor after large pages. He also fixed many regressions and did many code cleanups and optimisations Caolán McNamara (Collabora) fixed an issue that caused Ctrl+Left to not always jump to the correct cell. He also fixed crashes and issues found by code analysers Stephan Bergmann (Red Hat) did many code, test and build-related cleanups, one focus area being preparation for more efficient handling of strings allowed by a newer build baseline Noel Grandin (Collabora) changed LibreOffice’s internal formats and data structures to work directly with alpha instead of transparency in images and graphics, so the code is in line with the representation found in image formats and APIs everywhere. He also did many code cleanups and optimisations Justin Luth (Collabora) brought back and fixed functionality to automatically save documents, which was disabled years ago due to an improper implementation. Alongside this rework, he made quality of life improvements to saving of AutoRecovery information as well. He also improved the NotebookBar UIs Heiko Tietze (TDF) made it so automatic text colour in Calc uses a better threshold for what is considered a dark background colour, made use of ScrollLock key for navigation configurable in Calc, made Writer’s Word Count dialog display the number of comments and made corrections to what is included in the display of Formatting Aids Tibor Nagy (NISZ) fixed several issues involving conditional formatting and merged cells Paris Oplopoios worked on the GSoC project for implementing APNG (Animated PNG) support. He also fixed an issue that caused inline page breaks to not be imported correctly from DOC files Baole Fang worked on the GSoC project for selecting tests to run on Gerrit patches based on machine learning. He also raised the limit of collected entries for Word Completion in Writer Dipam Turkar worked on the GSoC project for converting Writer’s Java UNO API tests to C++ Ahmed Gamal Eltokhy worked on the GSoC project for improving PGP/GPG encryption support Bayram Çiçek worked on the GSoC project for adding a search field into Options Michael Weghorn (TDF) got a flying start as TDF’s new accessibility-focused developer, among other things fixing accessibility of Expert Configuration dialog and making it so the operating system setting to reduce or disable animations is obeyed with Windows, gtk3 and KDE Frameworks following Patrick Luby’s initial implementation on macOS Balázs Varga (allotropia) worked on the accessibility Sidebar panel, made it so disabled when they have no enabled submenus and fixed an issue causing Basic dialog contents to be invisible in preview mode with scrollbars enabled Samuel Mehrbrodt (allotropia) fixed an issue causing Writer comments in margin to not be exported to PDF when there was no comment on the first page Czeber László Ádám (NISZ) fixed Calc comments getting duplicated after row deletion and undo, removed a Print Preview limitation with bordered rows in Calc and made handling of whitespace in XLSX-imported formulas more robust Khaled Hosny (TDF) dropped PostScript printing support on Linux, fixed handling of automatic colour in case of overlines in PDF export, made DPI handling more robust in PDF export, fixed issues with thin spaces in Mongolian text, fixed rendering of RTL text in Impress letter-by-letter animations, made handling of superscript/subscript more robust in the context of mixed Western and CTL scripts, fixed a HarfBuzz issue involving graphite tables and glyph advances in fonts, improved the subpixel positioning of font glyphs, made it possible to insert the cursor in the middle of ligatures when editing text, made casemapping (UPPERCASE/lowercase etc.) more robust by using ICU more often, aligned special character names with Unicode names and fixed setting watermark font for CJK/CTL text. He also did many code cleanups Patrick Luby (NeoOffice) made LibreOffice respect macOS’s “Reduce animation” system setting to help users with visual hypersensitivity, added “Encrypt with GPG key” checkbox into macOS native save dialog, fixed rendering of semi-transparent SVG images in ODP files when using Skia for graphics rendering and fixed installation of language packs failing on macOS with Spotlight off Jaume Pujantell (Collabora) made selecting merged cells with keyboard shortcuts in Calc more robust Maxim Monastirsky fixed an issue causing incorrect rendering of transparent background colours in Impress/Draw in some cases and fixed setting font color from the toolbar dropdown in Report Builder Jim Raykowski improved Navigator’s drag and drop hyperlink creation functionality Christian Lohmaier (TDF) worked on raising the Linux build baseline to AlmaLinux 8 Hossein Nourikhah (TDF) added a UI test for Calc truncated formula display Ashod Nakashian (Collabora) made it so the option for setting a password is disabled when saving plain text documents Arnaud Versini did many code cleanups Vladislav Tarakanov improved the rounding behaviour of scientific numbers in Calc Satya Kompella (OpenText) fixed an issue causing wanted paragraph spacing in the headers in DOC files Luigi Iucci (Collabora) made it so applying a style also applies its list level Taichi Haradaguchi updated many dependencies Colomban Wendling (Hypra) introduced AT-SPI2 tests for the GTK3 accessibility layer Regina Henschel fixed an issue with setting theme colours to text in shapes David Gilbert did many code cleanups Pierre Vacher added generic support for embedded databases of unknown type into the database wizard Sakura286 improved the riscv64 UNO bridge, fixing a test failure Wu Jiahuan improved the loongarch64 UNO bridge, fixing a test failure René Engelhard (Debian) made it so SSE is not used in Skia on 32-bit Linux distributions to allow building for them Matt K made it so pasting a table in Writer no longer inherits list formatting, disallowed non-numberic values in Navigator’s Go To control, made Calc’s Autosum a split button and made Fontwork dialog’s SameLetterHeights button more robust Svante Schubert fixed an issue with incorrect background colours in XHTML export Rico Tzschichholz (Ubuntu) made some code and build related cleanups Björn Michaelsen refactored Writer code a bit Gülşah Köse (Collabora) made it impossible to accidentally open multiple Theme Color Edit dialogs Sarper Akdemir (allotropia) fixed tooltip displaying over two monitors on Windows, tweaked the hit area for selecting textboxes in Impress and added a new expert configuration option DragThresholdPixels for Impress and Draw to define the number of pixels the cursor can move before dragging (with a higher default value than before), which will help avoid accidental dragging of text boxes Vasily Melenchuk (CIB) improved the importing of IF field from RTF and DOCX files Kohei Yoshida made the reference resolver available for orcus Rizal Muttaqin added icons for Page Number Wizard and synchronised the icons used for Insert Shape menu and Sidebar Shape deck Kudos to Ilmari Lauhakangas for helping to elaborate this list. Reported Bugs 439 bugs, 65 of which are enhancements, have been reported by 254 people. Top 10 Reporters Regina Henschel ( 16 ) Eyal Rozenberg ( 13 ) Stéphane Guillou (stragu) ( 12 ) Mike Kaganski ( 12 ) Rafael Lima ( 12 ) Gabor Kelemen (allotropia) ( 12 ) Telesto ( 10 ) ksso ( 10 ) Xisco Faulí ( 9 ) Samuel Mehrbrodt (allotropia) ( 7 ) Triaged Bugs 461 bugs have been triaged by 73 people. Top 10 Triagers Stéphane Guillou (stragu) ( 126 ) m.a.riosv ( 37 ) Heiko Tietze ( 28 ) Buovjaga ( 25 ) Dieter ( 20 ) Michael Weghorn ( 13 ) خالد حسني ( 13 ) Gabor Kelemen (allotropia) ( 12 ) raal ( 11 ) Roman Kuznetsov ( 10 ) Resolution of resolved bugs 551 bugs have been set to RESOLVED. Check the following sections for more information about bugs resolved as FIXED, WORKSFORME and DUPLICATE. Fixed Bugs 208 bugs have been fixed by 43 people. Top 10 Fixers Khaled Hosny ( 19 ) Michael Stahl ( 18 ) Balazs Varga ( 14 ) Mike Kaganski ( 12 ) Rafael Lima ( 10 ) Justin Luth ( 10 ) Xisco Fauli ( 10 ) László Németh ( 6 ) Heiko Tietze ( 5 ) Andreas Heinisch ( 5 ) List of critical bugs fixed tdf#156286 Crash on right-click delete of selected cells in Calc ( Thanks to László Németh ) List of high severity bugs fixed tdf#125504 Notebookbar Tabbed / Compact Tabbed UI ParaStyle-controls/FontName-controls stop applying after a print preview ( Thanks to Justin Luth ) tdf#144053 Installation of Language Pack fails on macOS with Spotlight off ( Thanks to Patrick Luby ) tdf#154035 It is not possible to set tabs in Writer by clicking on the top ruler ( Thanks to Mike Kaganski ) tdf#155125 “Encrypt with GPG key” option missing when using System File Dialog on macOS ( Thanks to Patrick Luby ) tdf#156165 Writer resets previous paragraph’s style to body text if AutoCorrect is on ( Thanks to Baole Fang ) tdf#52577 Right-hand part of vowel signs disappear when reordering …
- Baole Fang: Week 11 (2023/08/10 00:00)Model improvement Now, the testfailure model no longer considers author features.
- Ahmed Gamal Eltokhy: Week 8 9 Report (2023/08/08 17:03)Significant progress has been made on the project's final stages. Certificates caching has been successfully resolved, with the complexities of caching tackled through an effective implementation involving design patterns and a singleton approach. The initial project goals have been largely met. The coming weeks will be dedicated to documentation, final improvements, and addressing minor outstanding goals.
- LibreOffice QA Blog: LibreOffice 7.6 RC2 is available for testing (2023/08/03 10:04)LibreOffice 7.6 will be released as final in mid-August 2023 (check the Release Plan), with LibreOffice 7.6 Release Candidate 2 (RC2) the forth pre-release since the development of version 7.6 started in mid December, 2022. Since the previous release, LibreOffice 7.6 RC 1, 100 commits have been submitted to the code repository and 62 issues got fixed. Check the release notes to find the new features included in this version of LibreOffice. LibreOffice 7.6 RC2 can be downloaded for Linux, macOS and Windows, and it will replace the standard version. In case you find any problem in this pre-release, please report it in Bugzilla (you just need a legit email account in order to create a new account). For help, you can contact the QA Team directly in the QA IRC channel or via Matrix. LibreOffice is a volunteer-driven community project, so please help us to test – we appreciate it! Click the banner below to download and test – and thanks for testing! …
- Baole Fang: Week 10 (2023/08/03 00:00)Smart inference Previously, jenkins only uses testfailure results to decide whether the patch will pass or fail. Since it is not very accurate and testselect is accurate, a better algorithm using its prediction is used to pass or fail a patch. testoverall is proposed to integrate testselect’s predictions into testfailure. Compared to testfailure, its failure recall significantly increases from 54% to 71%, while pass recall slightly drops from 70% to 65%. Since failure recall is much more important than pass recall, the model is a huge improvement. Due to testoverall outstanding performance, it replaces testfailure in inference. Besides, a new condition is added to decide whether the patch should pass or fail. Originally, it only looks at whether the overall failing probability has reached a threshold (0.4). Now, the number of failed unit tests are counted. If it reaches the threshold (10), then the patch is also considered to be failed. With the improved algorithm, the inference is able to recall 91% failures, while reducing computation by 57%. Jenkins integration Currently, the model is integrated into Jenkins job gerrit_master_ml. It first runs the machine learning model to predict whether the patch will pass or fail. If the patch is likely to fail, then the fast track will be run. If it is likely to fail, then the normal build will be run.
- Miklos Vajna: Multi-page floating tables in Writer: part 6 (2023/08/01 07:29)Writer now has continued steps to handle tables that are both floating and span over multiple pages. This work is primarily for Collabora Online, but is useful on the desktop as well. See the fifth post for background. Motivation¶ The previous post finished with an "almost done" state for overlapping tables: this is a cluster of problems where tables are allowed to overlap, but various other formatting make them not overlap in practice in Word, but they do overlap in Writer. In this post, we'll see what was necessary so an initial set of old documents now render perfectly, which started to work during the past month. Results so far¶ The feature is enabled by default and the DOCX/DOC/RTF import makes use of it. On the positive side, core.git repository has has 49 files now which are focusing on correct handling of floating tables (filename matching floattable-|floating-table-). Also, there are additional tests that quickly build a specific multi-page floating table in the memory and do some operation on it, e.g. delete the last row and assert what happens. Here are some screenshots from the fixes this month (right click, open image in new tab for larger size): Old, new and reference rendering of a floating table with negative vertical position, relative to an empty anchor. The first case is about a document where the bottom of the page had a floating table, where the position (relative to the anchor) was a negative vertical offset. In this case Writer used to move the floating table to the next page, but now matches Word: the space in the previous page is used for the floating table. This fixed overlapping text on the next page. Old, new and reference rendering of a floating table with a large bottom margin in the anchor paragraph. Notice how the old rendering had a larger spacing between footnotes, which resulted in a 2 page document. The new and reference renderings have smaller spacing between footnotes and are of 1 page. The next case is about floating tables in footnotes, the anchor needs to have no visible margins to provide the correct layout. Old, new and reference rendering of a floating table with an overlap due to vertical offsets. The old rendering had a big second table, it completely covered the first table. The new and reference renderings shift the second table to a next page to avoid overlap. This case was about an unwanted overlap of floating tables. Incorrect handling of the vertical offsets meant that the second floating table was rendered on top of the first one, making the text in the first floating table unreadable. Now we shift down the second floating table, so no overlap happens. New rendering of a floating table with anchor text that starts with a newline. This document had a layout loop on load. The problem was specific to the case when the anchor text of a floating table started with a newline character, which has its own position in the document model, but doesn't really have a width at a layout level, so needs special handling. This is now fixed, the document loads and renders fine. Old, new and reference rendering of a document with lots of floating tables. This document had only 4 pages, but lots of floating tables, carefully positioned to not overlap in Word. You can see how the old Writer rendering result was hard to read and it now looks correct. Old, new and reference rendering of a floating table with a hidden anchor. Writer used to hide floating tables anchored inside hidden paragraphs, but Word shows them all the time, now we match this behavior. Old, new and reference rendering of a floating table with an overlap. The next document first had all of its tables in the first page, now fixed. Old, new and reference rendering of a floating table with an overlap between the table and the footer area. A remaining problem was that the second table and the footer area could still overlap. This is now fixed: Word sometimes does allow such an overlap, but it depends on the baseline of the anchor position, so in the current case we can detect that such an overlap is not wanted. Old, new and reference rendering of a floating table with a half row on the first page. The last problem with this document was a poor split of the floating table, the first half row of the second table still went to the first page. Now we correctly detect that such a split is not wanted and simply start the second floating table on the second page, which results in a pretty good rendering of this document. And that's where we stand. Certainly more work is needed to fix rough edges, but we get there step by step -- the theme is slowly transitioning from overlap problems right after load to unexpected rendering problems during editing. How is this implemented?¶ If you would like to know a bit more about how this works, continue reading... :-) As usual, the high-level problem was addressed by a series of small changes: sw floattable: fix negative vert offset with on page boundary without anch text sw floattable: fix lost floating table right before a table from DOC tdf#156059 sw floattable: fix lost 0 bottom margin of anchor in ftn from DOCX sw floattable: enable AddVerticalFrameOffsets compat flag for DOC sw floattable: make sure floattable after floattable gets own anch pos from DOC cool#6857 sw floattable: try harder to keep anchor text in the last follow sw floattable: fix lost floating table right before a hidden para from DOCX tdf#120262 sw floattable: don't wrap text around fly when no content would fit tdf#120262 sw floattable, legacy: fix text wrap around fly when no content fits tdf#120262 sw floattable, legacy: go outside body only for page frame vert pos tdf#120262 sw floattable: no split when none of first row fits the vert space Want to start using this?¶ You can get a snapshot / demo of Collabora Office 23.05 and try it out yourself right now: try the unstable snapshot. Collabora intends to continue supporting and contributing to LibreOffice, the code is merged so we expect all of this work will be available in TDF's next release too (7.6).
- LibreOffice Dev Blog: ccache for a 5 minutes LibreOffice build (2023/07/30 10:28)If you have ever tried to build LibreOffice code, you know that it can take a lot of time. LibreOffice has ~6 million lines of C++ and some Java code (<280k). But, there are tools that can help you build LibreOffice from source code much faster, if you do it repeatedly! Here I discuss how to use one of these tools: “ccache”. Describing ccache Even with a fast computer, compiling huge amount of C/C++ code takes a lot of time. Compiling 6 million lines of C/C++ code in LibreOffice will take you several minutes (if not hours) with a decent computer with fast CPU and a lot of RAM. But, people who work on developing LibreOffice need to build it from the source repeatedly. Because only a fraction of the code changes each time, there is a big chance that one can re-use the compiled objects, and that’s where ccache (and similar tools) come in. It caches the compiled objects, and before trying to re-compile the code, searches inside the cache to see if a previously compiled objects are usable. The caching mechanism speeds up the process a lot, so that instead of for example 1 hour, you get a full re-build in 5 minutes or so, depending the speed of your machine, if everything is untouched. In case files are changed, you may wait more, but eventually a lot less than the previous build time. Please note that this 5 minutes build is on my machine, so you may have longer (or even shorter time) on your system, depending on the hardware, OS, etc. that you are using. Platform-Specific Recipes You have to install ccache binaries on your platform to be able to use it. On Linux, you may install it through the distribution package manager. On macOS and Windows, you have to get the binaries from ccache github release page. Please note that on Windows, there is also a ccache binary from the Cygwin that is not useful. You have to get the binaries from the Github to get reasonable speedup. The speed up is not as good compared to Linux, but I could reduce the compilation time from 30 minutes to 18 minutes, which helps considerably when you do LibreOffice development. Some developers have reported that using PCH is faster compared to using ccache on Windows. Final Words There are other tools for speeding up the build beyond ccache. For example, icecream is a distributed alternative for ccache. Also, pre-compiled headers (PCH) are useful to reduce the build time. Please have in mind that combining PCH and ccache/icecream might not always be possible on each and every platform. PCH usage is described in TDF Wiki article, building LibreOffice on Linux: Precompiled headers: Passing --enable-pch to autogen.sh enables use of precompiled headers (PCH), which reduce build time at the expense of more disk space and more source files possibly rebuilt when a header changes. The option has several levels (system, base, normal, full), the higher level the higher possible gain but also disk space usage and chance for larger rebuilds on changes. If you like further optimizing the build time, this LibOCon 2022 presentation by Luboš Luňák can be interesting for you: Reducing Build Time (2022) – LibreOffice Conference 2022
- Björn Michaelsen: Quo vadis with the Document Foundation? (2023/07/28 00:00)Quo vadis with the Document Foundation? "Where do you want to go today?" Microsoft Commercial 1998 At the Document Foundation -- the entity behind LibreOffice -- the board is currently considering introducing a staff policy, and is asking for ideas, comments and feedback. tl;dr: Starting from the foundations statutes and organizational setup, I will be pointing out some easy to make common mistakes (some literally lost in translation) in finding the foundations core values. I believe only with that, a constructive discussion of how trustees, board and staff of the foundation can improve their interactions and alignment. I also made a concrete proposal on board-discuss to start a discussion on possible concrete measures there -- this post provides the more abstract background going along with that. There seems to be quite some confusion about how the different bodies of the foundation should interact with each other. The different bodies being: the staff of the foundation the board of directors the membership committee the trustees of the foundation To summarize as short as I can: The trustees are those who contributed to the projects of the foundation and thus gain active voting rights. The membership committee has been elected by the trustees to be the judges on those contributions: they decides who is and will continue to be a trustee. The board of directors is elected by the trustees too. This grants them special privileges and duties: The most important privilege is to control the foundation resources, consisting mainly of two groups: funds created from donations and salaries to pay staff. While staff or directors not being trustees is possible, for the most part they are likely privileged trustees: Unlike other trustees staff are paid for their contributions and directors can allocate the foundations resources. Now, one might think both the board and the staff are purely bound by the statutes of the foundation and their conscience. However, for directors this is clearly not the only limit on their decisions, at least if they want to be reelected by the trustees again. For the staff, there are also limits: The directors -- who have the duty to control the resources of the foundation need to be convinced that spending donations on staff salaries is the best use for the goals of the foundation as set in the statutes and understood by the trustees. Now, the foundation is older than a decade by now and its goal are both quite broad and ... partially outdated. This makes "statutes and conscience" alone not a good guideline to achieve focused progress. What to focus on? As a starting point, lets have a look at the preamble of the foundations statutes, which starts with this paragraph: The objective of the foundation is the promotion and development of office software available for use by anyone free of charge. The foundation promotes a sustainable, independent and meritocratic community for the international development of free and open source software based on open standards. This is one of the shortest possible descriptions of the foundations goal. And even with this it requires some explanation and amendments: The translation to promotion is a bit misleading. It is still the most likely word to use in this context for the "Foerderung" in the German original, but it loses a lot of additional meanings that are still there in the German context. Namely it also means: advancement, furtherance, boost and funding. Likewise, the translation to free of charge is misleading. The German original says "zur freien Nutzung" which does not have to specifically mean "free as in beer". It can also mean "free as in freedom" -- especially in this context. Finally, this paragraph cannot really be split and cherry-picked even in its two sentences: The first sentence alone does not describe the goals of the foundation at all. For example, it would apply the same way to e.g. onlyoffice these days. This is because second sentence contains the core of what is supposed to set LibreOffice and other projects of the foundation apart: sustainable community, international development, open source and open standards are core to the foundations mission -- as are independence and meritocracy(*). The second paragraph is mostly redundant: It clarifies what "office software" means ("repertoire ... of tools") and what "open source" means ("openly available for free use") and also talks about "distribution" ... which is a bit funny as software distribution mostly stopped being a problem quickly even while foundation was created: even Canonical stopped shipping Ubuntu CDs in 2011 and today everyone can distribute software of epic sizes via Docker hub or quay.io or ghcr.io. Ok, so ... the first paragraph of the statutes of the foundation (mostly the second sentence) are a great starting point to define the goals of the foundation. Good! Does this mean using this as a first principle means trustees, board members and staff are aligned and focused on the same goal? Unfortunately not. Even with the extensive comments given above, the goals of the foundation are so broad compared to the resources of it, that they will never ensure alignment by themselves -- much less an strong focus and effective effort. Do not get me wrong: Compared to other open source NGOs, the Document Foundation is quite rich -- but its goals are still overwhelmingly broad and diverse. Is this a problem? In a way, yes: It means two trustees can work on the goals of the foundation and still consider the work of the other ... not that important. Between volunteers that might be somewhat acceptable: who is to judge contributions of others if they were volunteered? But with both directors and staff its ... different. Both have been trusted by the other trustees with additional privileges: The staff with the privilege to be -- unlike others -- to be paid for their project contributions. The directors are mostly graced with the privilege allocate funds (which ultimately includes staff salaries). So both directors and staff need to answer to a higher standard than other volunteers (who are judged by the membership committee). And here is where a need for alignment and focus comes in. And that brings me back to the opening of this post: staff policy. I wonder if transparency about the focus, alignment of goals and allocation of resources (namely: funds and work time) would be helpful when it allows: directors a way to report to the trustee on how they intend to allocate and focus resources of the foundation, and the latter to gain better understanding on whom to vote for in upcoming elections. staff a way to report to the directors and the latter (as representatives of the trustees) way to guide and align the former. This alone would not solve all problems with alignment, but it would be a start. One medium to bring about such transparency could be Objectives and Keyresults (OKRs). How would OKRs help at TDF? Well, OKRs should generally be set in a way that they are assumed to be on average 70% complete by the end of the period. Evaluation at the end of the period will allow to: help build a shared understanding between all trustees of what goals are under- or overestimated in how hard they are to achieve. help to reallocate resources to areas that are promising faster. help reduce frustrations about impossible goals or underappreciated work. A concrete draft proposal for how that could be implemented has been suggested here. Comments? Feedback? Additions? Most welcome here on the fediverse ! (*) Urgh, long footnote incoming on why I will leave aside discussing these latter two hot button topics in this post as (in summary): meritocracy has been justly criticized to deepen inequality -- there are books about it: "merit" is way easier to establish for the privileged. So when judging merit, privilege (or lack thereof) has to be taken into account. independence has recently been often used in populist claims of "conflict of interest" to subvert individuals of merit in the LibreOffice community -- that is: those that did contribute to the advancement, furtherance and funding of open source, open standard office software development. now "conflicts of interest" clearly should not be ignored, especially if they counter the foundations goals. However, when doing so, its wise to start with those that receive the biggest net benefit from the foundations use of its resources (and note in this that e.g. volunteer development contributions and trademarks likely provide widely bigger benefits than a few tenders the foundation might have offered).
- Baole Fang: Week 9 (2023/07/27 00:00)Model improvement To improve model performance, the model based on grouped unit tests is implemented. Originally, the model is trained to predict on the level of around 700 unit tests, which is too much. To reduce the number of predictions, unit tests are grouped into 80 groups based on their folder parents and functions in mapping.py. The performance has improved to: Fail (Predicted) Pass (Predicted) Fail (Actual) 3860 203 Pass (Actual) 191593 1109768 testselect is now able to recognize 95% (94% previously) of all failures, while reducing computation by 85% (84% previously).
- Caolán McNamara: Urgent VCL Mission (2023/07/25 19:37)To mark the occasion of Noel's merge of Convert internal vcl bitmap formats transparency->alpha to align LibreOffice's internal concept of color opacity with everything else's.This work, "Urgent VCL Mission", is adapted from "Urgent Mission" by Randall Munroe, used under CC BY-NC 2.5, and licensed under same by me.Amazingly there exists, not one, but two fonts based on Randall's handwriting.Onward and upward to the end of split-Alpha.
- Ahmed Gamal Eltokhy: Week 7 Report (2023/07/25 15:15)Implemented certificate manager searching and filtering functionalities in LibreOffice, enhancing user experience. Patches were merged, next on is focusing on refining the feature based on feedback. Progress made in improving certificate management and chooser dialog. Excited for the next steps in the project!
- Baole Fang: Week 8 (2023/07/20 00:00)Result archive Every time Jenkins runs the model, the inference results will be saved to probability.csv, which is archived by Jenkins. Jenkins integration The model is integrated into a master job. In this job, the model will first be run to decide whether the commit is likely to fail. If it is, then run gerrit_linux_clang_dbgutil first. If it fails, then return -1, else run the rest builds. If the model predicts that the commit is unlikely to fail, then run all the build in parallel like before.
- Ahmed Gamal Eltokhy: Week 5 & 6 Report (2023/07/17 09:25)During Weeks 5 and 6 of GSoC at LibreOffice, I completed two patches: one for customized certificate managers, resolving related bugzilla issues, and another for improving the certificate chooser dialog. I also started working on search and filter functionalities for the dialog. Progress is being made to enhance the user experience and flexibility of certificate management in LibreOffice.
- Marius Popa Adrian: New features in Firebird 5, Annual General Meeting, elections, and a bit of Firebird history (2023/07/16 11:28)In this video we discuss the new features of Firebird 5 with Dmitry Yemanov (core developer, RedSoft), Jason Wharton (IBObjects, Temporary Secretary of Firebird Foundation) and Alexey Kovyazin (IBSurgeon, Firebird Foundation Comittee member), then we announce elections during the Annual General Meeting.In the end of the video Jason, as one of the founders of Firebird Foundation, remembers how
- Marius Popa Adrian: Firebird-driver 1.9.0 released (2023/07/16 11:26)The firebird-driver package provides official Python Database API 2.0-compliant driver. In addition to the minimal feature set of the standard Python DB API, this driver also exposes the new (interface-based) client API introduced in Firebird 3, and number of additional extensions and enhancements for convenient use of Firebird RDBMS. The driver is written as pure-Python package (requires Python
- Marius Popa Adrian: July 24: Annual General Meeting of Firebird Foundation (2023/07/16 11:12)All members of Firebird Foundation - please participate in Annual General Meeting at July 24, 2023! We need to elect new President, Vice-President, Secretary and Treasurer. Email was sent to ffmembers, if you did not receive it, please check your spam folder.If you do not have access to FFMembers mail list (ffmembers at googlegroups com), please contact Alexey Kovyazin directly (ak at ib-aid com
- LibreOffice QA Blog: LibreOffice 7.6 RC1 is available for testing (2023/07/12 08:26)LibreOffice 7.6 will be released as final in mid-August 2023 (check the Release Plan), with LibreOffice 7.6 Release Candidate 1 (RC1) the third pre-release since the development of version 7.6 started in mid December, 2022. Since the previous release, LibreOffice 7.6 Beta 1, 354 commits have been submitted to the code repository and 151 issues got fixed. Check the release notes to find the new features included in this version of LibreOffice. LibreOffice 7.6 RC1 can be downloaded for Linux, macOS and Windows, and it will replace the standard version. In case you find any problem in this pre-release, please report it in Bugzilla (you just need a legit email account in order to create a new account). For help, you can contact the QA Team directly in the QA IRC channel or via Matrix. LibreOffice is a volunteer-driven community project, so please help us to test – we appreciate it! Click the banner below to download and test – and thanks for testing! …
- Baole Fang: Week 7 (2023/07/12 00:00)Jenkins integration Currently, the model is integrated into Jenkins. The average build duration is around 15s, and it is able to support 5 builds in parallel. Its output log mainly contains the probability of a patch to fail a unit test and its overall probability to fail any test. The overall probability is shown in the build summary page.
Discussion