[Bug 39748] New: Daylight savings breaks circulation
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 Bug ID: 39748 Summary: Daylight savings breaks circulation Change sponsored?: --- Product: Koha Version: Main Hardware: All OS: All Status: NEW Severity: major Priority: P5 - low Component: Circulation Assignee: koha-bugs@lists.koha-community.org Reporter: katrin.fischer@bsz-bw.de QA Contact: testopia@bugs.koha-community.org CC: gmcharlt@gmail.com, kyle.m.hall@gmail.com This is an odd one, but it's happening in multiple instances in the same timezone: The timezone is Africa/Cairo. They switch to daylight savings on April 25, today. This makes 2025-04-25 00:00-00:59 invalid times. It's not possible to access any patron account's details or checkouts tab. They all result in an error 500. This means that circulation is no longer possible. In the logs there is only an error from plack-error.log: Invalid local time for date in time zone: Africa/Cairo. All other tabs in the patron account work, so we think it might have something to do with some of the code shared between circulation.pl and moremember.pl. As it appears in multiple instances it doesn't appear to be data related. It could be that today's date is generated in a wrong way and used for a comparison somewhere (see bug 32232 for a similar case)? -- You are receiving this mail because: You are watching all bug changes. You are the assignee for the bug.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 --- Comment #1 from Katrin Fischer <katrin.fischer@bsz-bw.de> --- Confirmed for now in 22.11.23 -- You are receiving this mail because: You are the assignee for the bug. You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 --- Comment #2 from Katrin Fischer <katrin.fischer@bsz-bw.de> --- It appears in main it also breaks the API: * In ktd: edit koha-conf.xml and add Africa/Cairo to timezone element * restart_all * Patron search breaks: [2025/04/25 14:41:10] [ERROR] GET /api/v1/patrons: unhandled exception (Mojo::Exception)<<Invalid local time for date in time zone: Africa/Cairo>> -- You are receiving this mail because: You are the assignee for the bug. You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 --- Comment #3 from Katrin Fischer <katrin.fischer@bsz-bw.de> --- It also still breaks the patron start page: * Click on the "My account" link in the upper right corner - Error 500 -- You are receiving this mail because: You are the assignee for the bug. You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 David Cook <dcook@prosentient.com.au> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |dcook@prosentient.com.au -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 --- Comment #4 from Katrin Fischer <katrin.fischer@bsz-bw.de> --- OK: This morning the patron searches work again, but we expect another breakage in a year. This bug will affect all libraries in countries where the daylight savings take place between 00:00 and 1:00. It appears it's not that many countries handling it that way currently, but this can always change in our experience. https://en.wikipedia.org/wiki/Daylight_saving_time_by_country -- You are receiving this mail because: You are watching all bug changes. You are the assignee for the bug.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 --- Comment #5 from David Cook <dcook@prosentient.com.au> --- (In reply to Katrin Fischer from comment #4)
OK: This morning the patron searches work again, but we expect another breakage in a year.
I tried some tests but wasn't able to reproduce it. It would be good for someone to try setting their system clock to sometime on 2025-04-25 Africa/Cairo time and giving it a go. -- It would be handy to have a very specific "Steps to reproduce" though. Just like as if it was a test plan. -- You are receiving this mail because: You are the assignee for the bug. You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 David Cook <dcook@prosentient.com.au> changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|Daylight savings breaks |Daylight savings breaks |circulation |circulation (when DST | |change eliminates 00:00 to | |00:59) -- You are receiving this mail because: You are watching all bug changes. You are the assignee for the bug.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 --- Comment #6 from Katrin Fischer <katrin.fischer@bsz-bw.de> --- I tested on April 25, so I am not quite sure about the part, where you set the system time, but apart from that, I already wrote the test plan: * Update (In reply to Katrin Fischer from comment #2)
It appears in main it also breaks the API:
* In ktd: edit koha-conf.xml and add Africa/Cairo to timezone element * restart_all * Patron search breaks:
[2025/04/25 14:41:10] [ERROR] GET /api/v1/patrons: unhandled exception (Mojo::Exception)<<Invalid local time for date in time zone: Africa/Cairo>>
-- You are receiving this mail because: You are watching all bug changes. You are the assignee for the bug.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 --- Comment #7 from David Cook <dcook@prosentient.com.au> --- (In reply to Katrin Fischer from comment #6)
I tested on April 25, so I am not quite sure about the part, where you set the system time, but apart from that, I already wrote the test plan:
* Update (In reply to Katrin Fischer from comment #2)
It appears in main it also breaks the API:
* In ktd: edit koha-conf.xml and add Africa/Cairo to timezone element * restart_all * Patron search breaks:
[2025/04/25 14:41:10] [ERROR] GET /api/v1/patrons: unhandled exception (Mojo::Exception)<<Invalid local time for date in time zone: Africa/Cairo>>
But what are the actual steps? Is it the following? Test plan: 1. vi /etc/koha/sites/kohadev/koha-conf.xml 2. Add "Africa/Cairo" to the timezone element" 3. restart_all 4. Go to http://localhost:8081/cgi-bin/koha/members/members-home.pl 5. Type "anything" into the search box and click the arrow button to search 6. Note the popup that says "Something went wrong when loading the table" 7. Note the following error in /var/log/koha/kohadev/plack-api-error.log [2025/04/25 14:41:10] [ERROR] GET /api/v1/patrons: unhandled exception (Mojo::Exception)<<Invalid local time for date in time zone: Africa/Cairo -- You are receiving this mail because: You are watching all bug changes. You are the assignee for the bug.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 --- Comment #8 from Katrin Fischer <katrin.fischer@bsz-bw.de> --- Yes, that's correct. -- You are receiving this mail because: You are watching all bug changes. You are the assignee for the bug.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 Katrin Fischer <katrin.fischer@bsz-bw.de> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |CONFIRMED -- You are receiving this mail because: You are the assignee for the bug. You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 Lisette Scheer <lisette@bywatersolutions.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |lisette@bywatersolutions.co | |m --- Comment #9 from Lisette Scheer <lisette@bywatersolutions.com> --- (In reply to Katrin Fischer from comment #8)
Yes, that's correct.
We're running into a similar problem with a cron we run between 2-3 am, and the us changes happens at 2 am so we lose that hour. DateTime recommends doing calculations in UTC according to https://metacpan.org/pod/DateTime#How-DateTime-Math-Works (found from this issue on the GitHub https://github.com/houseabsolute/DateTime.pm/issues/21) -- You are receiving this mail because: You are the assignee for the bug. You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 Lucas Gass (lukeg) <lucas@bywatersolutions.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |lucas@bywatersolutions.com --- Comment #10 from Lucas Gass (lukeg) <lucas@bywatersolutions.com> --- I think we have run into this problem and in our case it is failing auto renewals: examining item '123' to auto renew An error was encountered in processing auto renewal for issue id: 123 {UNKNOWN}: Invalid local time for date in time zone: America/New_York at /usr/share/koha/lib/C4/Circulation.pm line 3648 https://github.com/houseabsolute/DateTime.pm/issues/147 https://metacpan.org/pod/DateTime#How-DateTime-Math-Works -- You are receiving this mail because: You are the assignee for the bug. You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 Lucas Gass (lukeg) <lucas@bywatersolutions.com> changed: What |Removed |Added ---------------------------------------------------------------------------- See Also| |https://bugs.koha-community | |.org/bugzilla3/show_bug.cgi | |?id=9031 -- You are receiving this mail because: You are the assignee for the bug. You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 --- Comment #11 from Lucas Gass (lukeg) <lucas@bywatersolutions.com> --- Do we have separate bugs? I think what Lisette and I describe is a problem in CalcDateDue. That does not seem the same as Katrin's original issue. I am having a really hard time with a test plan that doesn't involve "Wait until 2AM" as one of the steps. -- You are receiving this mail because: You are watching all bug changes. You are the assignee for the bug.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 --- Comment #12 from Lucas Gass (lukeg) <lucas@bywatersolutions.com> --- Created attachment 194929 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=194929&action=edit Bug 39748: Unit test for CalcDateDue 1. prove t/db_dependent/Circulation/CalcDateDue.t 2. it fails -- You are receiving this mail because: You are the assignee for the bug. You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 --- Comment #13 from Katrin Fischer <katrin.fischer@bsz-bw.de> --- (In reply to Lucas Gass (lukeg) from comment #11)
Do we have separate bugs? I think what Lisette and I describe is a problem in CalcDateDue. That does not seem the same as Katrin's original issue.
I am having a really hard time with a test plan that doesn't involve "Wait until 2AM" as one of the steps.
In testing I have in the past used the date command to reset my ktd to the needed time. Maybe that could be part of the test plan? -- You are receiving this mail because: You are the assignee for the bug. You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 --- Comment #14 from Katrin Fischer <katrin.fischer@bsz-bw.de> --- As the date is getting close again and it might take down multiple of our instances (again) for a day... if we could find a fix before April 25 that would be awesome. -- You are receiving this mail because: You are watching all bug changes. You are the assignee for the bug.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 --- Comment #15 from David Cook <dcook@prosentient.com.au> --- (In reply to Katrin Fischer from comment #13)
(In reply to Lucas Gass (lukeg) from comment #11)
Do we have separate bugs? I think what Lisette and I describe is a problem in CalcDateDue. That does not seem the same as Katrin's original issue.
I am having a really hard time with a test plan that doesn't involve "Wait until 2AM" as one of the steps.
In testing I have in the past used the date command to reset my ktd to the needed time. Maybe that could be part of the test plan?
I don't know that I've managed to reset my ktd time using `date` but I do have an atypical setup... -- You are receiving this mail because: You are watching all bug changes. You are the assignee for the bug.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 --- Comment #16 from David Cook <dcook@prosentient.com.au> --- (In reply to Katrin Fischer from comment #14)
As the date is getting close again and it might take down multiple of our instances (again) for a day... if we could find a fix before April 25 that would be awesome.
I do love a good DST bug but this one is a tricky one for sure. Since the error happens during search, it seems unlikely that the data is being changed during the search, so that's probably not the source of the problem. It could be a cronjob or it could be leftover from some other previous action. It would be good to know which column is involved in the problem. I suppose a person could set every timestamp/datetime in a patron record to 2025-04-25 00:00-00:59 and set the timezone to Africa/Cairo and work backwards from there... -- You are receiving this mail because: You are watching all bug changes. You are the assignee for the bug.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 --- Comment #17 from Katrin Fischer <katrin.fischer@bsz-bw.de> --- Hi David, I am sorry I didn't leave more information here last year, but I remember some still from my digging into it. I don't think it's the data. We checked the data up and down and the invalid date was not there. And this affected in multiple instances, so a data issue seems quite unlikely. I came to the conclusion, that the problem was in the code. I believe that we invoke "today" somewhere in the code with 00:00:00 to use for other calculations and that is invalid for that day - so it explodes. It could also be a bad pattern, that is used in multiple spots. Look at the places that broke, it was not the patron search: - checkouts tab - details tab All other patron account tabs worked. The patron's age is shown on other tabs we well. Maybe the way we calculate if something is shown as overdue? Thinking of the checkout table and some other notes like patron expiration and waiting holds that those 2 pages share. -- You are receiving this mail because: You are the assignee for the bug. You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 --- Comment #18 from David Cook <dcook@prosentient.com.au> --- Thanks for that added info, Katrin. That's interesting. Right... we do often truncate timestamps to 00:00:00 whether using today or a date truncate... so it is specific to the Africa/Cairo timezone since many other timezones do their DST changes later at like 2-3am. Hmm... -- You are receiving this mail because: You are the assignee for the bug. You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 --- Comment #19 from David Cook <dcook@prosentient.com.au> --- I'm not going to say that I'm awesome, but... I found a way to reliably reproduce the bug. Set the timezone to Africa/Cairo in koha-conf.xml Then at the top of /etc/koha/sites/kohadev/plack.psgi add the following before "use Modern::Perl" (ie as the first Perl lines of code): use Test::MockTime; BEGIN { Test::MockTime::set_absolute_time('1745580600'); } After that, you can restart Starman. Go to http://localhost:8081/cgi-bin/koha/about.pl and you'll see the Date and Time is 04/25/2025 14:30 and if you go to http://localhost:8081/cgi-bin/koha/circ/circulation.pl?borrowernumber=1# you get an internal server error. -- You are receiving this mail because: You are watching all bug changes. You are the assignee for the bug.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 --- Comment #20 from David Cook <dcook@prosentient.com.au> --- For /cgi-bin/koha/circ/circulation.pl?borrowernumber=1 the immediate error appears to be the $patron->is_expired check. in Koha::Patron::is_expired at /kohadevbox/koha/Koha/Patron.pm line 914 return 1 if dt_from_string( $self->dateexpiry ) < dt_from_string->truncate( to => 'day' ); -- There's a couple of ways this could be fixed. The comparison can either be done using UTC or floating timezone timestamps. Yikes, there's some scary stuff in dt_from_string where you could actually wind up doing a datetime comparison across different timezones. Not good. -- You are receiving this mail because: You are the assignee for the bug. You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 --- Comment #21 from David Cook <dcook@prosentient.com.au> --- On /cgi-bin/koha/members/moremember.pl?borrowernumber=1 it's in Koha::Patron::is_expired at /kohadevbox/koha/Koha/Patron.pm line 914 return 1 if dt_from_string( $self->dateexpiry ) < dt_from_string->truncate( to => 'day' ); in (eval) at /kohadevbox/koha/members/moremember.pl line 207 if ( $patron->is_expired || $patron->is_going_to_expire ) { -- You are receiving this mail because: You are watching all bug changes. You are the assignee for the bug.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 --- Comment #22 from David Cook <dcook@prosentient.com.au> --- In Koha/Patron.pm we should probably return 0 if $self->dateexpiry =~ '^0000' as well... And then yeah... We should be able to safely assume that $self->dateexpiry is an ISO timestamp in the local timezone, then convert to either UTC or floating, clone it, and then do the date truncation -- You are receiving this mail because: You are watching all bug changes. You are the assignee for the bug.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 --- Comment #23 from David Cook <dcook@prosentient.com.au> --- I imagine you can take it from there, Katrin? Let me know if you'd like me to take more of a look here. It's certainly an interesting one. I'm just pleased that I found a way that anyone can reliably reproduce the problem :D. The really cool part is that time will keep passing too. For me the time is now 04/25/2025 14:39 Africa/Cairo time. This could be hugely helpful for tackling a number of DST and time-related issues in general... -- You are receiving this mail because: You are watching all bug changes. You are the assignee for the bug.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 --- Comment #24 from David Cook <dcook@prosentient.com.au> --- How are you going with this one, Katrin? I'm a bit short on time for fixing this one at the moment, but I hope you can get it fixed before April 25 -- You are receiving this mail because: You are the assignee for the bug. You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 --- Comment #25 from Katrin Fischer <katrin.fischer@bsz-bw.de> --- I hope to take a look quite soon (with April 25 dooming). Thanks for your help and hints David! -- You are receiving this mail because: You are the assignee for the bug. You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 jonadab.theunsightlyone@gmail.com <jonadab.theunsightlyone@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jonadab.theunsightlyone@gma | |il.com --- Comment #26 from jonadab.theunsightlyone@gmail.com <jonadab.theunsightlyone@gmail.com> --- Minimal test case: use DateTime; my $tz = "Africa/Cairo"; my $year = 2025; my $month = 4; my $mday = 25; my $dt = DateTime->new ( time_zone => $tz, year => $year, month => $month, day => $mday, hour => 15 ); # So far so good, but now... my $trunc = $dt->truncate ( to => day ); # Fatal error This probably ought to be reported upstream to the DateTime maintainer. It's not documented in the POD for the truncate method in DateTime.pm, which suggests that it may not be a known limitation. At minimum it should be documented, or else truncate() should return the earliest valid time for that date. -- You are receiving this mail because: You are watching all bug changes. You are the assignee for the bug.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 --- Comment #27 from jonadab.theunsightlyone@gmail.com <jonadab.theunsightlyone@gmail.com> --- Report filed upstream for the DateTime people: https://github.com/houseabsolute/DateTime.pm/issues/155 No idea when they will act on this (and even if they do, it may only be to document truncate() as unsafe in certain cases), so carry on as before. -- You are receiving this mail because: You are watching all bug changes. You are the assignee for the bug.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 --- Comment #28 from David Cook <dcook@prosentient.com.au> --- (In reply to jonadab.theunsightlyone@gmail.com from comment #27)
Report filed upstream for the DateTime people: https://github.com/houseabsolute/DateTime.pm/issues/155
No idea when they will act on this (and even if they do, it may only be to document truncate() as unsafe in certain cases), so carry on as before.
As I note on the Github issue, I don't think this is actually a DateTime bug. It's just the reality of working with (local) time. (In reply to David Cook from comment #22)
In Koha/Patron.pm we should probably return 0 if $self->dateexpiry =~ '^0000' as well...
And then yeah... We should be able to safely assume that $self->dateexpiry is an ISO timestamp in the local timezone, then convert to either UTC or floating, clone it, and then do the date truncation
My earlier suggestion is a reasonable thing to do. -- You are receiving this mail because: You are watching all bug changes. You are the assignee for the bug.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 --- Comment #29 from David Cook <dcook@prosentient.com.au> --- (In reply to Lisette Scheer from comment #9)
(In reply to Katrin Fischer from comment #8)
Yes, that's correct.
We're running into a similar problem with a cron we run between 2-3 am, and the us changes happens at 2 am so we lose that hour.
DateTime recommends doing calculations in UTC according to https://metacpan.org/pod/DateTime#How-DateTime-Math-Works (found from this issue on the GitHub https://github.com/houseabsolute/DateTime.pm/issues/21)
(In reply to Lucas Gass (lukeg) from comment #11)
Do we have separate bugs? I think what Lisette and I describe is a problem in CalcDateDue. That does not seem the same as Katrin's original issue.
I am having a really hard time with a test plan that doesn't involve "Wait until 2AM" as one of the steps.
Yeah I think this is a separate bug. Can you folk open another report? Also, which cron? It would be good to see the problem call in context. -- You are receiving this mail because: You are watching all bug changes. You are the assignee for the bug.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 David Cook <dcook@prosentient.com.au> changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #194929|0 |1 is obsolete| | -- You are receiving this mail because: You are the assignee for the bug. You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 David Cook <dcook@prosentient.com.au> changed: What |Removed |Added ---------------------------------------------------------------------------- Assignee|koha-bugs@lists.koha-commun |dcook@prosentient.com.au |ity.org | -- You are receiving this mail because: You are the assignee for the bug. You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 David Cook <dcook@prosentient.com.au> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|CONFIRMED |Needs Signoff -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 --- Comment #30 from David Cook <dcook@prosentient.com.au> --- Created attachment 197137 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=197137&action=edit Bug 39748: Add unit test Patch from commit 0b2d0ba -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 --- Comment #31 from David Cook <dcook@prosentient.com.au> --- Created attachment 197138 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=197138&action=edit Bug 39748: Fix Koha::Patron->is_expired to calculate using floating timezone This patch updates Koha::Patron->is_expired so that it uses the floating timezone for its datemath calculation. Test plan: 0. Apply only the first patch including the unit test 1. prove -v t/db_dependent/Koha/ILL/Request.t \ t/db_dependent/Koha/Patron/Restriction.t \ t/db_dependent/Koha/Patrons.t \ t/db_dependent/Koha/AdditionalContents.t \ t/db_dependent/ILSDI_Services.t 2. Note that the unit tests fail 3. Apply the patch including the fix 4. prove -v t/db_dependent/Koha/ILL/Request.t \ t/db_dependent/Koha/Patron/Restriction.t \ t/db_dependent/Koha/Patrons.t \ t/db_dependent/Koha/AdditionalContents.t \ t/db_dependent/ILSDI_Services.t 5. Note that all unit tests pass now 6. Bonus points: - Add the following to the top of /etc/koha/sites/kohadev/plack.psgi before Modern::Perl: use Test::MockTime; BEGIN { Test::MockTime::set_absolute_time('1745580600'); } - koha-plack --restart kohadev - Look at the About page and do some circulation - Without the patches, you'll get an internal server error - With the patches, it'll just work -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 --- Comment #32 from David Cook <dcook@prosentient.com.au> --- (In reply to Lisette Scheer from comment #9)
(In reply to Katrin Fischer from comment #8)
Yes, that's correct.
We're running into a similar problem with a cron we run between 2-3 am, and the us changes happens at 2 am so we lose that hour.
DateTime recommends doing calculations in UTC according to https://metacpan.org/pod/DateTime#How-DateTime-Math-Works (found from this issue on the GitHub https://github.com/houseabsolute/DateTime.pm/issues/21)
You'll want to scrolldown a bit more on CPAN there to "math on non-UTC time zones". Sometimes, the right answer is to convert to UTC, and sometimes the right answer is to use a floating timezone. If you're doing datetime math where you're using the result of the math as a datetime itself, you probably want to use UTC. However, in this case, we're just checking to see if the "dateexpiry" is before midnight of the current date. In that case, things get more complicated. If we convert to UTC, it's possible that the current date could actually be the day before the real current date (this is common in Australia where we're many hours ahead of GMT - we cross UTC midnight around 10/11am depending on the time of year). -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 --- Comment #33 from David Cook <dcook@prosentient.com.au> --- Think I made a little mistake in my patch... while it "works", I think a quirk of Koha/DateUtils.pm (ugh) makes it not work quite the way it should... -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 David Cook <dcook@prosentient.com.au> changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #197137|0 |1 is obsolete| | -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 David Cook <dcook@prosentient.com.au> changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #197138|0 |1 is obsolete| | -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 --- Comment #34 from David Cook <dcook@prosentient.com.au> --- Created attachment 197139 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=197139&action=edit Bug 39748: Add unit test Patch from commit ea87cc3 -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 --- Comment #35 from David Cook <dcook@prosentient.com.au> --- Created attachment 197140 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=197140&action=edit Bug 39748: Fix Koha::Patron->is_expired to calculate using floating timezone This patch updates Koha::Patron->is_expired so that it uses the floating timezone for its datemath calculation. Test plan: 0. Apply only the first patch including the unit test 1. prove -v t/db_dependent/Koha/ILL/Request.t \ t/db_dependent/Koha/Patron/Restriction.t \ t/db_dependent/Koha/Patrons.t \ t/db_dependent/Koha/AdditionalContents.t \ t/db_dependent/ILSDI_Services.t 2. Note that the unit tests fail 3. Apply the patch including the fix 4. prove -v t/db_dependent/Koha/ILL/Request.t \ t/db_dependent/Koha/Patron/Restriction.t \ t/db_dependent/Koha/Patrons.t \ t/db_dependent/Koha/AdditionalContents.t \ t/db_dependent/ILSDI_Services.t 5. Note that all unit tests pass now 6. Bonus points: - Add the following to the top of /etc/koha/sites/kohadev/plack.psgi before Modern::Perl: use Test::MockTime; BEGIN { Test::MockTime::set_absolute_time('1745580600'); } - koha-plack --restart kohadev - Look at the About page and do some circulation - Without the patches, you'll get an internal server error - With the patches, it'll just work -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 --- Comment #36 from David Cook <dcook@prosentient.com.au> --- There we go. Much better and with a shiny unit test which proves it very well. -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 Jonathan Druart <jonathan.druart@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jonathan.druart@gmail.com QA Contact|testopia@bugs.koha-communit |jonathan.druart@gmail.com |y.org | -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 Roman Dolny <roman.dolny@jezuici.pl> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |roman.dolny@jezuici.pl -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 David Nind <david@davidnind.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|Needs Signoff |Failed QA CC| |david@davidnind.com --- Comment #37 from David Nind <david@davidnind.com> --- Tests failing 8-(: Test Summary Report ------------------- t/db_dependent/Koha/Patrons.t (Wstat: 65280 (exited 255) Tests: 52 Failed: 1) Failed test: 52 Non-zero exit status: 255 Parse errors: Bad plan. You planned 51 tests but ran 52. Files=5, Tests=89, 75 wallclock secs ( 0.15 usr 0.03 sys + 44.57 cusr 23.03 csys = 67.78 CPU) Result: FAIL -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 --- Comment #38 from Katrin Fischer <katrin.fischer@bsz-bw.de> --- I think it might only need the number of tests adjusted: Parse errors: Bad plan. You planned 51 tests but ran 52. -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 --- Comment #39 from David Nind <david@davidnind.com> --- (In reply to Katrin Fischer from comment #38)
I think it might only need the number of tests adjusted: Parse errors: Bad plan. You planned 51 tests but ran 52.
It is! (I was being lazy 8-)) Adding a follow-up now to fix the number of tests (Bug 42085 was recently pushed, which added an extra test). -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 --- Comment #40 from Katrin Fischer <katrin.fischer@bsz-bw.de> --- Lazy is definitely not something that comes to mind thinking about your community contributions! -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 David Nind <david@davidnind.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|Failed QA |Signed Off -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 David Nind <david@davidnind.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #197139|0 |1 is obsolete| | -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 David Nind <david@davidnind.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #197140|0 |1 is obsolete| | -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 --- Comment #41 from David Nind <david@davidnind.com> --- Created attachment 197712 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=197712&action=edit Bug 39748: Add unit test Signed-off-by: David Nind <david@davidnind.com> -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 --- Comment #42 from David Nind <david@davidnind.com> --- Created attachment 197713 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=197713&action=edit Bug 39748: Fix Koha::Patron->is_expired to calculate using floating timezone This patch updates Koha::Patron->is_expired so that it uses the floating timezone for its datemath calculation. Test plan: 0. Apply only the first patch including the unit test 1. prove -v t/db_dependent/Koha/ILL/Request.t \ t/db_dependent/Koha/Patron/Restriction.t \ t/db_dependent/Koha/Patrons.t \ t/db_dependent/Koha/AdditionalContents.t \ t/db_dependent/ILSDI_Services.t 2. Note that the unit tests fail 3. Apply the patch including the fix 4. prove -v t/db_dependent/Koha/ILL/Request.t \ t/db_dependent/Koha/Patron/Restriction.t \ t/db_dependent/Koha/Patrons.t \ t/db_dependent/Koha/AdditionalContents.t \ t/db_dependent/ILSDI_Services.t 5. Note that all unit tests pass now 6. Bonus points: - Add the following to the top of /etc/koha/sites/kohadev/plack.psgi before Modern::Perl: use Test::MockTime; BEGIN { Test::MockTime::set_absolute_time('1745580600'); } - koha-plack --restart kohadev - Look at the About page and do some circulation - Without the patches, you'll get an internal server error - With the patches, it'll just work Signed-off-by: David Nind <david@davidnind.com> -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 --- Comment #43 from David Nind <david@davidnind.com> --- Created attachment 197714 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=197714&action=edit Bug 39748: (follow-up) Update number of tests Tests were failing as the number of tests was incorrect as bug 42085 added additional tests. Signed-off-by: David Nind <david@davidnind.com> -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 --- Comment #44 from David Nind <david@davidnind.com> --- I didn't try for the bonus points 8-) -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 --- Comment #45 from David Cook <dcook@prosentient.com.au> --- Ahhh that's so interesting. My original patch included this: -use Test::More tests => 50; +use Test::More tests => 51; But then I guess someone must've added a test so the rebase dropped the change since it was unnecessary which yielded the bad number. Fascinating! -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 --- Comment #46 from David Cook <dcook@prosentient.com.au> --- (In reply to David Cook from comment #45)
Ahhh that's so interesting.
My original patch included this: -use Test::More tests => 50; +use Test::More tests => 51;
But then I guess someone must've added a test so the rebase dropped the change since it was unnecessary which yielded the bad number. Fascinating!
Ah, it was that dastardly Martin Renvoize with bug 42085 ;). -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 Jonathan Druart <jonathan.druart@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|Signed Off |Passed QA -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 Jonathan Druart <jonathan.druart@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #197712|0 |1 is obsolete| | -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 Jonathan Druart <jonathan.druart@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #197713|0 |1 is obsolete| | -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 Jonathan Druart <jonathan.druart@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #197714|0 |1 is obsolete| | -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 --- Comment #47 from Jonathan Druart <jonathan.druart@gmail.com> --- Created attachment 197771 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=197771&action=edit Bug 39748: Add unit test Signed-off-by: David Nind <david@davidnind.com> Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org> -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 --- Comment #48 from Jonathan Druart <jonathan.druart@gmail.com> --- Created attachment 197772 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=197772&action=edit Bug 39748: Fix Koha::Patron->is_expired to calculate using floating timezone This patch updates Koha::Patron->is_expired so that it uses the floating timezone for its datemath calculation. Test plan: 0. Apply only the first patch including the unit test 1. prove -v t/db_dependent/Koha/ILL/Request.t \ t/db_dependent/Koha/Patron/Restriction.t \ t/db_dependent/Koha/Patrons.t \ t/db_dependent/Koha/AdditionalContents.t \ t/db_dependent/ILSDI_Services.t 2. Note that the unit tests fail 3. Apply the patch including the fix 4. prove -v t/db_dependent/Koha/ILL/Request.t \ t/db_dependent/Koha/Patron/Restriction.t \ t/db_dependent/Koha/Patrons.t \ t/db_dependent/Koha/AdditionalContents.t \ t/db_dependent/ILSDI_Services.t 5. Note that all unit tests pass now 6. Bonus points: - Add the following to the top of /etc/koha/sites/kohadev/plack.psgi before Modern::Perl: use Test::MockTime; BEGIN { Test::MockTime::set_absolute_time('1745580600'); } - koha-plack --restart kohadev - Look at the About page and do some circulation - Without the patches, you'll get an internal server error - With the patches, it'll just work Signed-off-by: David Nind <david@davidnind.com> Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org> -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 --- Comment #49 from Jonathan Druart <jonathan.druart@gmail.com> --- Created attachment 197773 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=197773&action=edit Bug 39748: (follow-up) Update number of tests Tests were failing as the number of tests was incorrect as bug 42085 added additional tests. Signed-off-by: David Nind <david@davidnind.com> Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org> -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 --- Comment #50 from Jonathan Druart <jonathan.druart@gmail.com> --- Wondering if we shouldn't also fix dt_from_string: @ Koha/DateUtils.pm:72 @ sub dt_from_string { my $server_tz = C4::Context->tz; $tz = C4::Context->tz unless $tz; - return DateTime->now( time_zone => $tz ) unless $date_string; + unless($date_string){ + my $dt = eval {DateTime->now( time_zone => $tz )}; + if ($@){ + $tz = DateTime::TimeZone->new( name => 'floating' ); + $dt = DateTime->new({time_sone => $tz}); + } + return $dt; + } But that's for another day... -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 --- Comment #51 from David Cook <dcook@prosentient.com.au> --- (In reply to Jonathan Druart from comment #50)
Wondering if we shouldn't also fix dt_from_string:
@ Koha/DateUtils.pm:72 @ sub dt_from_string { my $server_tz = C4::Context->tz; $tz = C4::Context->tz unless $tz;
- return DateTime->now( time_zone => $tz ) unless $date_string; + unless($date_string){ + my $dt = eval {DateTime->now( time_zone => $tz )}; + if ($@){ + $tz = DateTime::TimeZone->new( name => 'floating' ); + $dt = DateTime->new({time_sone => $tz}); + } + return $dt; + }
But that's for another day...
I think that could also create subtle bugs if there are comparisons between a UTC/local timezone and a floating timezone. But... I was thinking it would be good at the end of dt_from_string to use the $tz that is passed in as an argument to dt_from_string. That would be a really useful change. -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 --- Comment #52 from Katrin Fischer <katrin.fischer@bsz-bw.de> --- A bit late to the party - thanks all for your help! I have just verified the problem again on my ktd with the great hints from here and confirmed that the patch fixes it. I think the test plan might be missing a hint to set the timezone in koha-conf.xml to Africa/Cairo? Adding another sign-off! We'll put this on our server in the problematic timezone and hopefully all will be well on April 25. -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 Katrin Fischer <katrin.fischer@bsz-bw.de> changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #197771|0 |1 is obsolete| | -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 Katrin Fischer <katrin.fischer@bsz-bw.de> changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #197772|0 |1 is obsolete| | -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 Katrin Fischer <katrin.fischer@bsz-bw.de> changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #197773|0 |1 is obsolete| | -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 --- Comment #53 from Katrin Fischer <katrin.fischer@bsz-bw.de> --- Created attachment 197850 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=197850&action=edit Bug 39748: Add unit test Signed-off-by: David Nind <david@davidnind.com> Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org> Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de> -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 --- Comment #54 from Katrin Fischer <katrin.fischer@bsz-bw.de> --- Created attachment 197851 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=197851&action=edit Bug 39748: Fix Koha::Patron->is_expired to calculate using floating timezone This patch updates Koha::Patron->is_expired so that it uses the floating timezone for its datemath calculation. Test plan: 0. Apply only the first patch including the unit test 1. prove -v t/db_dependent/Koha/ILL/Request.t \ t/db_dependent/Koha/Patron/Restriction.t \ t/db_dependent/Koha/Patrons.t \ t/db_dependent/Koha/AdditionalContents.t \ t/db_dependent/ILSDI_Services.t 2. Note that the unit tests fail 3. Apply the patch including the fix 4. prove -v t/db_dependent/Koha/ILL/Request.t \ t/db_dependent/Koha/Patron/Restriction.t \ t/db_dependent/Koha/Patrons.t \ t/db_dependent/Koha/AdditionalContents.t \ t/db_dependent/ILSDI_Services.t 5. Note that all unit tests pass now 6. Bonus points: - Add the following to the top of /etc/koha/sites/kohadev/plack.psgi before Modern::Perl: use Test::MockTime; BEGIN { Test::MockTime::set_absolute_time('1745580600'); } - koha-plack --restart kohadev - Look at the About page and do some circulation - Without the patches, you'll get an internal server error - With the patches, it'll just work Signed-off-by: David Nind <david@davidnind.com> Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org> Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de> -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 --- Comment #55 from Katrin Fischer <katrin.fischer@bsz-bw.de> --- Created attachment 197852 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=197852&action=edit Bug 39748: (follow-up) Update number of tests Tests were failing as the number of tests was incorrect as bug 42085 added additional tests. Signed-off-by: David Nind <david@davidnind.com> Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org> Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de> -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 --- Comment #56 from David Cook <dcook@prosentient.com.au> --- (In reply to Katrin Fischer from comment #52)
We'll put this on our server in the problematic timezone and hopefully all will be well on April 25.
All in the name of Koha's mastery over time :D -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 Lucas Gass (lukeg) <lucas@bywatersolutions.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|Passed QA |Pushed to main Version(s)| |26.05.00 released in| | -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 --- Comment #57 from Lucas Gass (lukeg) <lucas@bywatersolutions.com> --- Nice work everyone! Pushed to main for 26.05 -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 David Nind <david@davidnind.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Text to go in the| |This fixes an issue that release notes| |affects libraries in | |countries where the change | |to daylight savings time | |take place between 00:00 | |and 1:00 (and possibly some | |other daylight savings time | |changes). | | | |While it's not that many | |countries, it can cause | |errors accessing patron | |details and check out pages | |in the staff interface. --- Comment #58 from David Nind <david@davidnind.com> --- Attempted a release note, not sure I got it right. (Was tempted to say "Whoosh..." as in way over my head....) -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 --- Comment #59 from David Cook <dcook@prosentient.com.au> --- (In reply to David Nind from comment #58)
Attempted a release note, not sure I got it right. (Was tempted to say "Whoosh..." as in way over my head....)
Thanks for having a crack at it. I'll take a look and update if necessary. I find character encodings and time to be two of the more interesting computer problems :3. I suppose time in general is just a human problem. The idea that some times don't exist and some times happen twice. In a way, it is a bit mind-boggling. -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 David Cook <dcook@prosentient.com.au> changed: What |Removed |Added ---------------------------------------------------------------------------- Text to go in the|This fixes an issue that |This change fixes a release notes|affects libraries in |timezone-related issue that |countries where the change |occurs when checking patron |to daylight savings time |expiry dates in certain |take place between 00:00 |timezones (e.g. |and 1:00 (and possibly some |Africa/Cairo) where the |other daylight savings time |daylight savings time |changes). |change erases midnight from | |that day. |While it's not that many | |countries, it can cause |While it is a rare problem, |errors accessing patron |it can cause errors |details and check out pages |accessing patron details |in the staff interface. |and check out pages in the | |staff interface for those | |Koha instances affected. -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 --- Comment #60 from Katrin Fischer <katrin.fischer@bsz-bw.de> --- (In reply to David Cook from comment #59)
I suppose time in general is just a human problem. The idea that some times don't exist and some times happen twice. In a way, it is a bit mind-boggling.
It is! Since we started working with libraries in different timezones I have learned more things about time than I ever wanted to know! Big thanks to the David's for your help here!! -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 Jacob O'Mara <jacob.omara@openfifth.co.uk> changed: What |Removed |Added ---------------------------------------------------------------------------- Version(s)|26.05.00 |26.05.00,25.11.05 released in| | Status|Pushed to main |Pushed to stable -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39748 --- Comment #61 from Jacob O'Mara <jacob.omara@openfifth.co.uk> --- Thanks all, pushed to 25.11.x -- You are receiving this mail because: You are watching all bug changes.
participants (1)
-
bugzilla-daemon@bugs.koha-community.org