Koha 3.14 Release Manager’s Update #2
This is a second of a set of periodic updates on the progress of the next major release of Koha, 3.14.
Since my first update, I have pushed a total of 144 patches to the master branch.
Of particular note, the patches for bug 10657 fix a security issue with the cookie used to store OPAC search history for anonymous sessions. The patches have been backported all the way back to 3.4.x, and I reiterate our recommendation that all Koha users upgrade as soon as possible. For more information, please consult the security announcement.
The following major enhancements were pushed:
- Bug 5858: update default MARC21 framework to April 2013 revision
- Bug 7494: optional checkout-time fallback search for a book. This enhancement adds an option to perform a keyword search to look up an item during checkout if it is not found by barcode. This means that Koha will no longer require item barcodes for circulation to work — a feature that hopefully will be of use for special collections.
- Bug 9576: can now control whether max loans limit can be overridden
- Bug 10404: add previous/next browsing to staff client
The following minor enhancements were pushed:
- Bug 5652: display subtitles on patron checkout and holds summary
- Bug 5894: Display all titles when confirming copy of items from cart to list
- Bug 7257: Add a link to remove an individual title from a list in the OPAC
- Bug 10317: improve display when order receiving page is given an invalid invoiceid
- Bug 10356: improve display of serial issue dates in staff bib details page
- Bug 10366: Alert librarian if an invoice number is duplicated
- Bug 10390: Add ability to delete empty invoices
- Bug 10448: can now change framework after duplicating bib record
- Bug 10514: improve visibility of Add item link on new order form
- Bug 10553: make public lists available on OPAC login page
The following significant bugfixes were pushed:
- Bug 2394: Use syspref canreservefromotherbranches in CanItemBeReserved. This is important for users of the
IndependentBranchessystem preference, as the fix means that the intended behavior that independent branches prevent users from placing holds on items that do not belong to their home library is finally in place.
- Bug 7019: fix sorting by return date in Circulation History
- Bug 9113: fix handling of certain characters by item batch modification tool
- Bug 9362: fix query that finds upcoming due loans. As a consequence of this fix, a longstanding issue where patrons were sent advanced and overdue notices at the wrong time is resolved.
- Bug 9770: fix sorting of Dewey call numbers that contain prefixes
- Bug 10070: fix saving searches with non-ASCII characters to anonymous search history
- Bug 10258: fix permissions check for setting basket group for order basket
- Bug 10384: fall back to normal authentication if LDAP server is not available
- Bug 10457: fix SQL error when using ‘export select items data’ in serials claims page
- Bug 10475: Item form in acquisition not hiding subfields properly
- Bug 10490: Fix how overdue fines cap is stored in the database. This resolves an issue where the overdue fine cap could only be stored in whole currency amounts. For example, before the fix you could set a cap of €4.00 but not €3.50.
- Bug 10541: enable cross-browser AJAX in additem.js
- Bug 10543: fix false warnings from checks of mandatory item fields
- Bug 10556: fix setting the delivery time when adding a vendor
- Bug 10560: make it possible for default interface language to not be English
- Bug 10563: Fix broken ‘Edit’ link on check expiration page
- Bug 10578: fix results sorting in staff interface
- Bug 10592: fix MARC21 006/008 cataloging plugins
- Bug 10597: fix Search to hold button on record details page
- Bug 10621: use correct from-address for subscription alert emails
In addition, several patches concerning the improvement of Koha’s test suite were pushed. I would particularly like to mention Jonathan Druart and new Koha developer Kenza Zaki for their ongoing efforts in adding new tests.
That leads me to the topic of testing. As always, we need as many people as possible testing incoming patches and signing off on the good ones (and providing constructive criticism of the ones that need some more work!). I would like to thank Magnus Enger for spearheading the recent Global Bug Squashing Days. During the last one, which took place on 9 August, the total number of patches awaiting signoff decreased by 19. The next GBSD is on 23 August; let’s shoot for reviewing even more patches, particularly since we’ll be reaching the end of the Northern Hemisphere summer doldrums.
One issue that I and QA Manager Katrin Fischer would like to mention is that there are a large number of UNIMARC patches that have been awaiting review for a long time. I encourage UNIMARC users to take a look at these patches, many of which have to do with indexing. Also, if anybody has any ideas on whether it is advisable and feasible for MARC21 users to participate in the review of UNIMARC patches, please speak up.
I will wrap up this section with two words. Regression tests!
Not enough words? Well, OK, I’ll expand on this. I have been making the habit of writing regression tests for some of the bugs I push patches for. I do this for several reasons:
- Sometimes writing a test helps me understand the problem, which in turn helps me evaluate the patch that is meant to fix it.
- Sometimes in the course of writing tests, I turn up other issues. Sometimes those issues can be deferred, in which case I’ll file a bug, but sometimes they point out cases that the patch needs to address.
- A regression test is executable documentation! In other words, it is a way of expressing the intent of the code it tests.
I encourage folks to include regression tests along with their patches. I very much like to see patch series that start with a patch that adds tests that exercise the bug in question, followed by a patch that fixes the problem, optionally followed by a patch that corrects whitespace issues.
I especially encourage folks to include tests for patches that aim to refactor existing code. Not all refactoring is bad, but refactoring that lacks tests is almost always questionable.
I’m still working on
DBIx::Class testing as well as looking at UTF-8 issues, the logging module, and SIPServer. In addition, in the next couple weeks I intend to circulate an RFC providing some more details on my proposal to add support for non-MARC metadata to Koha.
As always, I would like to thank everybody who has taken the time to make a contribution, no matter how large or small, to Koha.