This week in KDE: QA pays off

This week we released Plasma 5.26 and so far our QA focus has paid off! It has been mostly a smooth release, with just a few regressions being reported, and most of them have been fixed already. Thanks to everyone who tested, reported bugs, and fixed bugs!

New Features

Kate and KWrite have now adopted KHamburgerMenu! Because these are large and complex apps, the main menubar is still shown by default. And for the time being, the hamburger menu shows the entire traditional menu structure within it, rather than trying to offer a curated set of actions. This can be done in the future! (Christoph Cullmann, Kate & KWrite 22.12. Link):

Kate’s welcome screen now has more features in it (Eugene Popov, Kate 22.12. Link):

The Plasma Wayland session now supports high resolution scroll wheels for smoother scrolling through long views (Vlad Zahorodnii, Plasma 5.27. Link)

The Network manager now supports WPA3-Enterprise 192-bit mode (Tomohiro Mayama, Plasma 5.26. Link)

User Interface Improvements

Dolphin no longer unnecessarily opens a new window after extracting or compressing an archive using the context menu (Andrey Butirsky, Dolphin 22.12. Link)

Discover no longer freezes for a few seconds when launched without an internet connection, and is now faster and more responsive in the face of transient network issues with remote resources in its backends (Aleix Pol Gonzalez, Plasma 5.26.1. Link 1 and link 2)

The Media Player plasmoid now does a better job of handling apps with very barebones MPRIS implementations, like Totem and Celluloid (Bharadwaj Raju, Plasma 5.26.1. Link)

Even though resizing them is now explicitly supported, Plasma widget pop-ups no longer inappropriately respond to the Maximize and Minimize keyboard shortcuts (Xaver Hugl, and me: Nate Graham, Plasma 5.26.1. Link)

You can now select and copy text from labels in Info Center (Bharadwaj Raju, Plasma 5.27. Link)

In the Color Picker plasmoid, left-clicking a color now copies it to the clipboard, and you’ll also see a small “Copied!” message to help you visually confirm what happened (Bharadwaj Raju, Plasma 5.27. Link)

You now get a nice full-screen blend effect when you manually change Plasma themes (me: Nate Graham, Plasma 5.27. Link)

The Disks & Devices plasmoid now always shows the “Remove All” item in its hamburger menu when any volumes are mounted, not just when more than two are (Jin Liu, Plasma 5.27. Link)

Discover now shows you more permissions for Flatpak apps, such as printer and Bluetooth device access (Jakob Rech, Plasma 5.27. Link)

Made various KDE app windows raise to the top when activated externally in the Plasma Wayland session: System Settings when activated from KRunner, Discover when activated from KMoreTools menus, and Dolphin when activated from other apps in general (Nicolas Fella, Plasma 5.26.1, Frameworks 5.100, and Dolphin 22.12. Link 1, link 2, link 3)

Significant Bugfixes

(This is a curated list of e.g. HI and VHI priority bugs, Wayland showstoppers, major regressions, etc.)

Plasma no longer sometimes crashes when connecting an external Bluetooth headset, or when waking up the system after it was suspended while audio was being streamed over the network (Harald Sitter, Plasma 5.24.7. Link 1, link 2)

Changing the display arrangement or configuration no longer sometimes causes System Settings to crash (Someone awesome, Plasma 5.26. Link)

The system no longer becomes unresponsive after using the “Turn off screen” shortcut (Vlad Zahorodnii, Plasma 5.26.1. Link)

Dragging screens to re-arrange them on System Settings Display and Monitor page no longer sometimes scrolls the view or drags the window instead of moving the screen (Marco Martin, Plasma 5.26.1. Link)

Chrome web apps no longer all show the same icon on an Icons-Only Task manager (Mladen Milinkovic, Plasma 5.26.1. Link)

In the Plasma Wayland session, when using a multi-screen arrangement with external screens not being mirrored, the system no longer sometimes sees them as mirrored anyway and inappropriately enables Do Not Disturb mode, and also no longer forgets the enabled/disabled status of those screens (Vlad Zahorodnii, Plasma 5.26.1. Link 1 and link 2)

Discover is now significantly better about reporting overall progress information when installing or updating Flatpak apps, so it won’t be jumpy and weird anymore (Aleix Pol Gonzalez, Plasma 5.26.1. Link)

Fixed a regression in 5.26 with some 3rd-party KWin effects (David Edmundson, Plasma 5.26.1. Link)

Symlinked images once again appear in wallpaper slideshows (Fushan Wen, Plasma 5.26.1. Link)

The infamous “Korners” bug is finally fully fixed! The last issue–light-colored dots on rounded corners of dark panels–is now fixed (Niccolò Venerandi, Plasma 5.26.1. Link)

When using right-aligned icons on the desktop, adding new icons no longer causes all of the icons on the right-most column to jump to the left-most column (Marco Martin, Plasma 5.27. Link)

