1 Evergreen 2.12.0 Release Notes
2 ==============================
8 Evergreen 2.12 now requires OpenSRF 2.5 or later; certain functionality
9 will not work if you attempt to run Evergreen 2.12 on OpenSRF 2.4. Evergreen
10 2.12 recommends PostgreSQL 9.4. The minimum supported version of PostgreSQL is
13 The stock schema upgrade script performs a browse and facet reingest,
14 recalculates bib fingerprints, and remaps metarecords.
16 This version also adds two new services, `open-ils.ebook_api` and
17 `open-ils.hold-targeter`.
29 Additional SMS Carriers
30 ^^^^^^^^^^^^^^^^^^^^^^^
31 SMS carrier definitions are now included for Google Fi and
32 Republic Wireless. These will be automatically loaded when
33 installing a new Evergreen system; admins who wish to
34 add these definitions during an upgrade can use the following
37 * Google Fi: `$number@msg.fi.google.com`
38 * Republic Wireless: `$number@text.republicwireless.com`
43 Bibliographic Fingerprint Improvements
44 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
45 The bibliographic fingerprint will now incorporate subfields $n and $p from MARC
46 title fields to better distinguish among records of the same series that
47 may share the same title but have a different part. With this change, these
48 MARC records will no longer be grouped together in a 'Group Formats & Editions'
51 The bibliographic fingerprint was also changed to better distinguish among
52 the fields contributing to the fingerprint. This change will help the system
53 distinguish between a record for the movie _Blue Steel_ and another record for
54 the book _Blue_ written by Danielle Steel.
61 Batch Hold Targeter Speed-up and New Features
62 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
64 Adds a new `open-ils.hold-targeter` service, supporting new targeting options
65 and runtime optimizations to speed up targeting. The service is launched
66 from a new targeting script, `hold_targeter_v2.pl` (default location:
67 `/openils/bin/hold_targeter_v2.pl`).
69 This code has no effect on the existing hold targeter, which is still
70 available as of this release and functions as before.
75 * Adds a global configuration flag 'circ.holds.retarget_interval' for
76 setting the hold retarget interval.
78 * `--target-all` option forces the targeter to process all active
79 holds, regardless of when they were last targeted.
81 * `--retarget-interval` option make is possible to override the new
82 'circ.holds.retarget_interval' setting via the command line
83 when calling the hold targeter.
85 * `--skip-viable` option causes the hold targeter to avoid modifying
86 the currently targeted copy (i.e. the copy on the pull list) for holds
87 that target a viable (capturable) copy.
90 For skipped holds, no entry is added to the unfulfilled_hold_list.
91 The set of potential copies (hold copy maps) are refreshed for all
92 processed holds, regardless of target viability.
95 This option is useful for 1.) finding targets for holds that require
96 new targets and 2.) adding new/modified copies to the potential copy
97 lists (for opportunistic capture) more frequently than you may want to do full
98 retargeting of all holds.
100 * `--newest-first` option processes holds in reverse order of request_time,
101 so that newer holds are (re)targeted first. This is primarily useful
102 when a large backlog of old, un-targetable holds exist. With
103 `--newest-first`, the older holds will be processed last.
105 * `--parallel` option overrides the parallel settings found in `opensrf.xml`
106 for simpler modification and testing.
108 * `--lockfile` option allows the caller to specify a lock file instead
109 of using the default /tmp/hold_targeter-LOCK
111 * `--verbose` option prints progress info to STDOUT, showing the number of
112 holds processed per parallel targeter instance.
114 * When configured, hold target loops cycle through all org units (with
115 targetable copies) instead of repeatedly targeting copies at the pickup
116 library when multiple targetable copies exist at the pickup library.
118 * When configured, hold target loops prioritize (targetable) org units
119 first by the number of previous target attempts, then by their
120 weight/proximity. This effectively back-fills org units that had no
121 targetable copies during earlier target loops so that they are
122 targeted as many times as other org units (to the extent possible,
128 * Traditional daily hold targeter with a value set for
129 'circ.holds.retarget_interval'.
132 --------------------------------------------------------------------------
133 /openils/bin/hold_targeter_v2.pl
134 --------------------------------------------------------------------------
136 * (Re)target non-viable holds twice a day, only processing holds that
137 have never been targeter or those that have not been re-targeted in
141 --------------------------------------------------------------------------
142 /openils/bin/hold_targeter_v2.pl --skip-viable --retarget-interval "12h"
143 --------------------------------------------------------------------------
145 * (Re)target non-viable holds twice a day, processing all holds regardless
146 of when or if they were targeted before, running 3 targeters in
150 --------------------------------------------------------------------------
151 /openils/bin/hold_targeter_v2.pl --skip-viable --target-all --parallel 3
152 --------------------------------------------------------------------------
158 Add separate make target for translators
159 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
160 For those only interested in building Evergreen translations, a separate
161 "translator" make target has been added to allow for easier installation
162 of i18n prerequisites.
165 Allow admin to specify where Perl modules will be installed
166 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
167 Add `--with-perlbase` option to `configure` to specify an alternative
168 location for installing the Perl modules. This can be useful for setups
169 that want to run the Perl modules from a shared filesystem or
170 environments that need to run multiple versions of Evergreen
173 Users of `--with-perlbase` are responsible for ensuring that `PERL5LIB`
174 is set appropriately.
178 Addition of missing permissions
179 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
180 Required permissions that were previously missing from the stock data have now
181 been added. If Evergreen sites have already manually added these permissions,
182 the upgrade script will remove the old permission and create the new one,
183 maintaining any maps to permission groups, with the stock permission ID.
189 get_org_unit_ancestor_at_depth Helper Added to Action Trigger Reactor Helpers
190 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
191 In action trigger templates it's now possible to call
192 `helpers.get_org_unit_ancestor_at_depth($id_or_aou, $depth)` in order to retrieve
193 a fleshed aou for the target aou's ancestor at the chosen depth. This could be
194 used to retrieve the name of the library system rather than a specific branch
200 Removed unused selfcheck password setting
201 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
202 There was an unused duplicate selfcheck password setting that was removed
203 to avoid confusion over which library setting was supposed to be set to
204 enable passwords for selfcheck. After upgrading, verify that your library
205 policy remains consistent for this setting.
211 Credit Processor Stripe Settings Permissions
212 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
213 Unprivileged users can retrieve organizational unit setting values for
214 setting types lacking a "view" permission. When the feature adding
215 Stripe credit card processing was added, the upgrade script neglected
216 to add the VIEW_CREDIT_CARD_PROCESSING permission to the
217 organizational unit setting type. This means that anyone can retrieve
218 and view the settings for Stripe credit card processing.
220 Any system that upgraded from Evergreen version 2.5 to 2.6 is
221 affected. If you use Stripe for credit card processing, it is
222 strongly recommended that you apply this upgrade. Even if you do not
223 use Stripe, applying this upgrade is still recommended. If you did
224 not upgrade from version 2.5 to 2.6 of Evergreen, but started with a
225 later version, applying this upgrade is harmless.
235 New Access Points for MARC Merge/Overlay Profiles
236 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
237 Catalogers can now select a MARC merge/overlay profile to apply when
238 merging records in the (browser client) record bucket merge and Z39.50
239 record overlay interfaces. In both interfaces, if the user selects
240 a merge profile, the results of the merge are displayed, giving the
241 user the opportunity to choose a different merge profile or edit
242 the records involved prior to committing to the merge.
244 A new library setting, "Default Merge Profile (Z39.50 and Record Buckets)",
245 specifies the merge profile to preselect in the new merge profile
246 selectors in the record bucket merge and Z39.50 overlay logs. The
247 selectors will also remember the last selection that the user made.
257 Display Copy Alerts With In-House-Use
258 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
260 Two library settings are used to control the display of copy alert
261 messages or copy location check in alerts when recording in-house-use
264 Setting 'Display copy alert for in-house-use' to true for an
265 organization will cause an alert to appear with the copy's alert
266 message, if it has one, when recording in-house-use for the copy.
268 Setting 'Display copy location check in alert for in-house-use' to true
269 for an organization will cause an alert to display a message
270 indicating that the item needs to be routed to its location if the
271 location has check in alert set to true.
273 The settings are independent of one another because you may want to
274 display one and not the other when recording in-house-use.
284 Active Date Column Picker Option
285 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
286 The active date will now be available as a column picker option in the Item
292 Punctuation Insensitive Patron Search
293 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
294 When performing a patron search, punctuation characters will be
295 ignored. So if the patron is named O'Brien, then you can enter Obrien,
296 O'Brien, O Brien, etc. in the search box.
298 This behavior affects the Last Name (internally: family_name), First Name
299 (first_given_name), and Middle Name (second_given_name) fields of the search.
306 Touch screen improvements for Evergreen self-check interface
307 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
308 Improvements were made to the Evergreen self-check interface to make it easier
309 to use in a touch-screen environment.
311 * The pay fines link is now a pay fines button, matching other buttons on the
313 * The checkboxes have been enlarged, making them easier to activate when using
320 Trial Production Use of the Web Staff Client
321 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
322 The new web staff client is ready for trial production use in all functional
323 areas with the exception of serials and offline transactions. In addition to
324 many bug fixes in the areas of circulation, cataloging, administration and
325 reporting, Release 2.12 sees the following additions to web client
328 * Acquisitions interfaces and functionality have been integrated into the web
330 * Booking interfaces and functionality have been integrated into the web staff
332 * Hatch, the program that will allow for unmediated printing to multiple
333 printers, sharing of workstation settings, and, eventually, offline
334 transactions is now available. A windows installer for Hatch will be available
335 on the Evergreen-ILS Downloads page.
337 The Evergreen developers will keep pilot libraries updated about known web
338 client issues by posting known bugs to https://wiki.evergreen-ils.org/doku.php?id=dev:browser_staff:known_issues .
342 Hatch is not required to use the web client, but should be used for workstations
343 that need to perform the following tasks.
345 * Unmediated printing to multiple printers. Workstations can print to multiple
346 printers without Hatch, but will need to click through a dialog to select a
347 printer. Hatch allows workstations to automatically print, without dialog, to
349 * Storage of workstation settings in a place outside the browser. Storing local
350 preferences in hatch will prevent tampering with preferences via the browser
351 developer tools and protect the settings from possible deletion if the browser
352 deletes settings in local storage.
353 * When offline functionality is available, hatch will be required to perform
354 offline transactions.
356 Hatch is currently run as a Chrome extension and is not available in Firefox. To
357 use hatch on Windows, Evergreen sites should:
359 . install a java runtime environment version 8 (or higher) if not already
361 . download and execute the installer from the Evergreen downloads page,
362 . open Chrome and navigate to chrome://extensions,
363 . enable _Developer Mode_ along the top right of the page,
364 . click the _Load Unpacked Extension_ button,
365 . load the directory at Hatch -> extension -> app,
366 .. In Windows, the default location for the app directory will be
367 C:\Program Files (x86)\Hatch\extension\app
368 . enable hatch features in the web client by going to Administration ->
369 Workstation Administration -> Print/Storage Service ("Hatch") and choosing
370 which services to use with Hatch.
371 .. this page will also inform you that hatch is connected.
381 Client Timezone Awareness
382 ^^^^^^^^^^^^^^^^^^^^^^^^^
384 Previously, adjusting the time zone in which a database session operates
385 could not be done in any way except globally, directly within the database.
386 However, allowing modification of the timezone parameter now supports
387 localization efforts for those consortia that span multiple time zones.
392 CStore and other services that interact with the primary Evergreen database
393 make use of the functionality provided by LP#1485371 in OpenSRF in order to
394 set the time zone configuration parameter available in PostgreSQL. This has
395 the effect of interpreting all timestamps written to or read from the database
396 in the client's time zone.
398 Within CStore (and related, C-based services), all stateful sessions make use
399 of this capability, setting the database time zone upon a successful CONNECT
400 message from the client. The time zone is reset to the database default when
401 a session is terminated either due to client DISCONNECT or server keepalive
404 All stateless requests record the current database time zone, set the database
405 time zone to that of the client's, run the query, and then reset the database
406 time zone on each request that carries a client time zone value. It is expected
407 that this will not cause any noticeable increase in latency or query execution
408 time, as this setting is local to the specific PostgreSQL server backend process.
410 Within the Storage service, the timezone will be set automatically by a simple
411 wrapper method used by the existing method registration mechanism for method
412 publishing. Disconnect and error callbacks are registered to revert the time
413 zone setting within the database. This provides completely transparent time
414 zone manipulation for backend services that make use of open-ils.storage.
424 New Subject Browse Index Definitions
425 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
426 New subject browse index definitions have been added that display the entire
427 heading as a unit with hyphens between terms instead of displaying individual
430 For example, the browse heading for:
432 =650 \0$aCats$zUnited States$vCorrespondence.
434 will display in a single entry as:
436 Cats -- United States -- Correspondence
438 Rather than separate entries for Cats and United States.
440 Name subjects will continue to display as separate entries because additional
441 work would be required for the heading to be punctuated correctly.
446 Advanced Search Limiters Enhancement
447 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
448 Advanced search limiters will no longer propagate to the basic search box in
449 the catalog. Instead, the limiters applied to the search will appear in the
450 left sidebar of the search results screen where they can be easily cleared by
451 clicking an 'x.' On a small, mobile device, the advanced search limiters can
452 be seen by clicking an 'x filter applied' link or by clicking the 'Refine
453 these results' button that typically shows facets to the user.
455 The selected limiters will be applied to any search from the search bar until:
456 * The user actively removes the filters from the search or
457 * The user starts a new basic or advanced search from scratch.
462 Arabic and Right-to-Left Language Support for the catalog
463 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
464 New stylesheets and other changes to the catalog to allow for
465 better support of right-to-left (RTL) languages, such as Arabic.
467 Also adds Arabic (Jordan) as a new supported language.
472 Ebook API integration
473 ^^^^^^^^^^^^^^^^^^^^^
474 Evergreen 2.12 supports partial integration with third-party APIs
475 provided by OverDrive and OneClickdigital. When ebook API integration
476 is enabled, bibliographic records from these vendors that appear in your
477 public catalog will include vendor holdings and availability information. Also,
478 when a user is logged in, the public catalog dashboard and My Account interface
479 will include information about that user's checkouts and holds for
482 For API integration to work, you need to request API access from the
483 vendor and configure your Evergreen system according to the instructions
484 below. You also need to configure the new `open-ils.ebook_api` service.
486 This feature assumes that you are importing MARC records supplied by the
487 vendor into your Evergreen system, using Vandelay or some other MARC
488 import method. This feature does not search the vendor's online
489 collections or automatically import vendor records into your system; it
490 merely augments records that are already in Evergreen.
492 A future Evergreen release will add the ability for users to check out
493 titles, place holds, etc., directly via the public catalog.
495 Ebook API service configuration
496 +++++++++++++++++++++++++++++++
497 This feature uses the new `open-ils.ebook_api` OpenSRF service. This
498 service must be configured in your `opensrf.xml` and `opensrf_core.xml`
499 config files for ebook API integration to work. See
500 `opensrf.xml.example` and `opensrf_core.xml.example` for guidance.
502 OverDrive API integration
503 +++++++++++++++++++++++++
504 Before enabling OverDrive API integration, you will need to request API
505 access from OverDrive. OverDrive will provide the values to be used for
506 the following new org unit settings:
508 * *OverDrive Basic Token*: The basic token used for API client
509 authentication. To generate your basic token, combine your client
510 key and client secret provided by OverDrive into a single string
511 ("key:secret"), and then base64-encode that string. On Linux, you
512 can use the following command: `echo -n "key:secret" | base64 -`
513 * *OverDrive Account ID*: The account ID (a.k.a. library ID) for your
514 OverDrive API account.
515 * *OverDrive Website ID*: The website ID for your OverDrive API
517 * *OverDrive Authorization Name*: The authorization name (a.k.a.
518 library name) designated by OverDrive for your library. If your
519 OverDrive subscription includes multiple Evergreen libraries, you
520 will need to add a separate value for this setting for each
521 participating library.
522 * *OverDrive Password Required*: If your library's OverDrive
523 subscription requires the patron's PIN (password) to be provided
524 during patron authentication, set this setting to "true." If you do
525 not require the patron's PIN for OverDrive authentication, set this
526 setting to "false." (If set to "true," the password entered by a
527 patron when logging into the public catalog will be cached in plain text in
529 * *OverDrive Discovery API Base URI* and *OverDrive Circulation API
530 Base URI*: By default, Evergreen uses OverDrive's production API, so
531 you should not need to set a value for these settings. If you want
532 to use OverDrive's integration environment, you will need to add the
533 appropriate base URIs for the discovery and circulation APIs. See
534 OverDrive's developer documentation for details.
535 * *OverDrive Granted Authorization Redirect URI*: Evergreen does not
536 currently support granted authorization with OverDrive, so this
537 setting is not currently in use.
539 For more information, consult the
540 https://developer.overdrive.com/docs/getting-started[OverDrive API
543 To enable OverDrive API integration, adjust the following public catalog settings
546 * `ebook_api.enabled`: set to "true".
547 * `ebook_api.overdrive.enabled`: set to "true".
548 * `ebook_api.overdrive.base_uris`: list of regular expressions
549 matching OverDrive URLs found in the 856$9 field of older OverDrive
550 MARC records. As of fall 2016, OverDrive's URL format has changed,
551 and the record identifier is now found in the 037$a field of their
552 MARC records, with "OverDrive" in 037$b. Evergreen will check the
553 037 field for OverDrive record identifiers; if your system includes
554 older-style OverDrive records with the record identifier embedded in
555 the 856 URL, you need to specify URL patterns with this setting.
557 OneClickdigital API integration
558 +++++++++++++++++++++++++++++++
559 Before enabling OneClickdigital API integration, you will need to
560 request API access from OneClickdigital. OneClickdigital will provide
561 the values to be used for the following new org unit settings:
563 * *OneClickdigital Library ID*: The identifier assigned to your
564 library by OneClickdigital.
565 * *OneClickdigital Basic Token*: Your client authentication token,
566 supplied by OneClickdigital when you request access to their API.
568 For more information, consult the
569 http://developer.oneclickdigital.us/[OneClickdigital API documentation].
571 To enable OneClickdigital API integration, adjust the following public catalog
572 settings in `config.tt2`:
574 * `ebook_api.enabled`: set to "true".
575 * `ebook_api.oneclickdigital.enabled`: set to "true".
576 * `ebook_api.oneclickdigital.base_uris`: list of regular expressions
577 matching OneClickdigital URLs found in the 859$9 field of your MARC
578 records. Evergreen uses the patterns specified here to extract
579 record identifiers for OneClickdigital titles.
581 Additional configuration
582 ++++++++++++++++++++++++
583 Evergreen communicates with third-party vendor APIs using the new
584 `OpenILS::Utils::HTTPClient` module. This module is configured using
585 settings in `opensrf.xml`. The default settings should work for most
586 environments by default, but you may need to specify a custom location
587 for the CA certificates installed on your server. You can also disable
588 SSL certificate verification on HTTPClient requests altogether, but
589 doing so is emphatically discouraged.
593 Links to Other Formats and Editions
594 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
595 The record summary pages in the catalog will now link to other formats and
596 editions of a title. The links will allow users to quickly jump to another
597 format of the title or an edition written in another language.
603 Metarecord Search Improvements
604 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
605 This release brings several improvement to the Group Formats and Editions
608 * Limiters on the advanced search page can now be successfully applied to
609 Group Formats and Editions searches,
610 * Electronic resources are now retrievable through these searches,
611 * Paged navigation has improved.
616 Allow Metarecord Search by default
617 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
618 Before the TPAC, a site could configure the public catalog to use metarecord searching
619 by default, via a configuration file. Here we bring that back.
621 A new setting called search.metarecord_default is present in
622 `templates/opac/parts/config.tt2` to enable this feature. By setting this to
623 a true value (normally 1) the TPAC will silently include the #metabib search
624 modifier in the search form on any interfaces that do not have a UI component
625 that allows the user to control the setting.
631 * Author fields are now normalized to strip ending periods so that authors from
632 RDA and non-RDA records are collapsed in browse and facet headings.
633 * All author/contributor roles will now display in the record detail page.
634 Previously, some of the roles were omitted or were duplicated.
637 Obalkyknih.cz Integration
638 ^^^^^^^^^^^^^^^^^^^^^^^^^
639 Evergreen now integrates with Czech added content provider obalkyknih.cz. A new
640 setting called obalkyknih_cz.enabled is available in
641 `templates/opac/parts/config.tt2` to enable this new feature.
646 The Evergreen project would like to acknowledge the following
647 organizations that commissioned developments in this release of
651 * British Columbia Libraries Cooperative
654 * King County Library System
655 * Linn Libraries Consortium
657 * Pennsylvania Integrated Library System
658 * Pioneer Library System
660 We would also like to thank the following individuals who contributed
661 code, translations, documentations patches and tests to this release of
694 * Job Diógenes Ribeiro Borges
711 We also thank the following organizations whose employees contributed
714 * British Columbia Libraries Cooperative
718 * Emerald Data Networks, Inc.
719 * Equinox Open Library Initiative
721 * Indiana State Library
722 * The Institute for the Study of Totalitarian Regimes, Prague
724 * Jordanian Library and Information Association
725 * King County Library System
726 * Lake Agassiz Regional Library
727 * Laurentian University
728 * Linn-Benton Community College
730 * Merrimack Valley Library Consortium
732 * North of Boston Library Exchange
733 * Pioneer Library System
734 * Rodgers Memorial Library
736 * Traverse Area District Library
739 We regret any omissions. If a contributor has been inadvertently
740 missed, please open a bug at https://bugs.launchpad.net/evergreen/