24 Jul 2025
Koha is the first free and open source software library automation package (ILS). Development is sponsored by libraries of varying types and sizes, volunteers, and support companies from around the world. The website for the Koha project is:
Koha 25.05.02 can be downloaded from:
Installation instructions can be found at:
Koha 25.05.02 is a bugfix/maintenance release.
It includes 25 enhancements, 96 bugfixes.
System requirements
You can learn about the system components (like OS and database) needed for running Koha on the community wiki.
40165 Incomplete logic for controlling display of OPAC language footer
Sponsored by Athens County Public Libraries
This fixes the EDIFACT order confirmation message for a basket so that the EAN information is now included on the confirmation page ([a basket for a vendor] > Create EDIFACT order > [select EAN from dropdown list], with the BasketConfirmations system preference set to 'always ask for conformation').
Previously, the
Create EDIFACT orderaction would take librarians to a page to select the EDI Library EAN. Now, the EANs are included in a dropdown list for the action. This removed the chance to review the selected EAN to confirm it was correct. In addition, some libraries have dozens of Library EANs, making the button dropdown list cumbersome to use.
37305 Remove C4::Biblio::prepare_marc_host and use Koha::Biblio->generate_marc_host_field in preference
25.11.00
Sponsored by Open Fifth
This adds unordered, ordered, and description list tags (
,
,
- ,
,
- , and
- ) to the HTML that is allowed in notes fields (for example, course reserves staff and public notes).
- 40242 Typo in Quotes module This fixes a typo in the code for the quote of the day tool (there were two =>).
- 40261 Tidy
build-git-snapshot- 40277 Warn in C4::Koha::GetAuthorisedValues() This fixes the cause of an unnecessary warning message[1] in the logs when searching the OPAC when not logged in. (This warning was occurring when the OpacAdvancedSearchTypes system preference was set to something other than "itemtypes", for example "loc".)
[1] Warning message: [WARN] Use of uninitialized value $branch_limit in concatenation (.) or string at ...
Authentication
This patch adds more control to Koha::CookieManager by allowing to refine its list of managed cookies with keep or remove entries in koha-conf.xml.
IMPORTANT NOTE: The former (probably widely unused) feature of putting a regex in the do_not_remove_cookie lines is replaced by interpreting its value as a prefix. (So you should e.g. replace catalogue_editor_\d+ by just catalogue_editor_
40107 Article requests: some DataTables functionality is broken
This fixes JavaScript errors in the staff interface article requests table. The tables weren't refreshing, and the tab numbers weren't updating, when selecting an action for individual or multiple requests (such as 'Set request as pending').
Sponsored by Athens County Public Libraries
This fixes a path in a hint in the search for data inconsistencies script (search_for_data_inconsistencies.pl) - misc/cronjobs/fix_invalid_dates.pl should be misc/maintenance/fix_invalid_dates.pl.
This restores the sticky toolbar when adding a vendor in the acquisitions module (Acquisitions > + New vendor). This is related to bug 38010, which migrates vendors in the acquisitions module to using Vue - the sticky menu was not included in this.
This fixes the holds to pull page so that the dropdown library filter works if the library name contains parenthesis (Circulation > Holds and bookings > Holds to pull).
20601 Untranslatable strings in circulation statistics
This fixes and enhances the circulation statistics report wizard:
- Fixes some strings so that they are now translatable
- Fixes the patron library dropdown list so that it now works
- Improves the "Filtered on" information shown before the report results: . the filtered on options selected in the report are now shown in bold . descriptions are now shown instead of codes (for example, the library name instead of the library code)
Sponsored by Athens County Public Libraries
This fixes the "Error 500..." message generated when printing barcode ranges using the label creator, where the layout type selected is "Bibliographic data precedes barcode" (Cataloging > Tools > Label creator).
This fixes a regression between Koha 24.11, and 25.05 and main. When adding a new authority or bibliographic record, clicking save (without filling in any fields) now restores filling in the auto-populated fields such as 000, 003, and 008.
This fixes the OPAC browse search feature (OpacBrowseSearch system preference, Elasticsearch only). Expanding and collapsing the search results to show the details now works, instead of nothing happening.
34776 Patron messaging preferences are lost when an error occurs during new account creation
This fixes creating a new patron - the messaging preferences are now remembered if there is an error when creating a new patron. Before this, if there was an error when creating a patron (for example, the wrong age for the patron category), the messaging preferences (either the default or changes made) were emptied and needed to be re-added.
Sponsored by Koha-Suomi Oy
40116 Extra popup notice when saving a patron with patron guarantor ends in error
This patch changes existing guarantors elements in the patron add form to use classes "guarantor_id" and "guarantor_relationship" to prevent an unnecessary pop-up if the form throws an error.
Sponsored by Koha-Suomi Oy
This fixes the patron circulation history page. The 'Type' column should not be shown, and is now hidden.
This development adds more holdability checks to the
POST /holdsendpoint. Overrides are added for all of them:
- bad_address
- card_lost
- debt_limit
- expired
- hold_limit
- restricted
Before this development, only
anycould be passed as an override. It will now have more granularity.
39534 Saved report subgroup filter not hidden correctly
Sponsored by Athens County Public Libraries
This fixes a JavaScript error on bibliographic record pages in the staff interface, where the record has no items.
39939 Cancel selected holds button on the holds awaiting pickup page is the same color as the background
This fixes the cancel selected holds buttons on the holds awaiting pickup page (under the tabs) (Circulation > Holds > Holds awaiting pickup). The light grey background was removed, and you can now see the cancel selected holds buttons.
It also links the TransferWhenCancelAllWaitingHolds system preference under the "Holds waiting past their expiration date", if the staff patron has permission to change system preferences.
Sponsored by Athens County Public Libraries
This patch adds HTML data-attributes to some hidden content in the staff interface. This makes it easier to retrieve context about the logged in user with CSS or JavaScript.
This fixes the capitalization for the labels displayed in the MARC tag editor for UNIMARC subfields 181$a, 181$c, $182$a, 182$c, and 183$c, when the value builders are used. The labels are changed from capital case to sentence case, for consistency with other labels: - Content Form -> Content form (181$a) - Content Type -> Content type (181$c) - Media Type Code -> Media type code (182$a) - Media Type -> Media type (182$c) - In the dropdown list (183$a): . Audio Carriers -> Audio carriers . Computer Carriers -> Computer carriers . Microform Carriers -> Microform carriers . Microscopic Carriers -> Microscopic carriers . Stereographic Carriers -> Stereographic carriers
39441 Some templates have div.container instead of div.container-fluid
This updates a few templates so that div.container is replaced with div.container-fluid. div.container has a fixed maximum width that isn't consistent with the rest of Koha. An example where this caused display issues - the staff interface cart: the action icons were bunched up to the left, instead of being spread evenly across the pop-up window width.
Sponsored by Athens County Public Libraries
39954 Cataloging search results incorrect menu markup
Sponsored by Athens County Public Libraries
40111 Fix title sorting on two reports
Sponsored by Athens County Public Libraries
40249 "Copy settings" should be "Copy permissions"
This bug changes the phrase "Copy settings" to read as "Copy permissions".
Sponsored by Athens County Public Libraries
40319 Fix spacing in address display include
Sponsored by Athens County Public Libraries
31632 Add ability to manually link orders to suggestions
This enhancement allows library staff to link an order (in an unclosed basket, or a standing order) to an accepted suggestion.
Sponsored by Pymble Ladies' College
39545 Construct more complete 773 content when creating a child record
Sponsored by Open Fifth
This enhancement adds the patron's card number to the transfers to receive page for patrons shown in the 'on hold for' column, for item-level holds (Circulation > Transfers > Transfers to receive).
This enhancement add a 'Hold note' column to the patron's hold history table. It is configurable via administration's Table settings.
38792 Move "My virtual card" tab and maybe re-label it
Sponsored by Athens County Public Libraries
This patch adds a new Template::Toolkit library to Koha's dependencies. This library, while not directly used in Koha, can be used in Template::Toolkit-driven templates to access JSON structures (e.g. notices, report templates, etc).
A good example is making report templates that include JSON columns, like
background_jobs.data.
39448 Layout improvement for search filter administration
Sponsored by Athens County Public Libraries
The Koha manual is maintained in Sphinx. The home page for Koha documentation is
Koha Documentation As of the date of these release notes, the Koha manual is available in the following languages:
The Git repository for the Koha manual can be found at
Complete or near-complete translations of the OPAC and staff interface are available in this release for the following languages:
Partial translations are available for various other languages.
The Koha team welcomes additional translations; please see
For information about translating Koha, and join the koha-translate list to volunteer:
The most up-to-date translations can be found at:
The release team for Koha 25.05.02 is
Release Manager: Lucas Gass
QA Manager: Martin Renvoize
QA Team:
Documentation Manager: David Nind
Documentation Team:
Translation Manager: Jonathan Druart
Wiki curators:
Release Maintainers:
Release Maintainer assistants:
We thank the following libraries, companies, and other institutions who are known to have sponsored new features in Koha 25.05.02
We thank the following individuals who contributed patches to Koha 25.05.02
We thank the following libraries, companies, and other institutions who contributed patches to Koha 25.05.02
We also especially thank the following individuals who tested patches for Koha
We regret any omissions. If a contributor has been inadvertently missed, please send a patch against these release notes to koha-devel@lists.koha-community.org.
The Koha project uses Git for version control. The current development version of Koha can be retrieved by checking out the main branch of:
The branch for this version of Koha and future bugfixes in this release line is 25.05.x.
Bug reports and feature requests can be filed at the Koha bug tracker at:
He rau ringa e oti ai. (Many hands finish the work)
Autogenerated release notes updated last on 24 Jul 2025 20:50:14.