Other bug-related information of interest:

  • 10 Very high priority Plasma bugs (up from 8 last week, but this is fairly normal for right after a new Plasma release, as we use the VHI priority to track the most important things to fix). Current list of bugs
  • 53 15-minute Plasma bugs (up from 49 last week, which is mostly due to our new bot automatically classifying existing issues as 15-minute bugs). Current list of bugs
  • 141 KDE bugs of all kinds fixed this week. Full list of bugs

Automation & Systematization

This is a new section that I’m adding to highlight some of the work for the new “Automation & Systematization” goal. Topics include automation, documentation, increased test coverage, and anything else that improves KDE’s institutional memory by moving information out of people’s heads and into public systems.

One big change was made by Harald Sitter to the Bugzilla Bot. Now it will display a “nudge message” if you file a bug report on a version of Plasma just before the last supported version. It won’t close your bug report automatically, but will tell you that you should upgrade if possible:

What is the Bugzilla Bot? It’s the thing that closes bugs that have been the NEEDSINFO WAITINGFORINFO state for a month, automatically sets the severity to “crash” for bugs with “crash or “segfault” in their titles, and automatically closes bugs (with a gentle message) filed against Plasma versions that are too old to be supported. Harald did all of that too; he’s awesome! It’s really cool and you should contribute, especially if you have Ruby skills!

Ideas for new features:

  • If a bug report with the crash severity doesn’t have a backtrace attached or pasted inline, nag for one
  • When a backtrace is attached as a file, automatically paste its crashing stack frame inline
  • If a backtrace is lacking debug symbols, automatically add a comment asking for a new one with debug symbols, plus a link to https://community.kde.org/Guidelines_and_HOWTOs/Debugging/How_to_create_useful_crash_reports
  • Nag people to re-test bugs in the UNCONFIRMED state that are more than a year old

…And everything else

This blog only covers the tip of the iceberg! If you’re hungry for more, check out https://planet.kde.org, where you can find more news from other KDE contributors.

How You Can Help

If you’re a developer, check out our 15-Minute Bug Initiative. Working on these issues makes a big difference quickly! Otherwise, have a look at https://community.kde.org/Get_Involved to discover ways to be part of a project that really matters. Each contributor makes a huge difference in KDE; you are not a number or a cog in a machine! You don’t have to already be a programmer, either. I wasn’t when I got started. Try it, you’ll like it! We don’t bite!

Finally, consider making a tax-deductible donation to the KDE e.V. foundation.

Automate and systematize all the things!

As announced at Akademy a few days ago, I’m honored that my goal – Automate and Systematize Internal Processes – has been chosen by the KDE community! Those are a bunch of fancy words, but the idea is pretty simple: get our expertise (knowledge, skill, and wisdom) out of our heads, and onto KDE’s infrastructure.

Why? to reduce the burden on us personally to provide so much of that expertise on demand as an ongoing service, and to reduce the impact of breaks, vacations, and departures. Ultimately this will preserve expertise publicly in KDE where it’s easier to learn from, and free us all up to do other things!

There are many ways to contribute which can be found on the goal page. I’ll condense a bit and list some examples here:

  • Create automated tests to check for things you currently know to check for manually when reviewing code
  • Broadly improve documentation of internal processes; when you make a change to one of them, document it!
  • Write code comments that explain why something is implemented the way it is (not what it is or what it’s doing)
  • Adopt the reuse-lint continuous integration pipeline and clang-format git hookscript so they can do the boring work of checking for licensing and code formatting
  • Extend the Bugzilla bot to check for and provide canned answers in response to more conditions in new bug reports (missing backtrace for a crash bug, backtrace missing symbols, backtrace attached rather than pasted inline, etc)
  • Document the responses to common questions in FAQ-type pages, and provide links to them publicly in response to those questions so others know about them and can add to them themselves (e.g. see the VDG’s “Lessons Learned” page)
  • Document undocumented public APIs
  • Look for synergies; Harald’s idea to do UI testing using the accessibility APIs is a fantastic example, as it would systematically drive improvements for two things at once and prevent them from silently regressing
  • Don’t ping individual people; ping teams/groups/mailing lists etc. If there is no applicable collective entity containing the people you want to ping, create one and encourage them to join it
  • If you’re leaving KDE or don’t have time to maintain some of your projects anymore, perform offboarding; find people to hand things off to and teach them how to be you

There are a lot more things, but hopefully you get the idea. So let’s get out there and automate and systematize everything!

I’ll be documenting our progress and successes like I did with the Usability & Productivity goal… and, updating that goals wiki page would be a good step too. A GitLab workboard will probably pop up too, and I’ll let folks know about it once it exists. If people think a Matrix room would be helpful, we can get that going as well.

And thanks again for choosing this goal, everyone! You’re the best.