]> git.evergreen-ils.org Git - working/Evergreen.git/blob - docs/RELEASE_NOTES_2_12.adoc
Docs: info about LP #1622364
[working/Evergreen.git] / docs / RELEASE_NOTES_2_12.adoc
1 Evergreen 2.12 Release Notes
2 ============================
3 :toc:
4 :numbered:
5
6 Evergreen 2.12.6
7 ----------------
8 This release contains several bug fixes improving on Evergreen 2.12.5.
9
10 * Removes the option to add a title to My List from Group Formats and
11 Editions searches where the option never worked correctly due to a bad id.
12 * Removes deleted shelving locations from the web client's volume/copy editor. Since there is no database constraint that prevents a copy from a deleted shelving location, if there are already copies attached to those shelving locations, the copy location selector will be blank. Evergreen admins can identify those items by running the following query:
13
14 ----
15 select acp.id, acp.barcode, acpl.name
16 from asset.copy acp
17 join asset.copy_location acpl on (acpl.id = acp.location)
18 where not acp.deleted
19 and acpl.deleted
20 order by acp.id;
21 ----
22 * Adds the patron opt-in check in the web client whenever a patron is retrieved
23 by barcode scan, patron search, or item circ history.
24 * Fixes a bug where the price and acquisitions cost fields did not display
25 their values. 
26 * Fixes a bug where a patron's circulation history no longer moved to the lead
27 account when merging patron accounts.
28 * Now hides the ebook tabs in My Account for sites that have not yet enabled the
29 Ebook API service.
30 * Trims spaces from patron barcodes in the web client check out interface.
31 * Makes a string in the holds validation alert translatable. 
32 * Fixes a bug that prevented the web client patron registration screen from
33 loading when there is an opt-in action triggers, such as the email checkout
34 receipt, t set to be a registration default. 
35 * Fixes a bug where barcode validation in the web client patron editor was 
36 using the incorrect regular expression.
37 * Replaces an empty string in the mobile carrier dropdown menu with a 'Please
38 select your mobile carrier' label to improve usability and resolve a problem
39 with translations.
40 * Restores the ability to display a photo in the web client patron editor for
41 accounts that have an actor.usr.photo_url.
42 * Fixes a Firefox display issue in the web client that occurred when retrieving
43 a bib record by TCN when the MARC Edit tab was set as the default view.
44 * Fixes an bug where setting a patron's default pickup location in the web 
45 client patron editor inadvertently changed the home library. It also disables
46 any locations that are not viable pickup locations.
47 * Fixes a bug where a misscan in a copy bucket failed silently.
48
49 Acknowledgements
50 ~~~~~~~~~~~~~~~~
51 We would like to thank the following individuals who contributed code,
52 tests and documentation patches to the 2.12.6 point release of
53 Evergreen:
54
55 * Jason Boyer
56 * Galen Charlton
57 * Jeff Davis
58 * Bill Erickson
59 * Jason Etheridge
60 * Blake Henderson
61 * Skye Howard
62 * Kathy Lussier
63 * Terran McCanna
64 * Jane Sandberg
65 * Ben Shum
66 * Cesar Velez
67
68 Evergreen 2.12.5
69 ----------------
70 This release contains several bug fixes improving on Evergreen 2.12.4.
71
72 * Hides the _Hold is Behind Circ Desk_ checkbox in the XUL client's patron
73 registration screen for those libraries that have not enabled Behind Desk Pickup 
74 support via the Library Settings Editor
75 * Adds a missing error string that appears when marking an item damaged from
76 an aged circulation.
77 * Changes the hold request form so that it no longer defaults to the first SMS
78 carrier for text notifications.
79 * Adds a requirement for users to enter a phone/SMS number when they have
80 enabled that notification method on the hold request form.
81 * Changes the URL pointing to catalog images, CSS and javascript files to a full
82 absolute URL instead of the relative URL previously used. This change fixes an
83 issue with the Open Graph image property, which requires a full URL.
84 * Fixes an issue where payment amounts sent to Stripe can be one cent less than
85 the actual Evergreen payment.
86 * Fixes an issue where the open-ils.storage OpenSRF module fails to start when
87 using perl 5.24 or higher.
88 * Fixes a problem in the web client where marking a transaction as claims
89 returned or claims never checked out at the same time the patron's record is
90 edited would not increase the count once the patron's record is saved.
91 * Changes the cursor to a pointer for the record menus in the web client.
92 * Fixes hardcoded patchs in srfsh support scripts.
93 * Prevents a "Use of freed value in iteration" error that appeared in logs when
94 adjusting a transaction to zero.
95 * Prevents the temporary list page from crashing when a user adds the same title
96 to the list more than once.
97 * Removes duplicate rows from localized 950.data.seed-values.sql files.
98 * Fixes the following two issues with conjoined items:
99    - Foreign items previously did not display there was no extra copy attached
100 to the bib record.
101    - Conjoined items did not display unless there were two or more items in a
102 set.
103 * Fixes an issue in the web client where the Hold Verify prompt did not display
104 for items in a Copy Location where the hold verify flag is enabled.
105 * Fixes support for automatic item barcode completion in the web client check in,
106 check out, renew, and item status interfaces.
107 * Makes the courier code variable available for transit slips in the web client.
108 * Fixes the ability to apply funds from the acquisitions selection list, 
109 View/Place Order, and MARC Federated Search interfaces.
110
111 Acknowledgements
112 ~~~~~~~~~~~~~~~~
113 We would like to thank the following individuals who contributed code,
114 tests and documentation patches to the 2.12.5 point release of
115 Evergreen:
116
117 * Galen Charlton
118 * Jeff Davis
119 * Bill Erickson
120 * Jason Etheridge
121 * Kathy Lussier
122 * Michele Morgan
123 * Mike Rylander
124 * Dan Scott
125 * Chris Sharp
126 * Ben Shum
127 * Josh Stompro
128 * Cesar Velez
129 * Liam Whalen
130 * Dan Wells
131
132
133
134 Evergreen 2.12.4
135 ----------------
136 Upgrade Notes
137 ~~~~~~~~~~~~~
138 * This release of Evergreen contains a fix to the _Hold/Copy Ratio per Bib
139 and Pickup Library (and Descendants)_ data source. Report templates using
140 this data source will need to be re-created to improve accuracy of the
141 data reported from this source.
142 * This release also contains a fix to downloading large checkout histories from
143 My Account. This feature no longer uses the action/trigger mechanism and the 
144 OPAC now generates the CSV directly.  The old action/trigger code is still
145 present in the database and should be removed at some point in the
146 near future.
147
148 Bug Fixes
149 ~~~~~~~~~
150 This release contains several bug fixes improving on Evergreen 2.12.3
151
152
153 * A fix to a web client bug where adding copies through the _Add Volumes 
154 and Copies_ menu item could fail silently.
155 * A fix to a bug that allowed users to access some web client admin interfaces 
156 without a login.
157 * A fix to the display of the loan duration and fine level fields in the web
158 client Item Status Detail view.
159 * A fix to the display of duplicate data on the bib record View Holds page when 
160 toggling between the holds and OPAC view. 
161 * A fix to a bug that prevented the web client patron registration page from
162 loading.
163 * Support for Org Unit Includes alert text, notice text, event text, header
164 text, and footer text in the web client print templates.
165 * A fix to make the web client MARC Editor's flat text editor selection sticky.
166 * A fix to make the Patron Search library selector sticky.
167 * A fix to a bug in the web client that prevented the user from saving a new
168 copy after using the MARC Edit _Add Item_ option.
169 * A fix to a patron registration bug that did not require the entry of a required
170 user statistical category for stat cats that do not allow free-text entries.
171 * The addition of the bad bacode image file in the web client.
172 * An improvement to the MARC Batch Edit progress indicator to reduce the 
173 likelihood of system backlogs.
174 * Downloading checkout history as a CSV from My Account has been fixed
175 for users with a large circulation history.  Previously, this would
176 time out for patrons with more than 100 or so circulations.
177 * A fix to syntax in the Spanish lang.dtd file that was creating an error
178 when using the Closed Date Editor.
179 * Improvements to CSS to silence some Mozilla extension warnings.
180 * A fix to a failure to update targeted circulations when utilzing the recall
181 functionality.
182 * The addition of text wrapping in the copy details table on the bib
183 record to prevent contents from falling off the page.
184 * A fix to the adjust to zero option so that it can be applied correctly
185 to multiple billings.
186 * A fix to the "Hold/Copy Ratio per Bib and Pickup Library
187 (and Descendants)" data source so that it will now include counts of eligible
188 copies at locations that are not a pickup library for bib's holds.
189 * A fix to the XUL client Item Status -> Alternate View -> Holds / Transit
190 tab so that it properly refreshes all data when switching between copies.
191
192 Acknowledgements
193 ~~~~~~~~~~~~~~~~
194 We would like to thank the following individuals who contributed code,
195 tests and documentation patches to the 2.12.4 point release of
196 Evergreen:
197
198 * Jason Boyer
199 * Galen Charlton
200 * Jeff Davis
201 * Bill Erickson
202 * Jason Etherige
203 * Pasi Kallinen
204 * Angela Kilsdonk
205 * Kathy Lussier
206 * Michele Morgan
207 * Mike Rylander
208 * Jane Sandberg
209 * Dan Scott
210 * Ben Shum
211 * Jason Stephenson
212 * Josh Stompro
213 * Cesar Velez
214 * Dan Wells
215
216 Evergreen 2.12.3
217 ----------------
218
219 This release contains several bug fixes improving on Evergreen 2.12.2.
220
221 Web Client Bug Fixes
222 ~~~~~~~~~~~~~~~~~~~~
223 The web client, which is available for trial production use in libraries,
224 received several fixes in this release:
225
226 * The receipt on payment checkbox now prints a receipt at time of payment.
227 * The Items Out count in the patron screen now includes long overdue
228 items.
229 * A fix was added to prevent values from a previously-edited patron from
230 appearing in the edit form of a subsequent patron.
231 * User notification preferences now save correctly in the patron
232 registration and edit forms.
233 * The UPDATE_MARC permission is no longer requested when performing a
234 search from the staff catalog.
235 * Non-cataloged circulations now display in the Items Out screen without
236 requiring a refresh.
237 * Required statistical categories are now required to be entered in the 
238 copy editor. (A similar bug for the patron editor was fixed in the 2.12.1
239 release).
240 * Voiding bills now requires confirmation.
241 * Staff can no longer use the copy editor to put items into or out of the
242 following statuses: checked out, lost, in transit, on holds shelf, long
243 overdue, and canceled transit.
244 * The contrast is improved for alert text showing the amount a patron owes
245 in bills.
246 * Circ modifiers now sort alphabetically in the copy editor.
247
248 Other Bug Fixes
249 ~~~~~~~~~~~~~~~
250 * Code to prevent a hold already on the Holds Shelf from being
251 transferred to another title.
252 * A fix to a bug that prevented users from scheduling reports with a
253 relative month if the report template used a date that applied the Year +
254 Month transform with the On or After (>=) operator.
255 * A fix to a bug where the max fines threshold was reached prematurely
256 due to the presence of account adjustments.
257 * A check that prevents a SMS message from attempting to sending when the SMS
258 carrier is null.
259 * For systems that provide search format as a filter on the advanced
260 search page, a fix so that the format selected in the search bar when
261 launching a new search from the results page overrides any previously-set 
262 formats.
263 * The addition of an optional new Apache/mod_perl configuration variable for
264 defining the port Apache listens on for HTTP traffic. This resolves an issue
265 where added content lookups attempting HTTP requests on the local Apache
266 instance on port 80 failed because Apache was using non-standard ports.
267 * A fix to the public catalog's My List page responsive design so that it now
268 displays properly on mobile devices and allows users to place holds from My List. 
269 * A fix to a bug where the second (and subsequent)
270 pages of search results in the public catalog (when group
271 formats and editions is in effect) does not correctly generate
272 links to hits that are not part of of a multi-bib metarecords.
273
274 Acknowledgements
275 ~~~~~~~~~~~~~~~~
276 We would like to thank the following individuals who contributed code,
277 testing and documentation patches to the 2.12.3 point release of
278 Evergreen:
279
280 * Jason Boyer
281 * Galen Charlton
282 * Jeff Davis
283 * Bill Erickson
284 * Jason Etheridge
285 * Kathy Lussier
286 * Terran McCanna
287 * Dan Scott
288 * Chris Sharp
289 * Ben Shum
290 * Remington Steed
291 * Cesar Velez
292 * Dan Wells
293
294 Evergreen 2.12.2
295 ----------------
296
297 This release is a security release that also contains several other bug
298 fixes improving on Evergreen 2.12.1.
299
300 Security Issue: XSS Vulnerability in Public Catalog
301 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
302 This release fixes several cross-site scripting (XSS) vulnerabilities
303 in the public catalog. When upgrading, Evergreen administrators should
304 review whether any of the following templates have been customized
305 or overridden. If so, either the template should be replaced with the
306 stock version or the XSS fix (which entails adding the `| html` filter
307 in several places) applied to the customized version.
308
309 * `Open-ILS/src/templates/opac/parts/locale_picker.tt2`
310 * `Open-ILS/src/templates/opac/parts/login/form.tt2`
311 * `Open-ILS/src/templates/opac/parts/searchbar.tt2`
312
313 Upgrade Notes
314 ~~~~~~~~~~~~~
315 * Administrators of Evergreen who use RTL locales and who have customized
316 `style-rtl.css.tt2` should now incorporate their customizations into
317 `style.css.tt2`.
318 * The `reporter.classic_current_circ` view, which is part of some
319 extra views defined in `Open-ILS/src/sql/Pg/example.reporter-extension.sql`,
320 has been fixed to not exclude loans for patrons who do not have a
321 billing address set. Users of this view should rerun
322 `Open-ILS/src/sql/Pg/example.reporter-extension.sql` during upgrade.
323
324 Hold Targeter Repairs and Improvements
325 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
326 A series of changes were made to the new hold targeter available in 2.12.
327
328 * Make the batch targeter more resilient to a single-hold failure.
329 * Additional batch targeter info logging.
330 * Set OSRF_LOG_CLIENT in hold_targeter_v2.pl for log tracing
331 * Removes the confusingly named --target-all option
332  ** The same behavior can be achieved by using --retarget-interval "0s"
333 * Removes --skip-viable (see --soft-retarget-interval below)
334
335 New --next-check-interval Option
336 ++++++++++++++++++++++++++++++++
337 Specify how long after the current run time the targeter will retarget
338 the currently affected holds. Applying a specific interval is useful
339 when the retarget-interval is shorter than the time between targeter
340 runs.
341
342 For example, if the targeter is run nightly at midnight with a
343 --retarget-interval 36h, you would set --next-check-interval to 48hr,
344 since the holds won't be processed again until 48 hours later. This
345 ensures that the org unit closed date checks are looking at the correct
346 date. 
347
348 This setting overrides the default behavior of calculating the next 
349 retarget time from the retarget-interval.
350
351 New --soft-retarget-interval Option
352 +++++++++++++++++++++++++++++++++++
353 This is a replacement for (and rebranding of) the --skip-viable option. 
354 The new option allows for time-based soft-targeting instead simple binary 
355 on/off soft-targeting.
356
357 How soft-targeting works:
358 * Update hold copy maps for all affected holds
359 * Holds with viable targets (on the pull list) are otherwise left alone.
360 * Holds without viable targets are retargeted in the usual manner. 
361
362 Other Bug Fixes
363 ~~~~~~~~~~~~~~
364 * A fix to remove the Chilifresh patron reviews header for Evergreen sites
365 that do not use Chilifresh.
366 * A fix that marks acquisitions POs as received when all line items on the 
367 PO are received or canceled.
368 * A typo fix to the long overdue override permission that prevented staff
369 from being able to override long overdue check ins.
370 * A fix to use a library's configured currency in SIP patron responses
371 instead of always using US dollars.
372 * A fix to SIP timeouts caused by invalid sessions
373 * A fix that allows boolean fields to be recognized in queries to the
374 Z39.50 server.
375 * A fix to use the correct method during adjust to zero on negative
376 balances.
377 * A correction to the datatype for the Vandelay Default Record Match Set
378 setting.
379 * The removal of the _Keep_ field from MARC Batch Import Item Attributes.
380 The field was not previously implemented.
381 * A fix to set the complete time value for grouped Action/Trigger events
382 when an event's state reach complete, consistent with non-grouped events.
383 * A fix to a bug in the rollover_phone_to_print.pl script that kept failed
384 call files from being moved.
385 * A new index for acq.edi_message that speeds up the check for duplicate
386 EDI messages.
387 * A fix that ensures JSON strings are converted to UTF8, ensuring that
388 non-ASCII data display correctly.
389 * A fix to avoid an erroneous unsaved data popup to appear during MARC
390 record creation.
391 * A typo fix in the web client's bill payment receipt template.
392 * A correction to ebook account links on the My Account Summary page.
393 * Improved responsive design for the ebook My Account screens so that
394 they display better on mobile devices.
395 * A fix to a bug that prevented a patron opt-in dialog from loading.
396 * The RTL stylesheet for the public catalog,
397 `templates/opac/css/style-rtl.css.tt2`, has been merged into the LTR
398 one (`templates/opac/css/style.css.tt2`). The combined stylesheet
399 template will emit RTL or LTR styles based on the value of
400 the `rtl` flag of the active locale. An `rtl` variable is also available
401 in the template to allow the correct style to be chosen.
402 * A fix to leaking of the internal port number to the client when
403 Apache is configured to use nonstandard ports in combination with a proxy
404 server.
405 * The addition of the vandelay.auto_overlay_bib_record upgrade script,
406 which was missed in a 2.1-2.2 era upgrade script. It isn't necessary for
407 sites that began using Evergreen since then to run the script, but
408 it is harmless to run.
409 * A web staff client fix that will hid the behind-desk option for
410 for libraries that do not support "Behind Desk Pickup".
411 * A web staff client fix that caused hold transit check ins to fail
412 silently when the transit destination does not have a holds address.
413 * A web staff client fix that now requires the entry of user statistical
414 categories in the patron editor if those stat cats are configured to
415 be required.
416 * A fix to a problem with the "Exclude Electronic Resources" checkbox
417 that prevented users from removing a selection from the box.
418 * The removal of the search format limiters from the new advanced search
419 limiter block on the search results page. The search format limiters
420 should not display there because they can be selected from the search bar.
421
422
423
424
425 Acknowledgements
426 ~~~~~~~~~~~~~~~~
427 We would like to thank the following individuals who contributed code,
428 testing and documentation patches to the 2.12.2 point release of
429 Evergreen:
430
431 * Galen Charlton
432 * Jeff Davis
433 * Bill Erickson
434 * Jason Etheridge
435 * Jeff Godin
436 * Blake Henderson
437 * Linda Jansova
438 * Kathy Lussier
439 * Jillianne Presley
440 * Jane Sandberg
441 * Dan Scott
442 * Chris Sharp
443 * Remington Steed
444 * Jason Stephenson
445 * Josh Stompro
446 * Remington Steed
447
448 Evergreen 2.12.1 
449 ----------------
450
451 This release contains several bug fixes improving on Evergreen 2.12.0
452
453 * A fix to the 2.12 upgrade of the subject|temporal and subject|geographic 
454 indexes, where the above-mentioned browse indexes were not turned off in favor
455 of new browse versions of the indexes. Sites that are upgrading from 2.12.0
456 can cancel the browse reingest that comes with the new upgrade script.
457
458 * A change to the default pickup library when staff place a hold. The place hold
459 screen will now default to the preferred pickup location for the patron. If the
460 patron does not have a preferred pickup location, it will default to the
461 patron's home library.
462 * A fix to a problem where users could not change the selected Org Unit on the
463 MARC Tag Tables server admin page.
464 * A fix to the seed data for translations for some Coded Value Map entries.
465 * The ability to skip the XUL staff client build when in make_release.
466 * Revised layout and styling for the advanced search limiter block that displays
467 on the search results page.
468 * A fix that silences a log warning that appears for every checkout where a hard
469 due date is not used.
470 * Tweaks for sounds that are used in the web staff client.
471 * The addition of f4 and ctrl-f2 as hotkeys in the web staff client.
472 * Additional help text for receipt templates in the web staff client.
473 * The reinstatement of the Reprint Last Receipt functionality in the web staff client.
474 * The ability in the web staff client copy editor to add new volumes to
475 libraries that were not selected in holdings view.
476 * A fix to a billing issue where transactions were not re-opened after they
477 acquired a non-zero balance at check in.
478 * A change to the web staff client work log to prevent it from storing 
479 unnecessary data.
480 * A fix to a translation issue for the record attributes displayed in the 
481 advanced search limiter block on the search results page.
482 * A fix to hold targeting for metarecord holds when the new hold targeter is
483 run in parallel mode.
484
485 Acknowledgements
486 ~~~~~~~~~~~~~~~~
487 We would like to thank the following individuals who contributed code,
488 testing and documentation patches to the 2.12.1 point release of
489 Evergreen:
490
491 * Eva Cerniňáková
492 * Galen Charlton
493 * Bill Erickson
494 * Jason Etherige
495 * Jeanette Lundgren
496 * Kathy Lussier
497 * Mike Rylander
498 * Jane Sandberg
499 * Dan Scott
500 * Ben Shum
501 * Robert Soulliere
502 * Jason Stephenson
503 * Josh Stompro
504 * Dan Wells
505
506
507 2.12.0 Upgrade notes
508 --------------------
509 Evergreen 2.12 now requires OpenSRF 2.5 or later; certain functionality
510 will not work if you attempt to run Evergreen 2.12 on OpenSRF 2.4. Evergreen
511 2.12 recommends PostgreSQL 9.4. The minimum supported version of PostgreSQL is
512 9.3.
513
514 The stock schema upgrade script performs a browse and facet reingest,
515 recalculates bib fingerprints, and remaps metarecords.
516
517 This version also adds two new services, `open-ils.ebook_api` and
518 `open-ils.hold-targeter`.
519
520 2.12.0 New Features
521 -------------------
522
523 Acquisitions
524 ~~~~~~~~~~~~
525 Default status for received line items
526 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
527 A new Library Setting has been added to allow libraries to set the default
528 status for received line items. The previous behavior was to use the
529 "In process" status for all acquisitions items that are received.
530
531
532 Administration
533 ~~~~~~~~~~~~~~
534
535
536
537 Additional SMS Carriers
538 ^^^^^^^^^^^^^^^^^^^^^^^
539 SMS carrier definitions are now included for Google Fi and
540 Republic Wireless. These will be automatically loaded when
541 installing a new Evergreen system; admins who wish to
542 add these definitions during an upgrade can use the following
543 email gateway values:
544
545  * Google Fi: `$number@msg.fi.google.com`
546  * Republic Wireless: `$number@text.republicwireless.com`
547
548
549
550
551 Bibliographic Fingerprint Improvements
552 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
553 The bibliographic fingerprint will now incorporate subfields $n and $p from MARC
554 title fields to better distinguish among records of the same series that
555 may share the same title but have a different part. With this change, these
556 MARC records will no longer be grouped together in a 'Group Formats & Editions'
557 search.
558
559 The bibliographic fingerprint was also changed to better distinguish among
560 the fields contributing to the fingerprint. This change will help the system
561 distinguish between a record for the movie _Blue Steel_ and another record for
562 the book _Blue_ written by Danielle Steel.
563
564
565
566
567
568
569 Batch Hold Targeter Speed-up and New Features
570 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
571
572 Adds a new `open-ils.hold-targeter` service, supporting new targeting options
573 and runtime optimizations to speed up targeting.  The service is launched
574 from a new targeting script, `hold_targeter_v2.pl` (default location:
575 `/openils/bin/hold_targeter_v2.pl`).
576
577 This code has no effect on the existing hold targeter, which is still
578 available as of this release and functions as before.
579
580 New Features/Options
581 ++++++++++++++++++++
582
583 * Adds a global configuration flag 'circ.holds.retarget_interval' for 
584   setting the hold retarget interval.
585
586 * `--target-all` option forces the targeter to process all active
587   holds, regardless of when they were last targeted.
588
589 * `--retarget-interval` option make is possible to override the new
590   'circ.holds.retarget_interval' setting via the command line 
591   when calling the hold targeter.
592
593 * `--skip-viable` option causes the hold targeter to avoid modifying 
594   the currently targeted copy (i.e. the copy on the pull list) for holds 
595   that target a viable (capturable) copy.  
596   {empty} +
597   {empty} +
598   For skipped holds, no entry is added to the unfulfilled_hold_list.
599   The set of potential copies (hold copy maps) are refreshed for all
600   processed holds, regardless of target viability.
601   {empty} +
602   {empty} +
603   This option is useful for 1.) finding targets for holds that require 
604   new targets and 2.) adding new/modified copies to the potential copy 
605   lists (for opportunistic capture) more frequently than you may want to do full
606   retargeting of all holds.
607
608 * `--newest-first` option processes holds in reverse order of request_time,
609   so that newer holds are (re)targeted first.  This is primarily useful
610   when a large backlog of old, un-targetable holds exist.  With 
611   `--newest-first`, the older holds will be processed last.
612
613 * `--parallel` option overrides the parallel settings found in `opensrf.xml`
614   for simpler modification and testing.
615
616 * `--lockfile` option allows the caller to specify a lock file instead
617   of using the default /tmp/hold_targeter-LOCK
618
619 * `--verbose` option prints progress info to STDOUT, showing the number of
620   holds processed per parallel targeter instance.
621
622 * When configured, hold target loops cycle through all org units (with 
623   targetable copies) instead of repeatedly targeting copies at the pickup
624   library when multiple targetable copies exist at the pickup library.
625
626 * When configured, hold target loops prioritize (targetable) org units
627   first by the number of previous target attempts, then by their 
628   weight/proximity.  This effectively back-fills org units that had no
629   targetable copies during earlier target loops so that they are 
630   targeted as many times as other org units (to the extent possible, 
631   anyway).
632
633 Examples
634 ++++++++
635
636 * Traditional daily hold targeter with a value set for 
637   'circ.holds.retarget_interval'.
638
639 [source,sh]
640 --------------------------------------------------------------------------
641 /openils/bin/hold_targeter_v2.pl
642 --------------------------------------------------------------------------
643
644 * (Re)target non-viable holds twice a day, only processing holds that 
645   have never been targeter or those that have not been re-targeted in
646   the last 12 hours.
647
648 [source,sh]
649 --------------------------------------------------------------------------
650 /openils/bin/hold_targeter_v2.pl --skip-viable --retarget-interval "12h"
651 --------------------------------------------------------------------------
652
653 * (Re)target non-viable holds twice a day, processing all holds regardless
654   of when or if they were targeted before, running 3 targeters in
655   parallel.
656
657 [source,sh]
658 --------------------------------------------------------------------------
659 /openils/bin/hold_targeter_v2.pl --skip-viable --target-all --parallel 3
660 --------------------------------------------------------------------------
661
662
663
664
665
666 Add separate make target for translators
667 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
668 For those only interested in building Evergreen translations, a separate
669 "translator" make target has been added to allow for easier installation
670 of i18n prerequisites.
671
672
673 Allow admin to specify where Perl modules will be installed
674 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
675 Add `--with-perlbase` option to `configure` to specify an alternative
676 location for installing the Perl modules. This can be useful for setups
677 that want to run the Perl modules from a shared filesystem or
678 environments that need to run multiple versions of Evergreen
679 simultaneously.
680
681 Users of `--with-perlbase` are responsible for ensuring that `PERL5LIB`
682 is set appropriately.
683
684
685
686 Addition of missing permissions
687 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
688 Required permissions that were previously missing from the stock data have now
689 been added. If Evergreen sites have already manually added these permissions,
690 the upgrade script will remove the old permission and create the new one,
691 maintaining any maps to permission groups, with the stock permission ID.
692
693
694
695
696
697 get_org_unit_ancestor_at_depth Helper Added to Action Trigger Reactor Helpers
698 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
699 In action trigger templates it's now possible to call
700 `helpers.get_org_unit_ancestor_at_depth($id_or_aou, $depth)` in order to retrieve
701 a fleshed aou for the target aou's ancestor at the chosen depth. This could be
702 used to retrieve the name of the library system rather than a specific branch
703 name, for instance.
704
705
706
707
708 Removed unused selfcheck password setting
709 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
710 There was an unused duplicate selfcheck password setting that was removed
711 to avoid confusion over which library setting was supposed to be set to
712 enable passwords for selfcheck. After upgrading, verify that your library
713 policy remains consistent for this setting.
714
715
716
717
718
719 Credit Processor Stripe Settings Permissions
720 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
721 Unprivileged users can retrieve organizational unit setting values for
722 setting types lacking a "view" permission.  When the feature adding
723 Stripe credit card processing was added, the upgrade script neglected
724 to add the VIEW_CREDIT_CARD_PROCESSING permission to the
725 organizational unit setting type.  This means that anyone can retrieve
726 and view the settings for Stripe credit card processing.
727
728 Any system that upgraded from Evergreen version 2.5 to 2.6 is
729 affected.  If you use Stripe for credit card processing, it is
730 strongly recommended that you apply this upgrade.  Even if you do not
731 use Stripe, applying this upgrade is still recommended.  If you did
732 not upgrade from version 2.5 to 2.6 of Evergreen, but started with a
733 later version, applying this upgrade is harmless.
734
735
736
737
738 Cataloging
739 ~~~~~~~~~~
740
741
742
743 New Access Points for MARC Merge/Overlay Profiles
744 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
745 Catalogers can now select a MARC merge/overlay profile to apply when
746 merging records in the (browser client) record bucket merge and Z39.50
747 record overlay interfaces. In both interfaces, if the user selects
748 a merge profile, the results of the merge are displayed, giving the
749 user the opportunity to choose a different merge profile or edit
750 the records involved prior to committing to the merge.
751
752 A new library setting, "Default Merge Profile (Z39.50 and Record Buckets)",
753 specifies the merge profile to preselect in the new merge profile
754 selectors in the record bucket merge and Z39.50 overlay logs. The
755 selectors will also remember the last selection that the user made.
756
757
758
759
760 Circulation
761 ~~~~~~~~~~~
762
763
764
765 Display Copy Alerts With In-House-Use
766 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
767
768 Two library settings are used to control the display of copy alert
769 messages or copy location check in alerts when recording in-house-use
770 in Evergreen.
771
772 Setting 'Display copy alert for in-house-use' to true for an
773 organization will cause an alert to appear with the copy's alert
774 message, if it has one, when recording in-house-use for the copy.
775
776 Setting 'Display copy location check in alert for in-house-use' to true
777 for an organization will cause an alert to display a message
778 indicating that the item needs to be routed to its location if the
779 location has check in alert set to true.
780
781 The settings are independent of one another because you may want to
782 display one and not the other when recording in-house-use.
783
784
785
786
787 Client
788 ~~~~~~
789
790
791
792 Active Date Column Picker Option
793 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
794 The active date will now be available as a column picker option in the Item
795 Status screen.
796
797
798
799
800 Punctuation Insensitive Patron Search
801 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
802 When performing a patron search, punctuation characters will be
803 ignored.  So if the patron is named O'Brien, then you can enter Obrien,
804 O'Brien, O Brien, etc. in the search box.
805
806 This behavior affects the Last Name (internally: family_name), First Name
807 (first_given_name), and Middle Name (second_given_name) fields of the search.
808
809
810
811
812
813
814 Touch screen improvements for Evergreen self-check interface
815 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
816 Improvements were made to the Evergreen self-check interface to make it easier
817 to use in a touch-screen environment.
818
819  * The pay fines link is now a pay fines button, matching other buttons on the
820 page.
821  * The checkboxes have been enlarged, making them easier to activate when using
822 a touch screen.
823
824
825
826
827
828 Trial Production Use of the Web Staff Client
829 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
830 The new web staff client is ready for trial production use in all functional
831 areas with the exception of serials and offline transactions. In addition to
832 many bug fixes in the areas of circulation, cataloging, administration and
833 reporting, Release 2.12 sees the following additions to web client
834 functionality.
835
836  * Acquisitions interfaces and functionality have been integrated into the web
837  staff client.
838  * Booking interfaces and functionality have been integrated into the web staff
839  client.
840  * Hatch, the program that will allow for unmediated printing to multiple
841  printers, sharing of workstation settings, and, eventually, offline 
842  transactions is now available. A windows installer for Hatch will be available
843  on the Evergreen-ILS Downloads page.
844
845 The Evergreen developers will keep pilot libraries updated about known web
846 client issues by posting known bugs to https://wiki.evergreen-ils.org/doku.php?id=dev:browser_staff:known_issues .
847
848 About Hatch
849 +++++++++++
850 Hatch is not required to use the web client, but should be used for workstations
851 that need to perform the following tasks.
852
853  * Unmediated printing to multiple printers. Workstations can print to multiple
854  printers without Hatch, but will need to click through a dialog to select a
855  printer. Hatch allows workstations to automatically print, without dialog, to
856  different printers. 
857  * Storage of workstation settings in a place outside the browser. Storing local
858  preferences in hatch will prevent tampering with preferences via the browser
859  developer tools and protect the settings from possible deletion if the browser
860  deletes settings in local storage.
861  * When offline functionality is available, hatch will be required to perform
862  offline transactions.
863  
864 Hatch is currently run as a Chrome extension and is not available in Firefox. To
865 use hatch on Windows, Evergreen sites should:
866
867  . install a java runtime environment version 8 (or higher) if not already
868  installed,
869  . download and execute the installer from the Evergreen downloads page, 
870  . open Chrome and navigate to chrome://extensions,
871  . enable _Developer Mode_ along the top right of the page,
872  . click the _Load Unpacked Extension_ button,
873  . load the directory at Hatch -> extension -> app,
874  .. In Windows, the default location for the app directory will be
875  C:\Program Files (x86)\Hatch\extension\app
876  . enable hatch features in the web client by going to Administration ->
877  Workstation Administration -> Print/Storage Service ("Hatch") and choosing
878  which services to use with Hatch.
879  .. this page will also inform you that hatch is connected. 
880
881
882
883
884 Infrastructure
885 ~~~~~~~~~~~~~~
886
887
888
889 Client Timezone Awareness
890 ^^^^^^^^^^^^^^^^^^^^^^^^^
891
892 Previously, adjusting the time zone in which a database session operates
893 could not be done in any way except globally, directly within the database.
894 However, allowing modification of the timezone parameter now supports
895 localization efforts for those consortia that span multiple time zones.
896
897 Implementation
898 ++++++++++++++
899
900 CStore and other services that interact with the primary Evergreen database
901 make use of the functionality provided by LP#1485371 in OpenSRF in order to
902 set the time zone configuration parameter available in PostgreSQL.  This has
903 the effect of interpreting all timestamps written to or read from the database
904 in the client's time zone.
905
906 Within CStore (and related, C-based services), all stateful sessions make use
907 of this capability, setting the database time zone upon a successful CONNECT
908 message from the client.  The time zone is reset to the database default when
909 a session is terminated either due to client DISCONNECT or server keepalive
910 timeout.
911
912 All stateless requests record the current database time zone, set the database
913 time zone to that of the client's, run the query, and then reset the database
914 time zone on each request that carries a client time zone value.  It is expected
915 that this will not cause any noticeable increase in latency or query execution
916 time, as this setting is local to the specific PostgreSQL server backend process.
917
918 Within the Storage service, the timezone will be set automatically by a simple
919 wrapper method used by the existing method registration mechanism for method
920 publishing.  Disconnect and error callbacks are registered to revert the time
921 zone setting within the database.  This provides completely transparent time
922 zone manipulation for backend services that make use of open-ils.storage.
923
924
925
926
927 Public Catalog
928 ~~~~~~~~~~~~~~
929
930
931
932 New Subject Browse Index Definitions
933 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
934 New subject browse index definitions have been added that display the entire
935 heading as a unit with hyphens between terms instead of displaying individual
936 terms separately. 
937
938 For example, the browse heading for:
939
940 =650 \0$aCats$zUnited States$vCorrespondence.
941
942 will display in a single entry as:
943
944 Cats -- United States -- Correspondence
945
946 Rather than separate entries for Cats and United States. 
947
948 Name subjects will continue to display as separate entries because additional
949 work would be required for the heading to be punctuated correctly.
950
951
952
953
954 Advanced Search Limiters Enhancement
955 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
956 Advanced search limiters will no longer propagate to the basic search box in
957 the catalog. Instead, the limiters applied to the search will appear underneath
958 the search box where they can be easily cleared by clicking an 'x.' On a small,
959 mobile device, the advanced search limiters can be seen by clicking an 'x filter
960 applied' link. 
961
962 The selected limiters will be applied to any search from the search bar until:
963  * The user actively removes the filters from the search or
964  * The user starts a new basic or advanced search from scratch.
965
966
967
968
969 Arabic and Right-to-Left Language Support for the catalog
970 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
971 New stylesheets and other changes to the catalog to allow for 
972 better support of right-to-left (RTL) languages, such as Arabic.
973
974 Also adds Arabic (Jordan) as a new supported language.
975
976
977
978
979 Ebook API integration
980 ^^^^^^^^^^^^^^^^^^^^^
981 Evergreen 2.12 supports partial integration with third-party APIs
982 provided by OverDrive and OneClickdigital.  When ebook API integration
983 is enabled, bibliographic records from these vendors that appear in your
984 public catalog will include vendor holdings and availability information.  Also,
985 when a user is logged in, the public catalog dashboard and My Account interface
986 will include information about that user's checkouts and holds for
987 supported vendors.
988
989 For API integration to work, you need to request API access from the
990 vendor and configure your Evergreen system according to the instructions
991 below.  You also need to configure the new `open-ils.ebook_api` service.
992
993 This feature assumes that you are importing MARC records supplied by the
994 vendor into your Evergreen system, using Vandelay or some other MARC
995 import method.  This feature does not search the vendor's online
996 collections or automatically import vendor records into your system; it
997 merely augments records that are already in Evergreen.
998
999 A future Evergreen release will add the ability for users to check out
1000 titles, place holds, etc., directly via the public catalog.
1001
1002 Ebook API service configuration
1003 +++++++++++++++++++++++++++++++
1004 This feature uses the new `open-ils.ebook_api` OpenSRF service.  This
1005 service must be configured in your `opensrf.xml` and `opensrf_core.xml`
1006 config files for ebook API integration to work.  See
1007 `opensrf.xml.example` and `opensrf_core.xml.example` for guidance.
1008
1009 OverDrive API integration
1010 +++++++++++++++++++++++++
1011 Before enabling OverDrive API integration, you will need to request API
1012 access from OverDrive.  OverDrive will provide the values to be used for
1013 the following new org unit settings:
1014
1015   * *OverDrive Basic Token*: The basic token used for API client
1016     authentication.  To generate your basic token, combine your client
1017     key and client secret provided by OverDrive into a single string
1018     ("key:secret"), and then base64-encode that string.  On Linux, you
1019     can use the following command: `echo -n "key:secret" | base64 -`
1020   * *OverDrive Account ID*: The account ID (a.k.a. library ID) for your
1021     OverDrive API account.
1022   * *OverDrive Website ID*: The website ID for your OverDrive API
1023     account.
1024   * *OverDrive Authorization Name*: The authorization name (a.k.a.
1025     library name) designated by OverDrive for your library.  If your
1026     OverDrive subscription includes multiple Evergreen libraries, you
1027     will need to add a separate value for this setting for each
1028     participating library.
1029   * *OverDrive Password Required*: If your library's OverDrive
1030     subscription requires the patron's PIN (password) to be provided
1031     during patron authentication, set this setting to "true."  If you do
1032     not require the patron's PIN for OverDrive authentication, set this
1033     setting to "false."  (If set to "true," the password entered by a
1034     patron when logging into the public catalog will be cached in plain text in
1035     memcached.)
1036   * *OverDrive Discovery API Base URI* and *OverDrive Circulation API
1037     Base URI*: By default, Evergreen uses OverDrive's production API, so
1038     you should not need to set a value for these settings.  If you want
1039     to use OverDrive's integration environment, you will need to add the
1040     appropriate base URIs for the discovery and circulation APIs.  See
1041     OverDrive's developer documentation for details.
1042   * *OverDrive Granted Authorization Redirect URI*: Evergreen does not
1043     currently support granted authorization with OverDrive, so this
1044     setting is not currently in use.
1045
1046 For more information, consult the
1047 https://developer.overdrive.com/docs/getting-started[OverDrive API
1048 documentation].
1049
1050 To enable OverDrive API integration, adjust the following public catalog settings
1051 in `config.tt2`:
1052
1053   * `ebook_api.enabled`: set to "true".
1054   * `ebook_api.overdrive.enabled`: set to "true".
1055   * `ebook_api.overdrive.base_uris`: list of regular expressions
1056     matching OverDrive URLs found in the 856$9 field of older OverDrive
1057     MARC records.  As of fall 2016, OverDrive's URL format has changed,
1058     and the record identifier is now found in the 037$a field of their
1059     MARC records, with "OverDrive" in 037$b.  Evergreen will check the
1060     037 field for OverDrive record identifiers; if your system includes
1061     older-style OverDrive records with the record identifier embedded in
1062     the 856 URL, you need to specify URL patterns with this setting.
1063
1064 OneClickdigital API integration
1065 +++++++++++++++++++++++++++++++
1066 Before enabling OneClickdigital API integration, you will need to
1067 request API access from OneClickdigital.  OneClickdigital will provide
1068 the values to be used for the following new org unit settings:
1069
1070   * *OneClickdigital Library ID*: The identifier assigned to your
1071     library by OneClickdigital.
1072   * *OneClickdigital Basic Token*: Your client authentication token,
1073     supplied by OneClickdigital when you request access to their API.
1074
1075 For more information, consult the
1076 http://developer.oneclickdigital.us/[OneClickdigital API documentation].
1077
1078 To enable OneClickdigital API integration, adjust the following public catalog
1079 settings in `config.tt2`:
1080
1081   * `ebook_api.enabled`: set to "true".
1082   * `ebook_api.oneclickdigital.enabled`: set to "true".
1083   * `ebook_api.oneclickdigital.base_uris`: list of regular expressions
1084     matching OneClickdigital URLs found in the 859$9 field of your MARC
1085     records.  Evergreen uses the patterns specified here to extract
1086     record identifiers for OneClickdigital titles.
1087
1088 Additional configuration
1089 ++++++++++++++++++++++++
1090 Evergreen communicates with third-party vendor APIs using the new
1091 `OpenILS::Utils::HTTPClient` module.  This module is configured using
1092 settings in `opensrf.xml`.  The default settings should work for most
1093 environments by default, but you may need to specify a custom location
1094 for the CA certificates installed on your server.  You can also disable
1095 SSL certificate verification on HTTPClient requests altogether, but
1096 doing so is emphatically discouraged.
1097
1098
1099
1100 Links to Other Formats and Editions
1101 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1102 The record summary pages in the catalog will now link to other formats and
1103 editions of a title. The links will allow users to quickly jump to another
1104 format of the title or an edition written in another language. 
1105
1106
1107
1108
1109
1110 Metarecord Search Improvements
1111 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1112 This release brings several improvement to the Group Formats and Editions
1113 search. 
1114
1115  * Limiters on the advanced search page can now be successfully applied to 
1116 Group Formats and Editions searches,
1117  * Electronic resources are now retrievable through these searches,
1118  * Paged navigation has improved.
1119
1120
1121
1122
1123 Allow Metarecord Search by default
1124 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1125 Before the TPAC, a site could configure the public catalog to use metarecord searching
1126 by default, via a configuration file.  Here we bring that back.
1127
1128 A new setting called search.metarecord_default is present in
1129 `templates/opac/parts/config.tt2` to enable this feature.  By setting this to
1130 a true value (normally 1) the TPAC will silently include the #metabib search
1131 modifier in the search form on any interfaces that do not have a UI component
1132 that allows the user to control the setting.
1133
1134
1135
1136 RDA Improvements
1137 ^^^^^^^^^^^^^^^^
1138  * Author fields are now normalized to strip ending periods so that authors from
1139 RDA and non-RDA records are collapsed in browse and facet headings.
1140  * All author/contributor roles will now display in the record detail page.
1141 Previously, some of the roles were omitted or were duplicated.
1142
1143
1144 Obalkyknih.cz Integration
1145 ^^^^^^^^^^^^^^^^^^^^^^^^^
1146 Evergreen now integrates with Czech added content provider obalkyknih.cz. A new
1147 setting called obalkyknih_cz.enabled is available in
1148 `templates/opac/parts/config.tt2` to enable this new feature.
1149
1150
1151 2.12.0 Acknowledgments
1152 ----------------------
1153 The Evergreen project would like to acknowledge the following
1154 organizations that commissioned developments in this release of
1155 Evergreen:
1156
1157 * Bibliomation
1158 * British Columbia Libraries Cooperative
1159 * C/W MARS
1160 * Georgia PINES
1161 * King County Library System
1162 * Linn Libraries Consortium
1163 * MassLNC
1164 * Pennsylvania Integrated Library System
1165 * Pioneer Library System
1166
1167 We would also like to thank the following individuals who contributed
1168 code, translations, documentations patches and tests to this release of
1169 Evergreen:
1170
1171 * Adam Bowling
1172 * Anahi Valdez
1173 * Ben Shum
1174 * Bill Erickson
1175 * Billy Horn
1176 * Blake Henderson
1177 * Bob Wicksall
1178 * Chris Sharp
1179 * Christine Burns
1180 * Christine Morgan
1181 * Clare Sobotka
1182 * Dan Pearl
1183 * Dan Scott
1184 * Dan Wells
1185 * Darrell Rodgers
1186 * Debbie Luchenbill
1187 * Eva Cerninakova
1188 * Fares Othman
1189 * Galen Charlton
1190 * Jakub Kotrla
1191 * Jane Sandberg
1192 * Jason Boyer
1193 * Jason Etheridge
1194 * Jason Stephenson
1195 * Jeanette Lundgren
1196 * Jeff Davis
1197 * Jeff Godin
1198 * Jennifer Pringle
1199 * Jillianne Presley
1200 * Jim Keenan
1201 * Job Diógenes Ribeiro Borges
1202 * Jonathan Schatz
1203 * Josh Stompro
1204 * Kate Butler
1205 * Kathy Lussier
1206 * Kyle Huckins
1207 * Linda Jansová 
1208 * Michele Morgan
1209 * Michelle Purcell
1210 * Mike Rylander
1211 * Nawras Othman
1212 * Remington Steed
1213 * Rogan Hamby
1214 * Terran McCanna
1215 * Thomas Berezansky
1216 * Victoria Lewis
1217
1218 We also thank the following organizations whose employees contributed
1219 patches:
1220
1221 * British Columbia Libraries Cooperative
1222 * Calvin College
1223 * Catalyst DevWorks
1224 * C/W MARS
1225 * Emerald Data Networks, Inc.
1226 * Equinox Open Library Initiative
1227 * Georgia PINES
1228 * Indiana State Library
1229 * The Institute for the Study of Totalitarian Regimes, Prague
1230 * Jabok Library
1231 * Jordanian Library and Information Association
1232 * King County Library System
1233 * Lake Agassiz Regional Library
1234 * Laurentian University
1235 * Linn-Benton Community College
1236 * MassLNC
1237 * Merrimack Valley Library Consortium
1238 * MOBIUS Consortium
1239 * North of Boston Library Exchange
1240 * Pioneer Library System
1241 * Rodgers Memorial Library
1242 * Sigio
1243 * Traverse Area District Library
1244
1245
1246 We regret any omissions.  If a contributor has been inadvertently
1247 missed, please open a bug at https://bugs.launchpad.net/evergreen/
1248 with a correction.
1249