Koha 3.10.0 released

You can get a PDF nicely formatted of this post at Koha 3.10 enhancements

A version translated to french is also available

The Koha team is proud to announce the release of Koha 3.10.0.

Koha 3.10.0 is a major release, that comes with many new features.

It includes 160 enhancement and 455 bugfixes.

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 http://koha-community.org and Koha 3.10.0 can be downloaded from: http://download.koha-community.org/koha-3.10.00.tar.gz

Installation instructions can be found at http://wiki.koha-community.org/wiki/Installation_Documentation or in the INSTALL files that come in the tarball

Warning for UNIMARC libraries

All UNIMARC libraries must upgrade their zebra configuration and restart zebra, or searches will always return 0 results.

Upgrading zebra is automatically done with ‘make upgrade’. Libraries using git must go to the bugzilla 3087 entry to see what must be changed.

Plack for staff interface

The most important feature that comes with Koha 3.10.0 is Plack compatibility for the staff interface. In Koha 3.8.0, the OPAC was already plack-ready. A lot of work (more than 30 bugfixes) has been made to make the staff interface Plack-compliant.

The Koha team made many tests, and BibLibre has published a blog entry about performance improvements: using Plack for staff interface will improve your productivity by 25%.

If you’re interested by the complete details for of the tests, you can have a look at:


However, Plack is not activated by default when you install Koha (and not activated when you upgrade from a previous version. If you want to activate it, everything you need is described on the wiki page:


Enhancements and new features in Koha 3.10.0


  • Display additional system information (preferences) on About page to minimize support cases (bug #8301)
    • To minimize support questions regarding common mistakes, the About page now has an additional tab that displays warnings if deprecated and/or mutually exclusive system preferences are used.

      Example: Bug 8298 Can’t call method subfield on an undefined value at Biblio.pm (sub _AddBiblioNoZebra)

  • Add information warning about log-in as root user to About->System information (bug #8641)
    • If you are logged in as database administrative user,a lot of things do not work.

      It seems that this is a pitfall for a lot of newbies.
      To prevent frustration and support questions, this patch adds some information to About->System Information.


  • Define VAT/taxes at orderline level, with default value for supplier and list of valid tax rates (bug #5335)
    • Before this patch, VAT rate was defined at vendor level. With this new feature, the system preference gist is now a list of tax rates.
      Each vendor has its own default tax rate, and on each orderline the librarian can choose the tax rate to apply, the default being the vendor default one.

  • In Acquisition, EAN search will return results (bug #5337)
    • In acquisition module, scanning an EAN results in a correct search

  • Parcel closing in acq (bug #5339)
    • A new feature has been added to enable closing of a parcel.
      Once a parcel is closed, no items can be added.
      When the librarian closes a parcel, invoice information can be entered.
      Invoice detail includes:
          – shipment date.
          – billing date.
          – shipment cost and budget used for shipment cost.

  • Shipping billing address improvements (bug #5356)
    • The library will be able to choose shipping and billing address at basket level.
      If that information is filled at basket level, then they won’t have to be filled at the basketgroup level. If shipping and billing addresses are filled at basket level, the information will be stored in the comment section of the basket. That will be useful for libraries having a single basketgroup for the supplier, but different shipping/billing address

  • Search orders by basket group name (bug #7168)
    • This patch adds the possibility to search orders by the basket group name

  • Improve order receiving page (bug #7175)
    • When system preference AcqCreateItem= ordering , this development allows the user to choose what items are received by listing all created items and providing a checkbox for each one.

  • CSV export of a basketgroup (bug #7302)
    • This patch adds CSV export for basketgroups

  • Working on funds ergonomic display and funds management by multiple librarians (bug #7304)
    • This patch adds more permissions for budgets.
      The librarian can now:
          – add users to a budget.
          – Set restrictions to:
           – None.
           – Owner.
           – Owner and users.
           – Owner, users and library.
          – Restricted users cannot spend on these budgets (nor can they modify them)

  • Undo receive (bug #7583)
    • This patch adds a feature to reverse receipt an item in acquisitions – or undo a receipt if you happen to have clicked the wrong title or a title by accident

  • Edit basket vendor after it has been created (bug #7757)
    • This patch adds the ability to change the vendor for an individual basket.

  • Add an ordernumber column in orders history table (bug #7903)
    • This patch adds ordernumber column in order’s history table
      Add an ordernumber column in the search results table of orders. It should help as far as order tracking is concerned.

  • Make table collapsing on parcel.pl sticky (bug #8028)
    • The tables on parcel.pl defaulted to show only the first five items in the table, and librarians had to click the a link to display all the items. Every time the page is reloaded the table got re-collapsed, and the librarian had to click again.
      With this patch, parcel.pl now remembers which way the table was set and keeps it that way until it is changed again.

  • DataTables in Acquisision module: acqui-home.tt (bug #8099)
    • This patch adds a DataTables filter in Acquisision module: acqui-home.tt

  • DataTables in Acquisision module: neworderbiblio.tt (bug #8100)
    • This patch adds a DataTables filter in Acquisision module: neworderbiblio.tt

  • DataTables in Acquisision module: supplier.tt (bug #8102)
    • This patch adds a DataTables filter in Acquisision module: supplier.tt

  • DataTables in Acquisision module: addorderiso2709.tt (bug #8106)
    • This patch adds a DataTables filter in Acquisision module: addorderiso2709.tt

  • Divide budget periods into two tabs (bug #8117)
    • Budget periods are now divided into two tabs : active and inactive budget periods.

  • There is no default value for the late orders (bug #8652)
    • On the lateorders.pl, we don’t want to see all the late orders.
      With this patch, the date interval is based on the estimated delivery date and the delay parameter is based on the closing date.

Architecture, internals, and plumbing

  • Reserves table needs a primary key (bug #7065)
    • The reserves (and old_reserves) tables need a primary key.
      reservernumber should be used for consistency’s sake. This will allow the possibility of multiple holds per biblio/patron combination, and a host of other improvements.

  • Caching for services (bug #7248)
    • This patch moves all caching services to the Koha namespace.
      This patch is a first step that will let us add more caching services to improve speed and scalability in the future.
      This patch works in conjunction with 8089 and 8092

  • Use T::T date plugin to display dates omnibus (bug #7444)
    • With this patch, all dates can now be displayed through a Template::Toolkit plug-in. All existing code must be updated.
      Dates can/should/must now be displayed by:
      * adding [% USE KohaDates %] at the beginning of the template.
      * use [% mydate KohaDates %] for mydate date variable.
      * remove .pl code that update date format before sending the string to the template.

      This entry is an omnibus, as many patches will be necessary.

  • Svc API should allow modification of items (bug #7729)
    • The svc new_biblio and biblio scripts and now create item as well
      The svc API also support deletion of items – maybe using HTTP DELETE method.

  • Use Koha::Cache everywhere (bug #8089)
  • Koha should use CHI caching framework (bug #8092)
    • This patch adds CHI support for caching and its already-existing cache drivers.


  • Link see also in authorities (bug #3462)
    • The see also statements in Authorities are linked to the authority they were referencing

  • EAN-13 barcode support (bug #6448)
    • We are migrating one library from custom software to Koha, and they are using EAN-13 zero-padded barcodes (primary key in legacy system) instead of ISBN or ISSN. Since books already have barcodes on them, we can’t change it.
      To make things more interesting, at least one barcode reader reports it as UPC-A without first leading zero, since EAN-13 has backwards compatibility with it.

  • Pre-filling items in cataloging (bug #7412)
    • Pre-filling of items: remember what was in the previous item filled, to be able to create multiple items quickly.
      By default, all subfields are prefilled when the PrefillItem system preference is on, unless you specify which fields you want to prefill in the SubfieldsToUseWhenPrefill system preference.
      For example, with a value of ‘f u v’, only the $f, $u and $v will be pre-filled.

  • Preference for default language for field 008 Range 35-37 (instead of hard coded “eng”) (bug #7601)
    • This patch adds the DefaultLanguageField008 system preference, that is used to populate the default 008 MARC21 field, Range 35-37

  • OCLC Connexion Gateway, including extension svc/import_bib (bug #7613)
    • This patch adds OCLC Connexion Gateway, including extension svc/import_bib to let libraries populate their catalog with OCLC (or other) external sources.
      This patch includes:
        * C4::ImportBatch: create sub GetImportBatchByFilename($filename) which will get the last import_batches record with the filename.
        * svc/import_bib:
          – POST request structure:
      param1: val.
      param2: val.
      <?xml version= 1.0 encoding= UTF-8 ?>
      <record …
          – call C4::ImportBatch::GetImportBatchByFilename( webservice ); if in ‘stage’
      status use it, otherwise create new one AddImportBatch() using POST param.
          – call C4::ImportBatch::AddBiblioToBatch() and AddItemsToImportBiblio().
          – if import mode = ‘direct’ call C4::ImportBatch::BatchCommitBibRecords().
        * misc/cronjobs/import_webservice_batch.pl:
          – input params: framework (default ‘default’).
          – call C4::ImportBatch::GetImportBatchByFilename( webservice ); if in ‘stage’
          – call C4::ImportBatch::BatchCommitBibRecords().
        * OCLC requests listening daemon connexion_import.pl.
          – base on HTTP::Server or similar.
          – command line params: config file.
          – config values as per spec.
          – first get the auth cookie from auth url, then make request to import url

  • Add item barcode on top of its editing form (bug #7652)
    • This patch displays the item barcode on top of its editing form. It’s more useful for the common user than the itemnumber which has no practical application for the user.

  • Batch edit items of a title (bug #7739)
    • A new option – Edit items in batch – is made available under the Edit menu in the catalog detail page. When this option is selected the batch item modification tool is called with all items under this record passed as parameters.
      User can then edit all items of this record in batch. Once changes are saved the ‘done’ link takes the user back to the catalog detail page of this record.

  • New plugin about Automatic Number incrementing inventory. Prefix management from a authorised values list (bug #7992)
    • The plug-in Koha about the Automatic Number incrementing inventory are not perfect.
      This patch adds a new plug-in which offers more opportunities with a prefix management from a authorized values list.

        1 / Create a list of authorized values(INVENTORY_NUMBER). In which the code is the prefix and the description the last number assigned.

        2/ A space between the prefix and number.

        3 / From a holding record, after indicate the prefix when you click on the plug-in -> Koha search the last number from authorized values assigned in the list and increment n +1 level meter (description).

  • Plugin for linking records in MARC21 (bug #8185)
    • In cataloging/value_builder there is a plug-in for linking records.
      But is only for UNIMARC (unimarc_field_4XX.pl), this patch add a plug-in for MARC21.

  • Add “create authority” button to auth_finder plugin (bug #8208)
    • Right now if you want to link a heading to a new authority record, you have to either use BiblioAddsAuthorities to automatically generate the authority, or create a new authority in the authority module, and wait for the indexer to catch up. This patch adds a create authority button that — like the fast add functionality in circulation — allows you to create an authority and immediately populate the heading.

  • Add barcode plugin that does not autofill (bug #8524)
    • The current barcode plug-in uses the autobarcode system preference to decide which type of barcode to generate, then *always* inserts a barcode.
      This patch adds a plug-in which will only insert the barcode when the plug-in link is clicked.

  • Need a delete biblios script (bug #8674)
    • The script misc/batchdeletebiblios.pl batch deletes bibliographic records which contain a biblionumber present in file passed in parameter.
      If a bibliographic record has items, it is not deleted.

  • Offer to batch delete items of a bibliographic record (bug #8801)
    • This patch adds a link in ‘Edit’ menu to go directly to batch deletion of items.


  • Add Collection Code (CCODE) to Statistics Table (bug #4118)
    • This patch adds the collection code added to the statistics table in addition to itemtype.

  • Hourly Loans (bug #5549)
    • This patch fixes some problems to hourly loans features which had been introduced in Koha 3.8

  • Add max fines to circulation matrix (bug #7420)
    • This patch adds a capped charge per item.
      It adds an Overdue Fines Cap section at the bottom of the Circulation Rules page with inputs for item type and patron category.

  • Silent print slips using Firefox PlugIn jsPrintSetup and new staff client preference (bug #7563)
    • This patch implement silent printing for slips.
      In opposition to the solution with an additional Firefox (Portable) installation (see: http://wiki.koha-community.org/wiki/Using_Portable_Firefox_as_a_Koha_Client), this solution works with the standard Firefox installation (+ PlugIn jsPrintSetup) .

      jsPrintSetup e.g. allows to set printer, print silent, change header and footer, see: http://jsprintsetup.mozdev.org/

      The overall concept is to have a new staff client system preference (intranetslipprinterjs) where one can enter the necessary JavaScript.

      If this preference is empty, Koha falls back to the default behaviour.

      Example of intranetslipprinterjs configuration:

      function printThenClose() {
      try   {
           //Try to print using jsPrintSetup Plug-In in Firefox      //If it is not installed fall back to default prnting      jsPrintSetup.clearSilentPrint();      jsPrintSetup.setOption(‘printSilent’, 1);

      //Choose printer using one or more of the following functions //jsPrintSetup.getPrintersList…

      //Set Header and footer…
           jsPrintSetup.setOption(‘headerStrLeft’, ”);
           jsPrintSetup.setOption(‘headerStrCenter’, ”);
           jsPrintSetup.setOption(‘headerStrRight’, ”);
           jsPrintSetup.setOption(‘footerStrLeft’, ”);
           jsPrintSetup.setOption(‘footerStrCenter’, ”);
           jsPrintSetup.setOption(‘footerStrRight’, ”);
           jsPrintSetup.print();      window.close();
        {      //Default printing if jsPrint-setup is not available      window.print();
      if you’ve installed jsPrintSetup PlugIn in Firefox from now on, slips will print silently with Firefox and will show default behaviour if jsPrintSetup is not installed or if you make use of an other browser.
      All other printing will behave like before.

  • Circulation: Match age restriction of title with borrower’s age without using categories (bug #7621)
    • Public libraries and school libraries often have to deal with a lot of age restrictions, [e.g. FSK (see http://www.fsk.de) or PEGI (Pan European Game Information, see http://www.pegi.info)] and/or with regional rules regarding movies (virtually every canton in Switzerland has it’s own rules).

      The classic way to implement age restrictions is to make use of a lot of categories. This gets soon very complicated, and is not easily maintainable. The librarians need an easy way to maintain age restrictions per title, otherwise they will not accept Koha.

      This patch adds a robust and easily configurable way to match age restriction against the borrower’s age.

      The concept.
        1) Have information about age restriction in a field (521$a Target audience is suggested) The entry can be anywhere in the field. It reads like PEGI 3 or FSK 12 (or any other ‘tag’ + age).
        2) Have a preference ‘AgeRestrictionMarker’ where such tags are defined. It is a text field with a list like PEGI,FSK,Age…
        3) Update your MARC cataloging frameworks to link the 521$a (or any other one) to biblioitems.agerestriction.
        4) Add a limit into a biblio record, for example PEGI 12, if you’ve defined PEGI in AgeRestrictionMarker.
      If a borrower tries to check out a restricted book and does not have the appropriate age, the circulation module will block the check out and issue a message like Age restriction 12 The AgeRestrictionOverride let you choose if your librarians can or can’t override age restriction.

  • Checkout History Sort (bug #7647)
    • With popular items the checkout history can be quite long and it is a challenge to sort through and find one library’s history of a book.
      This patch puts a table sorter on the checkout history.

  • Independent Branches sys pref change to let librarians choose which things to share (bug #7704)
    • Before this patch, when independantbranches was ON and canreservefromotherbranch was set to Allow, attempting to checkin the item at the other branch is made, system disallows checkin. Now the item is checked in and an automatic transfer to the home branch is setup.

  • Decrease loan period on items with a high number of holds (bug #7751)
    • Controlled by a system preference, this will reduce the amount of time something can be onloan, if it has a lot of holds on it:
      The loan duration is reduced by decreaseLoanHighHoldsDuration days for items with more than decreaseLoanHighHoldsValue holds

  • Instant Fine Calculation at Checkin (bug #7849)
    • Add the ability for fines to be calculated at checkin. This will be helpful for hourly based items so the cronjob for fines doesn’t have to be run on such a frequent interval.

  • Export issues (bug #7986)
    • This patch adds filters and export button (in iso2709 or csv format) on issues table.
      The export will export bibliographic and items informations, that can be put on a USB key and given to your patron.
      If the patron is a library, he can import this file into his local ILS.
      (This is a common usage in France, where large library check-out hundreds of books for a long period to small villages)

  • Add syspref allow a choice of blocking, non-blocking, or do nothing when issuing lost items. (bug #8167)
    • This patch adds a system preference IssueLostItem to define the behaviour in case of issuing a ‘lost’ item:
          – do nothing (checkout without any warning).
          – request for confirmation.
          – issue a non-blocking warning.

  • Display home & holding branches when checking in (bug #8477)
    • This patch adds home and holding branch display when checking in an item.

  • Sort biblio checkout history by checkout date instead of patron name (bug #8693)
    • issuehistory.pl is displaying a timeline of checkouts for a particular title, so it makes more sense to display the list chronologically.

Command-line Utilities

  • Bulk MARC biblio export script (bug #5600)
    • This patch adds a command line interface for tools/export.pl export.pl [–format=format] [–date=date] [–dont_export_items]
        [–deleted_barcodes] [–clean] –filename=outputfile     * format is either ‘xml’ or ‘marc’ (default)
          * date should be entered as the ‘dateformat’ system preference is set      (dd/mm/yyyy for metric, yyyy-mm-dd for iso, mm/dd/yyyy for us)
          * records exported are the ones that have been modified since ‘date’
          * if –deleted_barcodes is used, a list of barcodes of items deleted      since ‘date’ is produced (or from all deleted items if no date is      specified)
          * –clean removes NSE/NSB

  • Document /svc/ HTTP API and provide example command-line client (bug #7213)
    • This patch adds a script that can be used from commandline to play with the svc/ API for integrating biblio records into Koha.
      This script can be used from other scripts as C<Koha::SVC> module or run directly using syntax:
        koha-svc.pl http://koha-dev:8080/cgi-bin/koha/svc svc-user svc-password   $biblionumber [bib-42.xml]

  • Allow to specify a date in overdue_notice.pl (bug #7447)
  • New script for changing selinux file labels on perl scripts (bug #7675)
    • On some Linux distributions like RedHat, Fedora, CentOS you can use SELinux for enhanced security. Among others, this involves file labeling (security context).
      In other distributions SELinux can be installed additionally.

      The script added by this patch xt/set-selinux-labels lets you update and restore such labels on the perl script in a Koha installation.
      Note that there is more to it to get Koha running with SELinux, but this is a first step.

  • Parallel HTTP requests when checking URLs (bug #7963)
    • Current script check-url.pl checks URL found in 856$u by sending HTTP requests, one by one. This patch adds a new script which send multiple requests simultaneously. The checking is something like 20 times faster.

      This script is based on AnyEvent and AnyEvent::HTTP CPAN modules, that are required dependencies if you want to use it.

  • Hold print notices do not sort by branch (bug #8063)
    • The gather_print_notices.pl cronjob for printing hold notices mails all notices as one file and does not separate out the notices by branch. For libraries with multiple branches this results in large files being received by individual branches that need to be read/sorted/printed or ignored.
      This patch adds a –split (or -s) parameter to gather_print_notices.pl that let the library create a separate file for each (borrower) branch

  • Command line utility for exporting borrowers (bug #8376)


  • Redefine the field branchcode as PRIMARY KEY of branches (bug #7792)
    • The table branches had a UNIQUE KEY `branchcode`, that is moved to PRIMARY KEY (There’s no noticeable consequence to this change)

  • Redefine the field id as PRIMARY KEY of sessions (bug #7794)
    • Table sessions had a UNIQUE KEY `id`, that is moved to PRIMARY KEY.
      (There’s no noticeable consequence to this change)

  • Koha should offer way to backup entire db (bug #8268)
    • Right now, if libraries with hosted installations want copies of the database for backup purposes, they have to request that their vendors provide them with a copy. With this feature, it is possible for vendors to easily enable their customers to easily download backups of their database via the Export tool.

  • Longer size text for authorized values description (bug #8757)
    • This patch improve the size of authorized values descriptions.
      Authorised Values have many uses, and, among others things, store in SUGGEST the potential reasons (then stored in the suggestions table) for which a suggestion can be refused.
      To give better informations to borrowers, some librairies would like to see longer lib_opac fields (the lib field should follow the movement, of course), this patch make this field 255 chars long.

Developer documentation

Hold requests

  • Transport Cost Matrix of transporting an item between branches (bug #5911)
    • This patch adds a new administrative page that serves to manage the relative costs of transporting an item between branches. “Cost” does not directly correspond to currency, but rather is a measurement of the difficulty of transporting the item between the two branches.

      For each branch, it is possible to specify a numeric value indicating the ‘cost’ of transporting the item from that branch to every other branch. A toggle is also available to block all transport from any branch to any other branch. The toggle does not change the ‘cost’ value associated with the transport between any two branches.

      A system preference has been added to control whether holds are filled using the Transport Cost Matrix, or not.

      If the system is configured to use the Transport Cost Matrix for filling holds, then when attempting to fill a hold, the system will search for the lowest cost branch, and attempt to fill the hold with an item from that branch first.
      Branches of equal cost will be selected from randomly. The branch or branches of the next highest cost will be selected from only if all the branches in the previous group are unable to fill the hold.

      The system use the item’s current holding branch when determining whether the item can fulfill a hold using the Transport Cost Matrix. This behaviour can be overruled if the AutomaticItemReturn system preference is enabled.

  • Items on hold lose transfer after being scanned twice (bug #8004)
    • When a hold is placed on an item where the pickup location is different than the holding library, Koha initiates a branch transfer for that item to fill that hold when items is run through the returns system.

      If the item is then run through returns a second time, the system is supposed to close that transfer as a ‘wrongtransfer’, and open a new transfer with the same from and to branches as the original.

      The problem is that the original transfer is closed, but the new transfer is not created. This is because at some point, someone replaced the template variable WrongTransfer, which had previously contained the branchcode for the library to transfer to, with the full name of the library instead ( I assume to make a look nicer ).

      The consequence of this, is the the name of the library is passed to updateWrongTransfer instead of the branchcode, causing the failure.

  • Improve wording and styling for “cancelled holds” on Holds Awaiting Pickup screen (bug #8449)
    • This patch changes the div classes, so that the prompts for action stand out and actually grab the attention of the user.

      It also adds more precise, descriptive language for the prompt messages and fixes the grammar (e.g. comma splices). The most important part being the second instruction where staff are prompted to check-in the item to continue processing the hold for the next patron in the holds queue.

  • Holds to Pull : Show pull list on load. Otherwise, it looks like the pull list is empty. (bug #8454)
    • Currently, when you click Holds to pull from the Circulation menu, the only thing that you see is a white screen and a side navigation bar that says Refine Results .

      Since there appears to be no results to refine, the holds to pull list appears completely empty. Staff have to know to click Submit on the Refine Results form to get anything.

      This patch set the run_report flag to ON for the initial load. The report uses the default 2 days mentioned in the Refine Results form, so there is continuity across the board.

  • Add System Preference to specify Holds to Pull List Start Date (bug #8585)
    • When you are on the Holds to Pull page in the Circulation module, the default Start Date in the Refine Results section is 2 days in the past.

      This patch introduce a system preference that changes the number of days to however many the librarian chooses. If the system preference isn’t set, the default of 2 days will continue to be used.


  • Preserve language choice between Browser sessions (bug #8019)
    • If I select a language in Staff client or Opac, I expect it to be persistent between browser sessions.

      This is not the case. Koha forgets the selection as soon as all Broser instances are closed, and starts up the next session with the Browser’s preferred language.
      With this patch, the language choice is stored for up to 3 years from the last login.

Installation and upgrade (command-line installer)

  • Make koha_perl_deps.pl batch friendly (bug #8485)
    • This patch adds a switch to the koha_perl_deps.pl script so it is more batch friendly. The new parameter -B (for batch) make it output just the library name, preserving the other switches semantics.

      It is useful to do things like:

      for k in $(for i in $(./koha_perl_deps.pl -m -B perl -pi -e ‘s/::/-/g’ tr ‘[A-Z]’ ‘[a-z]’)
        do     echo lib$i-perl   done)
      do apt-cache search $k done

Label printing

  • Get_batch_summary reimplements GROUP BY in perl code (bug #7846)
    • This patch does not add any feature, but improves by a factor 100 the speed of Manage Batch for label printing screen


  • Tiny problems with calling GetShelf (bug #7788)
    • This patch just cleans and removes some dead code:
      The first patch deals with two unused calls to GetShelf in opac/opac-downloadshelf.pl and virtualshelves/downloadshelf.pl.

  • Exposing the new list permissions in opac and staff (bug #7805)
    • The next step after 7310: Exposing the new permissions to add and delete lists.

      Important note: The owner can always add, but needs perms to remove.

MARC Authority data support

  • Ability to import Authorities from Staff Client (bug #2060)
    • This patch adds a feature to import authority record files.
      The biblio records staging and importing into the catalog has been extended to handle authorities.
      The matching rules have also be extended to handle authorities.

  • Authorities : allow users to search on all auth types (bug #5910)
    • This patch adds a ‘search all authorities types’ feature for UNIMARC libraries.

  • Option to overlay authorities (bug #7475)
    • Right now it is impossible to overlay existing records when importing new authority records. This patch adds a script that handles the following overlay options:
          * Overlay (or discard) based on matching preferred headings (1xx in MARC21, 2xx in UNIMARC).
          * Overlay (or discard) based on matching LCCNs (010 in MARC21).
          * Overlay (or discard) based on matching control numbers (001 for both MARC21 and UNIMARC).
          * Overlay (or discard) based on matching an earlier form of the heading (4xx$w/2=[aeo] in MARC21, 4xx$5=a in UNIMARC).
          * Select which record to keep based on the date last modified (003 in MARC21).

      This script enable libraries to keep their authority records up to date with the latest national authority files, without polluting the local authority file with numerous copies of authority records (every time they are updated).

  • Should be possible to save individual authorities (bug #8203)
    • Right now there is no convenient way to save an individual authority record.
      This patch adds a Save button to the authority view in the staff client which allows records to be saved as MARC, MARCXML, and (at least for MARC21) MADS.

  • Modify authority type frameworks to allow see also fields to link to thesauri (bug #8207)
    • Right now if you were to link a field in an authority to a thesaurus, it will not work properly. The authority type frameworks require some adjustments to allow see also headings to be linked to thesauri (such as adding subfield $9).

  • Add relationships to auth_finder for authority links (bug #8332)
    • In addition to the work in bug 8207 that enables auth_finder use, it would be very useful when creating authorities to have the auth_finder plug-in automatically fill out the relationship information in $w (in MARC21).

  • Fixing pipe values in MARC21 controlfield 008 of authorities (bug #8627)
    • In MARC21, within field 008 pipe values (i.e. character ) were not passed correctly in the plug-in script value_builder/marc21_field_008_authorities.pl to the template, resulting in replacement of these character positions.

MARC Bibliographic data support

  • Add 773$t field to xslt (bug #8138)
    • This patch adds MARC21 773$t field if exists to result list of both OPAC and staff client.
      This require to have XSLT display activated


  • Duplicate overdue email notices caused by message settings not being controled by CircControl in System Prerfrences (bug #3461)
    • trivial

  • Koha support for Itiva Talking Tech phone notification service (bug #4246)
    • Implements support for Talking Tech I-tiva phone notification for OVERDUE, PREDUE and HOLD notifications.
      Overdues respect triggers as configured for the patron’s branch.
      Predue and Holds notifications respect patron’s messaging preference choices.
      A new column for phone notification is added if the TalkingTechItivaPhoneNotification system preference is turned on.

      Record of phone messages being sent to patrons is added to the patron’s Notices tab; notice of success or failure can be retrieved from I-tiva.

      See the TalkingTech.README for installation and set-up instructions.


  • Add another customizable region to the OPAC: right sidebar (bug #3708)
    • This patch creates a new system preference, OpacNavRight, in which the librarian can add HTML which will appear on the OPAC main page under the login form. If the user is logged in the content will appear in place of the login form.

  • Add item type to facet list (bug #4255)
    • Itemtype is added to the facet list

  • Amazon’s AssociateID tag not used in links so referred revenue lost (bug #4460)
    • Though Koha enables usage of Amazon’s AssociateID tag in the enhanced content configuration, no code currently uses it when generating links to Amazon. Thus if a person searching the catalog clicks on a link taking them to Amazon for a purchase, Amazon doesn’t have the tag and cannot associate the account accordingly. Thus, any possible revenue is lost.

  • Opacmysummaryhtml on reading history (bug #6494)
    • The opacmysummaryhtml sytem preference is also shown on the reading history since it’s pretty much a longer version of the my summary anyway.

  • Optionally display barcode on OPAC detail page (bug #6774)
    • This patch optionally displays barcode on OPAC detail normal view including in XSLT view

  • Show Open Library as Search Target in “More Searches” in OPAC detail page (bug #7153)
    • This patch show Open Library as Search Target in More Searches in OPAC detail page.

  • Open Library – Larger image, Read, borrow and checked-out status (bug #7161)
    • This patch modifies Open Library JavaScript to:
        1. Use jscmd=data instead of default, this provides ebooks availability   information. This will allow us to display read/borrow/checkedout icons.
        2. Show larger image in opac-detail page.
        3. Show read/borrow/checked-out status in opac-detail page below the image

  • Show number of holds on a title in the OPAC details (bug #7398)
    • Like on the staff client, it is now possible to show the number of holds currently on a title. This will allow patrons to know how long a wait is going to be without having to log into the OPAC.
      This patch adds a new system preference, OPACShowHoldsCount, that will control whether the total number of holds shown on the OPAC detail page or not.

  • Babeltheque improvement and social networks links (like, +1,…) (bug #7470)
    • This patch make a new implementation of babeltheque in Koha, more complete and better integrated (for the moment in community version, babeltheque is not configurable and hardcoded in opac-bottom.inc).
      There are 3 features in this one:
        – adds social network information in search results.
        – adds babeltheque data in opac-detail.
        – adds social network links in opac-detail too (google+, twitter, mail …)
      French article with screenshots:

  • Add item availability status to cart (bug #7570)
    • For items in the cart (opac-basket.pl), only location and call no. are displayed, This patch adds the display of item availability status as well.

  • Update OPAC suggestions interface to match lists (bug #7959)
    • The OPAC’s suggestions list is similar to that of lists in that there is an action you can take directly (new suggestion) and an action you can take if items are selected (delete suggestion). The toolbar now match the one on lists in that the delete option should only be available if an item is selected.

  • Add a “Quote-of-the-day” feature to the OPAC homepage (bug #7977)
    • This patch adds the option of displaying a select quote for the day on the OPAC homepage. It include the addition of a QOD editor in the tools section of the staff interface which allow the addition, editing, and deletion of quotes.
      A single system preference enable/disable the display of the QOD on the OPAC homepage. A new granular permission has also been added to control user access to the QOD editor tool.

  • Group search results tag input with other actions (bug #7980)
    • If TagsInputOnList in enabled there was a ‘new tag’ form field displayed with each search result. This page changes this so that it behaves much like the tag link at the top of the search results where clicking the link displays the form field.

      The per-line add tag functionality is grouped with other actions (like place hold, add to cart, etc). Clicking the link display the form and automatically move the focus to the entry field.

  • Display in a holding summary tab information about serial record (bug #7991)
    • This patch displays in a holding summary tab informations about serial record.
      It is UNIMARC specific, and probably French-specific.

      It add the following fields: branch (955$9), holding summary (955$r) and call (930$a).

      which is information imported from SUDOC (French universities common catalog)

      example :
      http://catalogue.univ-aix-marseille.fr/cgi-bin/koha/opac-detail .pl?biblionumber=725747

  • Add some styling to the tags to allow them to be distinctive (bug #8001)
    • This patch allows the title and the tag terms in the user’s tag list to be styled differently in order to make things prettier.

  • Should be possible to hide unused authorities in OPAC (bug #8205)
    • For libraries which load complete authority files into their Koha installations, authority records which are not in use can overwhelm those that are in the Browse subjects and authors in the OPAC. This patch adds an OPACShowUnusedAuthorities system preference that can be set to ‘off’ so that the display can be limited to only those authorities referenced in the bibliographic database.

  • Add additional search options to authority browser in OPAC (bug #8206)
    • The OPAC authority browser used to have several boxes for the different types of authority searches that are possible. This was confusing to users, and rather ugly. However, the additional options were useful for libraries with massive authority files. This patch adds a dropdown to the authority search page on the OPAC which can be easily hidden using CSS, but offers the option to choose whether to look in main entries, headings, or anywhere.

  • Headings in OPAC bib details should link to authority record (bug #8210)
    • There should be a link to used authority records from the bibliographic details display. This is already done in 5888 for the normal display.

  • Make OPAC stylesheet preferences more consistent (bug #8263)
    • This patch merge opaclayoutstylesheet and opacstylesheet that could just be one pref (just as opaccolorstylesheet already advertises).

  • Show local cover images on lists view in OPAC (bug #8496)
    • This patch adds local cover images to lists in the OPAC.

  • Highlight matches on details page (bug #8525)
    • After doing a search and going to the details page, it can sometimes be difficult to see exactly *why* a record was returned by a search. It would be very useful to highlight the matches on the details page in the same way we highlight them on the results page.

  • New theme for the OPAC with a mobile view (bug #8597)
    • This patch adds a new theme for the OPAC which includes a mobile version.
      This patch adds the following system preferences:
          * OpacMainUserBlockMobile- alternate content for MainUserBlock for mobile.
          * OPACMobileUserCSS- custom CSS for mobile views only.
          * OpacShowFiltersPulldownMobile- whether or not to show the index      dropdown on the mobile view.
          * OpacShowLibrariesPulldownMobile- whether or not to show the library      dropdown on the mobile view.

      In order to activate the theme, change the opacthemes system preference to ‘ccsr’ and make sure that your opaccolorstylesheet is set to ‘colors.css.’

  • Add labels for library and sorting on OPAC advanced search (bug #8759)
    • We’ve had reports of patrons being confused by the lack of labels directly attached to the library and sorting pulldowns on the OPAC advanced search.
      With this patch, these pulldowns have explicit labels.


  • Koha-remove should check the number of arguments it gets (bug #6684)
    • Currently, koha-remove does not check that at least one instancename was provided as an argument, so running it with arguments causes an Apache reload, which might come as a surprise.
      If no instancename is given as argument it print it’s usage.


  • Display patron attributes in the same format as other patron data (bug #3374)
    • Patrons’ ‘Additional attributes and identifiers’ are displayed in the same format as other standard patron data: in a list of label/data pairs.

  • Batch edit patrons (bug #5742)
    • This patch adds a batch patron edit tool that includes the patron attributes in it.
      An example use of this would be for school libraries that keep track of home rooms as an attribute – that changes each year and it would be great to be able to batch edit that.

  • Add a real primary key “accountlinesid” in accountlines (bug #7671)
    • All selects in accountlines are ‘WHERE borrowernumber = ? AND accountno=?’ Best practice is to have an id. This patch adds id as identifier and modifies calls to accountlines to use it

  • Enhancement: Show routing lists attached to patron in Patron record (bug #7839)
    • This patch adds a tab called Routing Lists to the Patron record between Fines and Circulation History.
      It lists all the subscription titles that the patron has routed to them. Each title has a link to the subscription record and a link to the edit window of the routing list.

  • Statistics tab in patron module (bug #7955)
    • This patch adds a tab (in the patron module) with statistics (number of issues by item type,…)

  • Login and password no longer pre-filled by the browser when creating a new patron (bug #8080)
    • When creating a new patron, if you have chosen to let your browser remember your login and password for you, the login and password fields will be pre-filled with them, leading to a system error ‘the passwords entered do not match’ since the second password field was not filled.
      With this patch, these fields are always blank.

  • Attach PDF files to a patron record (bug #8130)
    • This patch adds a feature that allows librarians to attach unlimited arbitrary files to a patron record.
      It can be used to store a PDF document with a patron record.

  • Increase the borrower attribute field size from 64 characters to 255 (bug #8431)
    • Some libraries like to store more verbose data in a borrower attribute field. The character limit has been upped from 64 to 255.


  • Report webservices (bug #7249)
    • This patch adds report webservice, with caching support, and public visibility setting.
      Each report can now be declared public and accessible (WARNING: without authentication) from OPAC.
      To improve performance, it’s also possible to cache for up to 30 days

  • Saved report with hierarchies (bug #7993)
    • This patch introduces grouping and subgrouping for SQL reports.
        – can create groups (no pre-defined grouping)
        – can move report from one hierarchy to another (modify)
        – have 2 levels of hierarchy (group and sub groups)

      This patch adds 2 authorized value lists: REPORT_GROUP and REPORT_SUBGROUP.
      When you register or modify a report, you first choose a group (code) and then a subgroup (lib_opac which represent the link between both).

          Code lib lib_opac.
          CIRC Circulation PRT.
          CIRC Circulation RET.
          CAT Cataloging BIB.
          CAT Cataloging EX.
          CAT Cataloging AUT.

          Code lib lib_OPAC.
          PRT Check-outs CIRC.
          RET Check-ins CIRC.
          BIB Biblios BIB CAT.
          EX Biblio EX CAT.
          AUT Biblio AUT CAT.

      From Summary and Statistics when saving the report, a proposal from the list of tabs (hierarchy) to classify the report as a topic of their choice.

      Other changes introduced by this patch:
        * From …/cgi-bin/koha/reports/guided_reports.pl?phase= First show the     top of hierarchies as tabs and then clicking on the opening of     the hierarchy. Reports are provided in a table with headers that are     sortable.
        * After you save the report there is now a link from this page ‘Start the     new report’.
        * Columns are also sortable.

  • Reports webservice should allow selection by name (bug #8256)
    • At the moment, reports cannot be selected from the reports webservice by name, only by report ID. This patch adds the feature to select a report by name.


  • Checking if DB records are properly indexed (bug #6566)
    • This patch adds a small script that checks that each record in the DB is properly indexed.

      \t-h this help screen \t-c confirm (without this parameter, you get the help screen \t-z insert a signal in zebraqueue to force indexing of non indexed biblios \t-s silent throw no warnings except for non indexed records. Otherwise throw a warn every 1000 biblios to show progress
      \t./batchCheckNonIndexedBiblios.pl -h \t./batchCheckNonIndexedBiblios.pl -c

  • Introduce rebuild_zebra_sliced.zsh to recursively rebuild zebra & be error proof (bug #7286)
  • Show shelving location facet instead of branch facet when only 1 branch configured (bug #7401)
    • If there is only one branch configured in Koha, it doesn’t make any sense to put a limiter on branchcode in search results. Having a limiter on shelving locations within that branch, though, would be very handy.

  • Include alternate forms from authorities in bibliographic searches (bug #7417)
    • This patch enables the search on authorities see-from in biblio searches. Although authority records include references from unused terms, at present Koha does not take advantage of them when searching bibliographic records. It would be very useful if Koha could (optionally) include all the see-from terms in bibliographic records for indexing purposes. In order to do this, it will be necessary to inject see-from headings into bib records immediately before exporting them for indexing by Zebra (or solr, or any other indexing engine that Koha may use).
      The price for this feature, if you use it, is a much slower catalog indexing speed. (by a factor 2 or 3)

  • Add “subject (broader),” “subject (narrower),” and “subject (related)” options for search (bug #8211)
    • With the addition of DOM indexing, it is now possible to do exploded searches which search for records with broader, narrower, and other related headings by searching authorities for the specified term, then using authorities that match the specified criteria to do a more inclusive search for bib records.

  • Restrict OpacSuppression to IP addresses outside of an IP range (bug #8492)
    • This enhancement extends the OpacSuppression feature with an optional IP address range within which results are _not_ suppressed.

  • Did you mean? plugin for broader/narrower/related terms (bug #8726)
    • Building on the work in bug 8211, this patch add a Did you mean? plug-in which will suggest that users review broader, narrower, and related terms when they do subject searches, thus making the functionality usable to the general public.


  • Subscription search and displays (bug #5357)
    • This patch improve many ergonomic aspects of the serials module:
        * The search page is improved and some fields are added to search on (issn, subscription number, library, internal note, callnumber).
        * The subscription list result is modified. The pipe will be removed in case of a repeated title & issn (the title & issn are repeated).
        * The internal note was not displayed on staff interface. It is now displayed in serial issues and in various places where it can be useful.
        * An option has been added to limit subscription search by branch.

  • Improvement of serials search results list (bug #8432)
    • This patch adds fields in the search result list : branch, callnumber (in separate columns), history, expirydate, number of routing lists attached.


  • Enable critic tests on SIP modules (bug #8216)
    • SIP modules continued to issue a number of perlcritic warnings. This patch adds C4/SIP to the testcritic directories and addresses those issues which are warnings (mainly return undef and subroutine prototypes)
      It also removes some dead code that was no longer used.

  • Teach SIPServer to set its own lib path (bug #8271)
    • Teach SIPServer.pm to set its own lib path. SIPServer.pm requires that C4/SIP is added to its lib path This has been done by passing this directory to it via -I. By using FindBin it can set the path for itself correctly. This will also work if the C4/SIP directory tree is moved to a non-standard location This patch also remove the now redundant -I. from sip_run.sh.

Staff Client

  • A different favicon for the staff client (bug #7949)
    • At the moment the favicon used in the staff client is the same as the one for the OPAC. A different one would make it more legible when having both opened in various tabs.

System Administration

  • Granular parameters permissions (bug #8083)
    • This patch introduce ‘manage_circ_rules’ and ‘parameters_remaining_permissions’ parameters subpermissions.

      Add GranularParametersPermissions boolean system preference, No default. If set to yes use aforementioned subpermissions in admin/* functions, otherwise just use parameters flag

  • Add color icon set (bug #8412)
    • This patch adds coloring images to ccodes.
      The goalis to make it so that libraries can use one of the authorized values (shelving location or collection code) to store the color of the material and then make that searchable on the advanced search page.
      To do this for collection codes you’d need to add the following jqueries:
      intranetuserjs   $(document).ready(function(){
          $( #advsearch-tab-ccode a:contains(‘Collection’) ).text( Color );
          $( #holdings th:contains(‘Collection’) ).text( Color );
      opacuserjs   $(document).ready(function(){
          $( #advsearch-tab-ccode a:contains(‘Collection’) ).text( Color );
          $(‘#item_ccode’).text( Color );
      And update the frameworks to change the 952$8 label to say Color.
      This patch just has images, no code.


  • Put ‘other name’ on checkout screen (bug #2930)
    • Put ‘other name’ on checkout screen
      This patch adds ‘other name’ to the include which is used to display patron names and adds this include in several places where it can be used in place of direct output.

      The patron-title include has been modified to handle the two possible variable scopes throughout patron-related templates. This is a hack similar to having both circ-menu.tt and circ-menu.inc, but keeping both in the same file.

      Changes to some scripts were necessary to make the othernames variable available to the include.

      This patch also corrects some title tags and fixes some incorrect capitalization (see Bug 2780).

  • Upgrade jQuery to the latest version (bug #5184)
    • This patch updates JQuery library to version 1.7.2

  • DataTables in Koha (bug #5345)
    • Table sorter & filters have been added everywhere in Koha We avoid adding sorters & filters where perf is a caveat (like circulation)

  • Improve styling of table pager (bug #6689)
    • This patch change the style of the pager which has been added to some tables sorted by the jQuery tablesorter.

  • Replace YUI autocomplete with jQueryUI (bug #7747)
    • This patch introduce jQueryUI in Koha, widget autocomplete.

  • Multi-line notes are displayed on one line in Staff Serials page (bug #7905)
    • In Serials, on the summary of a subscription, four different notes (nonpublic note, public note, and 2 notes for history) are displayed in one line for each. But when we edit the subscription, it’s possible (and tempting) to type the content on several lines.

      This patch try to display these notes on several lines in an elegant way (not so easy because the layout seems to be optimized for one-line informations).

  • Acq search results show empty parenthesis for orders without basket group (bug #7926)
    • Search results in acquisitions show a column for basket group with name of basket group (basket group number) that will only be () when there is no basket group for an order line.

  • Disabled buttons not distinguishable from enabled buttons. (bug #8107)
    • Disabled buttons in Koha appear no different than enabled buttons. This patch adds some CSS in Koha to make disabled buttons distinguishable from enabled ones.

  • Upgrade jQuery tabs to current jQueryUI version (bug #8143)
    • We use a very old version of jQuery tabs in many places. Each instance should be updated to work with the latest jQueryUI.

  • Replace DynArch calendar widget with jQueryUI version (bug #8181)
  • Replace usage of YUI Cookie utility with jQuery Cookie plugin (bug #8283)
    • This patch continues the work to eliminate usage of YUI by using jQuery Cookie plug-in instead of YUI Cookie..

  • Headings on statistics tab are confusing (bug #8319)
    • On the statistics tab on the patron record the table headings are confusing to the average library staff member. This patch change the language to something a bit clearer.

  • Add IntranetBiblioDefaultView and BiblioDefaultView to XSLT.pm (bug #8405)
    • When displaying the result lists with XSLT, the link to the detailed bibliographic record was hard-coded to the default view (detail.pl or opac-
      detail.pl) and there was no way to accommodate for the system preference value since it was not taken into account in XSLT.pm.
      This patch make the default view available in the XSLT.

  • Re-order items on administration page to better match configuration priority (bug #8655)
    • This patch reorders the administration home page for a better usability:
      The administration home page says ‘Configure these parameters in the order they appear’, but cities and road types appear before circulation and fine rules.
      Circ rules have a higher priority.

  • Normal catalog detail view in staff client doesn’t show missing serials or subscription history note (bug #8718)
    • Normal catalog detail view in staff client doesn’t show missing serials or subscription history note.
      This patch adds librariannote (staff subscription history note) and missing list to the normal catalog detail view in staff client.

  • Availability facet needs an id (bug #8989)
    • Facets in search results (both in the staff interface and in the OPAC)
      have ids for CSS styling, except for the availability facet.

      This patch adds one, especially since this feature seems to have been broken for a while and this would allow us to hide it.

Test Suite

  • Omnibus for unit tests required for all C4 modules (bug #5327)
    • The patches attached to this entry are related to unit tests developers run when a patch is added to Koha.

  • Add test to compare system preferences in db to syspref.sql (bug #8353)
    • This patch adds a script, xt/check_sysprefs.t that check all the system preferences in your system, and warn you if any system preferences are missing

  • C4::Search needs a unit test (bug #8649)
    • This patch adds unit tests for searching

  • T/db_dependent/Reserve.t test doesn’t use resdate and expdate arguments for AddReserve (bug #8728)
    • The AddReserve routine had resdate and expdate added in between arguments (not appended) in 2009/2010ish so we need to adjust the t/db_dependent/Reserve.t accordingly.

  • T/ItemType.t fails because DBD::Mock has no empty result set (bug #8768)
    • ItemType.t fails because the second test attempts to retrieve a non existent result set causing an error in DBI The intention of the test is that all returns 0 on an empty table so DBD::Mock should be populated with an empty result set otherwise the test suite fails


  • Ability to edit a range of holidays (bug #7351)
    • The new feature that allows you to enter a range of holidays did not let you edit the range. So if you have a long range of dates and you messed up you’d have to edit them one by one. This patch adds a way to edit/delete a range of dates.

  • Improve clarity of batch modification operations (bug #7784)
    • In the batch item modification interfaces:

      Checking the box right next the subfield label will disable the entry and delete the values of that subfield on all selected items
      It’s more accurate to say disable the entry and delete the contents of the subfield. Some enhancements:

      – indicate this by emptying/resetting the field and adding a disabled attribute.
      – append a note which says The contents of this field will be deleted.

      It would also be helpful to add a note saying that leaving fields empty will make no changes to any records.

  • Add authorities to export tool (bug #8202)
    • This patch adds the feature to export authorities in the export tool

  • CAS Debugging improvements (bug #8279)
    • Adds more precise debug informations for easier CAS troubleshootings resolution.
      Before this patch, whenever ticket validation failed, the debug message was ‘Invalid ticket’.
      But ticket validation may fail for other reasons: CAS server not reachable, casServerUrl system preference is wrong…
      This patch adds the reason for ticket validation failing.

Z39.50 / SRU / OpenSearch Servers

  • Z39.50 server returns usmarc format records for UNIMARC DB (bug #3087)
    • When marcflavour is UNIMARC, Koha Z39.50 used to return biblio records in UNIMARC format. But it also returned that biblio record format is ‘usmarc’. There is an incompatibility. Z39.50 clients who interpret this value won’t display correctly biblio records.
      WARNING = All UNIMARC libraries must upgrade their zebra configuration and restart zebra, or searches will always return 0 results !!!
      Upgrading zebra is automatically done with ‘make upgrade’. Libraries using git must go to the bugzilla entry to see what must be changed.

  • Add pagination to the Z39.50 results page (bug #8570)
    • When doing Z39.50 searches, a maximum of 20 results are show even if there are a lot more matching results returned by the server.
      This patch adds some pagination code to the Z39.50 results pages so all results returned by the Z39.50 server can be accessed.

Bugs fixed in Koha 3.10.0

For the complete list of bugs fixed in Koha 3.10.0, please refer to the text release notes.

New system preferences in Koha 3.10.0

  • autoBarcode
  • BorrowerMandatoryField
  • MaxFine
  • OpacNavRight
  • QuoteOfTheDay
  • defaultSortField
  • defaultSortOrder
  • OPACdefaultSortField
  • OPACdefaultSortOrder
  • itemBarcodeInputFilter
  • OPACItemsResultsDisplay
  • AllowReturnToBranch
  • OPACShowHoldQueueDetails
  • OPACSearchForTitleIn
  • OPACMySummaryHTML
  • UseTransportCostMatrix
  • SvcMaxReportRows
  • decreaseLoanHighHolds
  • decreaseLoanHighHoldsValue
  • decreaseLoanHighHoldsDuration
  • ReservesControlBranch
  • IssueLostItem
  • SuspendHoldsIntranet
  • SuspendHoldsOpac
  • DefaultLanguageField008
  • OPACShowBarcode
  • OPACShowUnusedAuthorities
  • EnableBorrowerFiles
  • UpdateTotalIssuesOnCirc
  • IntranetSlipPrinterJS
  • OpacSuppressionByIPRange
  • PrefillItem
  • SubfieldsToUseWhenPrefill
  • AgeRestrictionMarker
  • AgeRestrictionOverride
  • IncludeSeeFromInSearches
  • OPACMobileUserCSS
  • OpacMainUserBlockMobile
  • OpacShowLibrariesPulldownMobile
  • OpacShowFiltersPulldownMobile
  • AuthDisplayHierarchy
  • OPACdidyoumean
  • INTRAdidyoumean
  • BlockReturnOfWithdrawnItems
  • HoldsToPullStartDate

System requirements

Important notes:

  • Perl 5.10 is required
  • Zebra is required


The Koha manual is maintained in DocBook. The home page for Koha documentation is http://koha-community.org/documentation

As of the date of these release notes, only the English version of the Koha manual is available at http://manual.koha-community.org/3.10.0/en/

The Git repository for the Koha manual can be found at http://git.koha-community.org/gitweb/?p=kohadocs.git;a=summary


Complete or near-complete translations of the OPAC and staff interface are available in this release for the following languages:

  • English (USA)
  • Arabic (90%)
  • Armenian (90%)
  • Chinese (Taiwan) (69%)
  • Danish (70%)
  • English (New Zealand) (91%)
  • French (100%)
  • French (Canada) (69%)
  • German (100%)
  • German (Switzerland) (100%)
  • Italian (100%)
  • Norwegian Bokmål (66%)
  • Portuguese (Brazil) (100%)
  • Slovak (100%)
  • Spanish (93%)

Partial translations are available for various other languages.

The Koha team welcomes additional translations; please see http://wiki.koha-community.org/wiki/Translating_Koha

For information about translating Koha, and join the koha-translate list to volunteer

The most up-to-date translations can be found at http://translate.koha-community.org

Release Team

The release team for Koha 3.10.0 is

  • Release Manager: Paul Poulain
  • Documentation Manager: Nicole C Engard
  • Translation Manager: Frédéric Demians
  • Translation Team:
    • Katrin Fischer ,
    • Marijana Glavica
  • QA Manager: Ian Walls
  • QA Team:
    • Marcel de Rooy ,
    • Jonathan Druart ,
    • Mason James
  • Bug Wranglers:
    • Magnus Enger ,
    • Katrin Fischer ,
    • Dobrica Pavlinušić
  • Packaging Manager: Robin Sheat
  • Packaging Assistant: Mason James
  • Release Maintainer (3.4.x): Chris Nighswonger
  • Release Maintainer (3.6.x): Jared Camins-Esakov
  • Release Maintainer (3.8.x): Chris Cormack


We thank the following libraries who are known to have sponsored new features in Koha 3.10.0:

  • BdP de la Meuse
  • Brooklyn Law School Library
  • Central Kansas Library System (CKLS), Plum Creek Library System and Washoe County Library System
  • Centre collégial des services regroupés (CCSR)
  • Corpus Christi Public Libraries
  • Los Gatos Public Library and Harrison Carmel Public Library
  • North Central Regional Library (NCRL)
  • Northeast Kansas Library System (NEKLS)
  • Talking Tech
  • Universidad Nacional de Córdoba
  • Université d’Aix-Marseille
  • Université de Lyon 3
  • Université de Rennes 2
  • Université de St Etienne
  • Washoe County Library System

We thank the following individuals who contributed patches to Koha 3.10.0.

  • 1 Joseph Alway
  • 2 Nuño López Ansótegui
  • 13 Tomas Cohen Arazi
  • 4 Alex Arnaud
  • 1 Marc Balmer
  • 5 D Ruth Bavousett
  • 2 Gaetan Boisson
  • 1 Ivan Brown
  • 162 Jared Camins-Esakov
  • 31 Colin Campbell
  • 7 Frédérick Capovilla
  • 14 Galen Charlton
  • 14 David Cook
  • 32 Chris Cormack
  • 3 Christophe Croullebois
  • 2 Elliott Davis
  • 5 Stéphane Delaune
  • 13 Frédéric Demians
  • 77 Jonathan Druart
  • 70 Nicole Engard
  • 11 Magnus Enger
  • 26 Katrin Fischer
  • 6 Amit Gupta
  • 5 Chris Hall
  • 72 Kyle M Hall
  • 2 Claire Hernandez
  • 40 Mason James
  • 9 Srdjan Jankovic
  • 7 Bart Jorgensen
  • 1 Jorgia Kelsey
  • 1 Piotr Kowalski
  • 1 Henri-Damien Laurent
  • 102 Owen Leonard
  • 1 Frère Sébastien Marie
  • 29 Julian Maurice
  • 1 Melia Meggs
  • 6 Matthias Meusburger
  • 4 Sophie Meynieux
  • 1 Christopher Nighswonger
  • 21 Chris Nighswonger
  • 23 Dobrica Pavlinusic
  • 3 Maxime Pelletier
  • 3 Shari Perkins
  • 302 Paul Poulain
  • 6 Meenakshi R
  • 5 MJ Ray
  • 4 Liz Rea
  • 26 Marcel de Rooy
  • 34 Fridolyn SOMERS
  • 3 Mathieu Saby
  • 14 Adrien Saurat
  • 19 Robin Sheat
  • 1 Simon Story
  • 1 Zeno Tajoli
  • 8 Lyon3 Team
  • 6 Mirko Tietgen
  • 25 Mark Tompsett
  • 2 Duncan Tyler
  • 1 Kathryn Tyree
  • 22 Marc Veron
  • 1 Aleksa Vujicic
  • 1 Stacey Walker
  • 5 Ian Walls
  • 1 Robert Williams
  • 4 christophe croullebois
  • 1 root
  • 1 Savitra sirohi
  • 1 Koha user
  • 3 wajasu
  • 1 Serhij Dubyk {Сергій Дубик}

We thank the following companies who contributed patches to Koha 3.10.0

  • 102 ACPL
  • 1 Abbaye de La Trappe
  • 1 Amigos Library Services
  • 26 BSZ BW
  • 487 BibLibre
  • 10 BigBallOfWax
  • 151 ByWater-Solutions
  • 162 C & P Bibliography
  • 61 Catalyst
  • 1 Cilea
  • 14 Equinox
  • 21 Foundations
  • 40 KohaAloha
  • 10 Libeo
  • 11 Libriotech
  • 2 MASmedios
  • 13 Nucsoft OSS Labs
  • 31 PTFS-Europe
  • 1 Progilone
  • 14 Prosentient Systems
  • 26 Rijksmuseum
  • 5 Software.coop
  • 13 Tamil
  • 7 Université Jean Moulin Lyon 3
  • 3 Université Rennes 2
  • 3 abunchofthings.net
  • 3 gmx.de
  • 1 littleover.derby.sch.uk
  • 1 msys.ch
  • 3 mypacks.net
  • 23 rot13.org
  • 1 ubuntu
  • 62 unidentified
  • 22 veron.ch

We also especially thank the following individuals who tested patches for Koha 3.10.0.

  • 1 Koha Team Lyon 3
  • 1 Joseph Alway
  • 1 Pierre Angot
  • 9 Tomas Cohen Arazi
  • 2 Alex Arnaud
  • 1 Larry Baerveldt
  • 1 Marc Balmer
  • 5 Gaetan Boisson
  • 254 Jared Camins-Esakov
  • 1 Colin Campbell
  • 1 François Charbonnier
  • 16 Galen Charlton
  • 2 David Cook
  • 162 Chris Cormack
  • 7 Elliott Davis
  • 5 Michael Davis
  • 1 Stéphane Delaune
  • 2 Stephane Delaye
  • 1 Stéphane Delaye
  • 13 Frédéric Demians
  • 87 Jonathan Druart
  • 47 Nicole C. Engard
  • 9 Magnus Enger
  • 81 Katrin Fischer
  • 2 Mathilde Formery
  • 3 Marijana Glavica
  • 1 Corinne HAYET
  • 107 Kyle M Hall
  • 27 Mason James
  • 60 Owen Leonard
  • 1 MathildeF
  • 25 Julian Maurice
  • 11 Melia Meggs
  • 3 Matthias Meusburger
  • 1 Sophie Meynieux
  • 5 Joy Nelson
  • 2 Chris Nighswonger
  • 10 Dobrica Pavlinusic
  • 6 Shari Perkins
  • 687 Paul Poulain
  • 2 MJ Ray
  • 14 Liz Rea
  • 9 Martin Renvoize
  • 22 Marcel de Rooy
  • 1 Fridolyn SOMERS
  • 1 Adrien Saurat
  • 7 Robin Sheat
  • 6 Delaye Stephane
  • 1 Zeno Tajoli
  • 17 Mirko Tietgen
  • 43 Marc Veron
  • 2 Stacey Walker
  • 9 Ian Walls
  • 1 jmbroust
  • 1 jorgia
  • 3 mveron
  • 20 wajasu

We regret any omissions. If a contributor has been inadvertently missed, please send a patch against these release notes to koha-patches@lists.koha-community.org.

Revision control notes

The Koha project uses Git for version control. The current development version of Koha can be retrieved by checking out the master branch of git://git.koha-community.org/koha.git

The branch for this version of Koha and future bugfixes in this release line is 3.10.x.

Bugs and feature requests

Bug reports and feature requests can be filed at the Koha bug tracker at http://bugs.koha-community.org

He rau ringa e oti ai. (Many hands finish the work)

Koha 3.8 Release Manager Founder and owner of BibLibre, french company dedicated to OpenSource and libraries

1 Comment on “Koha 3.10.0 released