[Dart] Dashboard rollover times.
Brad King
brad.king at kitware.com
Mon, 7 Jan 2002 14:44:15 -0500 (EST)
Hi Jim,
> My first preference would be to fix the problem that you are having
> rather than change the whole time encoding scheme. Dealing with these
> times is remarkably confusing since you have to take into account that
> someone might be on a different day than the server. This is why the
> conversion to seconds in GMT is done.
I already traced down the problem, but I didn't explain it in detail
before.
On the server side:
MakeNightlyDateStamp uses GetNightlySeconds to convert the
NightlyStartTime into seconds. It then uses
clock format $t -format %Y%m%d -gmt 1
to convert the time into an encoded date stamp. This immediately looses
all time-of-day information, making it impossible to identify the correct
24-hour window.
On the client side:
The encoded build stamp for a nightly build is YYYYMMDD-Nightly (in GMT).
This already looses the time-of-day information. It is up to the server
to figure out what dashboard corresponds to the date given in the stamp.
Since the dashboard rollover isn't always at midnight GMT, it is tricky to
choose the correct day. Currently, it looks like it just decides whether
the nightly start time is in the future or the past of the current day to
decide what the current dashboard's day is.
These combined problems are what makes the logic in Utility.tcl so hard to
write and follow, and also introduces the bugs. I would think it is
easier to change the encoding scheme to solve the problem. Also, having
the nightly start time as part of the encoding of a nightly build will
make it easier to go back in time and get a CVS checkout of the exact
source that was used for the build.
-Brad