Saturday, 21 June 2025
It took a year for me to actually make a release, but KTimeTracker 6.0.0 is now out!
Major changes🔗
The major thing about it is that KTimeTracker has been ported to Qt6. For end users this means up-to-date Linux distributions that had orphaned KTimeTracker will get the package back once a package maintainer steps up.
KTimeTracker has long had a (currently) X11-exclusive feature where it detects the virtual desktop you're in and uses that to start/stop tracking a task. This does not work on Wayland and Windows, and now it won't show up on either platform so you don't attempt to use something that doesn't work!
The project is now REUSE compliant. This means that the ways in which you can use, reuse, and distribute KTimeTracker's source code are clearer.
The CMake code was refactored to be more modular. The KTimeTracker code is long-lived and has circular dependencies and fixing them is beyond my skills, but any new code can now be added as a separate library target, so it can be linked where needed and be easily split for reuse by other projects if necessary.
It now supports KCrash! This means that now, in the rare event that KTimeTracker crashes, it will show a nice dialog (Dr. Konqi) that lets you fetch the backtrace and report the crash directly.
In the main pane, you can make the "Percent Complete" tab visible by going to
Settings -> Configure KTimeTracker... -> Appearance -> Columns displayed. Once that is visible, you can drag the mouse over the percent bar to set how much of it is complete, or you can right click it and select from a list of percentages. The latter used to have only 10% increments (10%, 20%, 30%, etc), but now it has 5% increments.KTimeTracker is now properly marked as a single window application (you don't really want it to have multiple windows) and will be raised if you attempt to open it again.
If you go to
File -> Edit History..., you can change the history of your tasks in case they are wrong. After editing it, it used to show up in an incorrect date format, and that has been fixed.
What's available?🔗
Not much.
The tarball: https://download.kde.org/unstable/ktimetracker/
The nightly flatpak: flatpak install https://cdn.kde.org/flatpak/ktimetracker-nightly/org.kde.ktimetracker.flatpakref
Linux distributions and FreeBSD can already package version 6.0.0 using the tarball. I want to attempt to make and maybe maintain the Fedora and openSUSE packages (because I really like the RPM format), but we'll see.
KTimeTracker 6.0.0 compiles on Windows, but the Craft blueprint is not up-to-date and no installer is available yet. Ideally, once it's fleshed out, I want to make it available on the Microsoft Store. Thankfully our packaging tutorials are awesome and the KDE Continuous Integration system make this much easier. I also just recently wrote a tutorial on Building KDE software on Windows with Craft which is way nicer than any deployment process and package management I've seen in the wild for Windows (so much nicer than vcpkg/conan too), so now I actually know how to do it.
The stable flatpak on Flathub has not been done yet. It builds, but it fails some Flathub guidelines, and it seems to be non-trivial to fix from the code side.
The lack of an up-to-date Craft blueprint also means no AppImage.
I have yet to look at Snap. We first need a Snap tutorial, though, MRs welcome.
Why did you take so long?🔗
I started porting KTimeTracker two years ago and finished it one year ago. Not that it was particularly difficult, but I didn't know how to solve some blockers. It was also my first port to Qt6, I found that porting a project to Qt6 can actually be a good entrypoint for people with a beginner-to-intermediate C++ level. I wrote a blog post about it already.
I consider KTimeTracker to be effectively the best FOSS time tracker on Linux, so I wanted to make the new release myself.
But making releases sounds very official (and thus scary). We also have two different pages documenting how to make a release: the releaseme project, and the ReleasingSoftware wiki. Worse: it conflicts in part with the terminal output when running the release scripts. This is a problem and as a documentation contractor I should fix this so there's only one source of truth, but before that I need to actually learn the thing first.
The biggest causes of fear though were not knowing if the steps were reversible, and not knowing in which order they should be done.
I postponed it and postponed it and decided "well whatever, I'll just do it and if I screw it up bad I'll just manage somehow". It also helps that I recently saw a new user wanting to contribute to it, I needed to make the project more easily available for them to hack on.








