What would be effective? If there is none, then project proceeds at the pace that volunteers can move it.
If volunteers get too low, project stagnates even more than it’s currently stagnating (relative to requests).
Thanks to @Xavron for starting to assist. Presumably it followed reading forum. I read for quite awhile. Everybody starts somewhere, and some ramps are harder. Even current developers are still learning…
I haven’t done a recent study, but I’m pretty sure I’ve seen advice saying that this is the best way to do it, from a programming point of view. From a user point of view, time jumps at DST regardless of the code.
I did a quick Google search for “best practice” “time zone” “UTC” “local” “user interface” to get thoughts.
Not answering the corner case question. If, say, DST happens at 2:00 A.M., and you schedule for 2:30 in Spring (forward), is it OK to skip when 2:30 doesn’t happen (because local times jumps to 3)? In Autumn, schedule for 1:30 potentially happens twice. For a first cut, would such oddities be acceptable? This may possibly not require rewriting the whole scheduler. Big job, and I’m not sure Canary test can cover it well, because there aren’t that many users, DST change is only twice a year, and users might expect oddities.
If it has to get fancier like cron does it, then it gets harder but might still be simpler than scheduler rewrite.
If you look at the GUI on your backup, I believe you see the next run is scheduled when current run begins. This seems like a good time for code to set a proper next UTC after considering the plan for DST change. The rest of the code can maybe stay as-is, doing UTC-to-local conversion for “Next scheduled task” and kicking off jobs in UTC as currently done. I’m writing this from memory, but this might simplify the change.
What’s interesting is that the times in Duplicati-server.sqlite (which are UTC) get updated after the backup which is different than what the GUI job’s “Next scheduled run” does. I checked – it did update at run start.
I’m not sure what to make of this difference, but what I wonder about is – can smart next run time fix this?
is possibly in the same neighborhood except it sounds like a later check, and I’m talking about in advance.
There seems to be at least a bit of developer expertise at how the run times get set, because this is fixed:
Fix issue where multiple backups could occur after pause #4180 (which also leads to the scheduler code)
although it does mention LastRun
time, and I’m probably talking Time
at least in DB Schedule
table name.
I think this would make the UX worse all the time by many hours instead of only weird from the DST shifts. Please have a closer look at the “best practice” articles I cited, and see what you think. I have some UNIX experience, and been very used to doing the internals in Epoch time, so my view might be colored by that.
That’d be great. Not pointing at you specifically about volunteers, but it really is a very serious need to even come close to meeting the expectations of the increasing number of users who are asking for things done.