Big new release featuring lots of changes 🚀!
New calculation logic
Most notably, we fundamentally changed the way how durations are calculated. In a nutshell, the updated logic – as requested by many users – is closer to that of WakaTime now and adopts WakaTime's notion of heartbeat timeouts.
Before this refactoring, Wakapi had a single timeout parameter that was responsible for two different things. On the one hand, it acted as a timeout in the actual sense of the word, i.e. controlled the maximum timespan between two heartbeats in order for them to still be considered as a contiguous piece of coding. On the other hand, we used this parameter for padding every "last" heartbeat in a sequence. With this release, we dropped padding entirely (WakaTime doesn't have such either) and instead allow for much larger timeouts (currently up to 1 hour). For details, please refer to #675. In fact, the default setting was increased from 2 minutes to 10 minutes (WakaTime uses 15 minutes).
- Default timeout: 10 minutes
- Minimum timeout: 1 minute
- Maximum timeout: 60 minutes
Custom, user-specific timeouts less than the minimum or greater than the maximum were truncated accordingly. Users who didn't have a custom timeout configured were migrated to the new default of 10 minutes. As a consequence, your coding time will most likely be different all of a sudden now, so in a very strict sense, you might even argue this is a breaking change.
The changes conducted as part of this refactoring also pave the way for implementing new features such as #101.
Please note
Big fundamental changes like this one often come along with unexpected errors and bugs. We expect such to be revealed over time, especially on custom, self-hosted instances with other databases (than MySQL, used by Wakapi.dev). Please bear with us and report any errors you encounter, so we can fix them soon 🐞.
TL;DR
Expect your coding time to vary after this new release (will probably be higher) ☝️.
In addition, this release features the following.
Features
- Calendar view (#338) - thanks to @justin-jiajia
- Change usernames (#739)