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