]> git.evergreen-ils.org Git - Evergreen.git/blob - docs/RELEASE_NOTES_2_12.adoc
Docs: Translator acknowledgements and PostgreSQL support
[Evergreen.git] / docs / RELEASE_NOTES_2_12.adoc
1 Evergreen 2.12-beta Release Notes
2 =================================
3 :toc:
4 :numbered:
5
6 Upgrade notes
7 -------------
8 Evergreen 2.12 now requires OpenSRF 2.5 or later; certain functionality
9 will not work if you attempt to run Evergreen 2.12 on OpenSRF 2.4. Evergreen
10 2.12 recommends PostgreSQL 9.4. The minimum supported version of PostgreSQL is
11 9.3.
12
13 The stock schema upgrade script performs a browse reingest,
14 recalculates bib fingerprints, and remaps metarecords.
15
16 New Features
17 ------------
18
19
20
21 Administration
22 ~~~~~~~~~~~~~~
23
24
25
26 Additional SMS Carriers
27 ^^^^^^^^^^^^^^^^^^^^^^^
28 SMS carrier definitions are now included for Google Fi and
29 Republic Wireless. These will be automatically loaded when
30 installing a new Evergreen system; admins who wish to
31 add these definitions during an upgrade can use the following
32 email gateway values:
33
34  * Google Fi: `$number@msg.fi.google.com`
35  * Republic Wireless: `$number@text.republicwireless.com`
36
37
38
39
40 Bibliographic Fingerprint Improvements
41 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
42 The bibliographic fingerprint will now incorporate subfield n and p from MARC
43 title fields to better distinguish between records of the same series that
44 may share the same title but have a different part. With this change, these
45 MARC records will no longer be grouped together in a 'Group Formats & Editions'
46 search.
47
48 The bibliographic fingerprint was also changed to better distinguish between a
49 the fields contributing to the fingerprint. This change will help the system
50 distinguish between a record for the movie _Blue Steel_ and another record for
51 the book _Blue_ written by Danielle Steel.
52
53
54
55
56
57
58 Batch Hold Targeter Speed-up and New Features
59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
60
61 Adds a new open-ils.hold-targeter service, supporting new targeting options
62 and runtime optimizations to speed up targeting.  The service is launched
63 from a new targeting script, hold_targeter_v2.pl (default location:
64 /openils/bin/hold_targeter_v2.pl).
65
66 This code has no effect on the existing hold targeter, which is still
67 available as of this release and functions as before.
68
69 New Features/Options
70 ++++++++++++++++++++
71
72 * Adds a global configuration flag 'circ.holds.retarget_interval' for 
73   setting the hold retarget interval.
74
75 * --target-all option forces the targeter to process all active
76   holds, regardless of when they were last targeted.
77
78 * --retarget-interval option make is possible to override the new
79   'circ.holds.retarget_interval' setting via the command line 
80   when calling the hold targeter.
81
82 * --skip-viable option causes the hold targeter to avoid modifying 
83   the currently targeted copy (i.e. the copy on the pull list) for holds 
84   that target a viable (capturable) copy.  
85   
86   For skipped holds, no entry is added to the unfulfilled_hold_list.
87   The set of potential copies (hold copy maps) are refreshed for all
88   processed holds, regardless of target viability.
89
90   This option is useful for 1.) finding targets for holds that require 
91   new targets and 2.) adding new/modified copies to the potential copy 
92   lists (for op capture) more frequently than you may want to do full
93   retargeting of all holds.
94
95 * --newest-first option processes holds in reverse order of request_time,
96   so that newer holds are (re)targeted first.  This is primarily useful
97   when a large backlog of old, un-targetable holds exist.  With 
98   --newest-first, the older holds will be processed last.
99
100 * --parallel option overrides the parallel settings found in opensrf.xml
101   for simpler modification and testing.
102
103 * --lockfile option allows the caller to specifiy a lock file instead
104   of using the default /tmp/hold_targeter-LOCK
105
106 * --verbose option prints progress info to STDOUT, showing the number of
107   holds processed per parallel targeter instance.
108
109 * When configured, hold target loops cycle through all org units (with 
110   targetable copies) instead of repeatedly targeting copies at the pickup
111   library when multiple targetable copies exist at the pickup library.
112
113 * When configured, hold target loops prioritize (targetable) org units
114   first by the number of previous target attempts, then by their 
115   weight/proximity.  This effectively back-fills org units that had no
116   targetable copies during earlier target loops so that they are 
117   targeted as many times as other org units (to the extent possible, 
118   anyway).
119
120 Examples
121 ++++++++
122
123 * Traditional daily hold targeter with a value set for 
124   'circ.holds.retarget_interval'.
125
126 [source,sh]
127 --------------------------------------------------------------------------
128 /openils/bin/hold_targeter_v2.pl
129 --------------------------------------------------------------------------
130
131 * (Re)target non-viable holds twice a day, only processing holds that 
132   have never been targeter or those that have not been re-targeted in
133   the last 12 hours.
134
135 [source,sh]
136 --------------------------------------------------------------------------
137 /openils/bin/hold_targeter_v2.pl --skip-viable --retarget-interval "12h"
138 --------------------------------------------------------------------------
139
140 * (Re)target non-viable holds twice a day, processing all holds regardless
141   of when or if they were targeted before, running 3 targeters in
142   parallel.
143
144 [source,sh]
145 --------------------------------------------------------------------------
146 /openils/bin/hold_targeter_v2.pl --skip-viable --target-all --parallel 3
147 --------------------------------------------------------------------------
148
149
150
151
152
153 Add separate make target for translator
154 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
155 Add a separate make target during installation for translator to allow
156 for easier installation of i18n prerequisites.
157
158
159
160
161
162 Addition of missing permissions
163 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
164 Required permissions that were previously missing from the stock data have now
165 been added. If Evergreen sites have already manually added these permissions,
166 the upgrade script will remove the old permission and create the new one,
167 maintaining any maps to permission groups, with the stock permission ID.
168
169
170
171
172
173 get_org_unit_ancestor_at_depth Helper Added to Action Trigger Reactor Helpers
174 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
175 In action trigger templates it's now possible to call
176 helpers.get_org_unit_ancestor_at_depth($id_or_aou, $depth) in order to retrieve
177 a fleshed aou for the target aou's ancestor at the chosen depth. This could be
178 used to retrieve the name of the library system rather than a specific branch
179 name, for instance.
180
181
182
183
184 Removed unused selfcheck password setting
185 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
186 There was an unused duplicate selfcheck password setting that was removed
187 to avoid confusion over which library setting was supposed to be set to
188 enable passwords for selfcheck. After upgrading, verify that your library
189 policy remains consistent for this setting.
190
191
192
193
194
195 Credit Processor Stripe Settings Permissions
196 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
197 Unprivileged users can retrieve organizational unit setting values for
198 setting types lacking a "view" permission.  When the feature adding
199 Stripe credit card processing was added, the upgrade script neglected
200 to add the VIEW_CREDIT_CARD_PROCESSING permission to the
201 organizational unit setting type.  This means that anyone can retrieve
202 and view the settings for Stripe credit card processing.
203
204 Any system that upgraded from Evergreen version 2.5 to 2.6 is
205 affected.  If you use Stripe for credit card processing, it is
206 strongly recommended that you apply this upgrade.  Even if you do not
207 use Stripe, applying this upgrade is still recommended.  If you did
208 not upgrade from version 2.5 to 2.6 of Evergreen, but started with a
209 later version, applying this upgrade is harmless.
210
211
212
213
214 Cataloging
215 ~~~~~~~~~~
216
217
218
219 New Access Points for MARC Merge/Overlay Profiles
220 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
221 Catalogers can now select a MARC merge/overlay profile to apply when
222 merging records in the (browser client) record bucket merge and Z39.50
223 record overlay interfaces. In both interfaces, if the user selects
224 a merge profile, the results of the merge are displayed, giving the
225 user the opportunity to choose a different merge profile or edit
226 the records involved prior to committing to the merge.
227
228 A new library setting, "Default Merge Profile (Z39.50 and Record Buckets)",
229 specifies the merge profile to preselect in the new merge profile
230 selectors in the record bucket merge and Z39.50 overlay logs. The
231 selectors will also remember the last selection that the user made.
232
233
234
235
236 Circulation
237 ~~~~~~~~~~~
238
239
240
241 Display Copy Alerts With In-House-Use
242 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
243
244 Two library settings are used to control the display of copy alert
245 messages or copy location check in alerts when recording in-house-use
246 in Evergreen.
247
248 Setting 'Display copy alert for in-house-use' to true for an
249 organization will cause an alert to appear with the copy's alert
250 message, if it has one, when recording in-house-use for the copy.
251
252 Setting 'Display copy location check in alert for in-house-use' to true
253 for an organization will cause an alert to display a message
254 indicating that the item needs to be routed to its location if the
255 location has check in alert set to true.
256
257 The settings are independent of one another because you may want to
258 display one and not the other when recording in-house-use.
259
260
261
262
263 Client
264 ~~~~~~
265
266
267
268 Active Date Column Picker Option
269 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
270 The active date will now be available as a column picker option in the Item
271 Status screen.
272
273
274
275
276 Punctuation Insensitive Patron Search
277 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
278 When performing a patron search, punctuation characters will be
279 ignored.  So if the patron is named O'Brien, then you can enter Obrien,
280 O'Brien, O Brien, etc. in the search box.
281
282 This behavior affects the Last Name (internally: family_name), First Name
283 (first_given_name), and Middle Name (second_given_name) fields of the search.
284
285
286
287
288
289
290 Touch screen improvements for Evergreen self-check interface
291 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
292 Improvements were made to the Evergreen self-check interface to make it easier
293 to use in a touch-screen environment.
294
295  * The pay fines link is now a pay fines button, matching other buttons on the
296 page.
297  * The checkboxes have been enlarged, making them easier to activate when using
298 a touch screen.
299
300
301
302
303
304 Trial Production Use of the Web Staff Client
305 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
306 The new web staff client is ready for trial production use in all functional
307 areas with the exception of serials and offline transactions. In addition to
308 many bug fixes in the areas of circulation, cataloging, administration and
309 reporting, Release 2.12 sees the following additions to web client
310 functionality.
311
312  * Acquisitions interfaces and functionality have been integrated into the web
313  staff client.
314  * Booking interfaces and functionality have been integrated into the web staff
315  client.
316  * Hatch, the program that will allow for unmediated printing to multiple
317  printers, sharing of workstation settings, and, eventually, offline 
318  transactions is now available. A windows installer for Hatch will be available
319  on the Evergreen-ILS Downloads page.
320
321 The Evergreen developers will keep pilot libraries updated about known web
322 client issues by posting known bugs to https://wiki.evergreen-ils.org/doku.php?id=dev:browser_staff:known_issues .
323
324 About Hatch
325 +++++++++++
326 Hatch is not required to use the web client, but should be used for workstations
327 that need to perform the following tasks.
328
329  * Unmediated printing to multiple printers. Workstations can print to multiple
330  printers without Hatch, but will need to click through a dialog to select a
331  printer. Hatch allows workstations to automatically print, without dialog, to
332  different printers. 
333  * Storage of workstation settings in a place outside the browser. Storing local
334  preferences in hatch will prevent tampering with preferences via the browser
335  developer tools and protect the settings from possible deletion if the browser
336  deletes settings in local storage.
337  * When offline functionality is available, hatch will be required to perform
338  offline transactions.
339  
340 Hatch is currently run as a Chrome extension and is not available in Firefox. To
341 use hatch on Windows, Evergreen sites should:
342
343  . install a java runtime environment version 8 (or higher) if not already
344  installed,
345  . download and execute the installer from the Evergreen downloads page, 
346  . open Chrome and navigate to chrome://extensions,
347  . enable _Developer Mode_ along the top right of the page,
348  . click the _Load Unpacked Extension_ button,
349  . load the directory at Hatch -> extension -> app,
350  .. In Windows, the default location for the app directory will be
351  C:\Program Files (x86)\Hatch\extension\app
352  . enable hatch features in the web client by going to Administration ->
353  Workstation Administration -> Print/Storage Service ("Hatch") and choosing
354  which services to use with Hatch.
355  .. this page will also inform you that hatch is connected. 
356
357
358
359
360 Infrastructure
361 ~~~~~~~~~~~~~~
362
363
364
365 Client Timezone Awareness
366 ^^^^^^^^^^^^^^^^^^^^^^^^^
367
368 Previously, adjusting the time zone in which a database session operates
369 could not be done in any way except globally, directly within the database.
370 However, allowing modification of the timezone parameter now supports
371 localization efforts for those consortia that span multiple time zones.
372
373 Implementation
374 ++++++++++++++
375
376 CStore and other services that interact with the primary Evergreen database
377 make use of the functionality provided by LP#1485371 in OpenSRF in order to
378 set the time zone configuration parameter available in PostgreSQL.  This has
379 the effect of interpreting all timestamps written to or read from the database
380 in the client's time zone.
381
382 Within CStore (and related, C-based services), all stateful sessions make use
383 of this capability, setting the database time zone upon a successful CONNECT
384 message from the client.  The time zone is reset to the database default when
385 a session is terminated either due to client DISCONNECT or server keepalive
386 timeout.
387
388 All stateless requests record the current database time zone, set the database
389 time zone to that of the client's, run the query, and then reset the database
390 time zone on each request that carries a client time zone value.  It is expect
391 that this will not cause any noticeable increase in latency or query execution
392 time, as this setting is local to the specific PostgreSQL server backend process.
393
394 Within the Storage service, the timezone will be set automatically by a simple
395 wrapper method used by the existing method registration mechanism for method
396 publishing.  Disconnect and error callbacks are registered to revert the time
397 zone setting within the database.  This provides completely transparent time
398 zone manipulation for backend services that make use of open-ils.storage.
399
400
401
402
403 Public Catalog
404 ~~~~~~~~~~~~~~
405
406
407
408 New Subject Browse Index Definitions
409 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
410 New subject browse index definitions have been added that display the entire
411 heading as a unit with hyphens between terms instead of displaying individual
412 terms separately. 
413
414 For example, the browse heading for:
415
416 =650 \0$aCats$zUnited States$vCorrespondence.
417
418 will display in a single entry as:
419
420 Cats -- United States -- Correspondence
421
422 Rather than separate entries for Cats and United States. 
423
424 Name subjects will continue to display as separate entries because additional
425 work would be required for the heading to be punctuated correctly.
426
427
428
429
430 Advanced Search Limiters Enhancement
431 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
432 Advanced search limiters will no longer propagate to the basic search box in
433 the catalog. Instead, the limiters applied to the search will appear in the
434 left sidebar of the search results screen where they can be easily cleared by
435 clicking an 'x.' On a small, mobile device, the advanced search limiters can
436 be seen by clicking an 'x filter applied' link or by clicking the 'Refine
437 these results' button that typically shows facets to the user.
438
439 The selected limiters will be applied to any search from the search bar until:
440  * The user actively removes the filters from the search or
441  * The user starts a new basic or advanced search from scratch.
442
443
444
445
446 Arabic and Right-to-Left Language Support for the catalog
447 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
448 New stylesheets and other changes to the catalog to allow for 
449 better support of right-to-left (RTL) languages, such as Arabic.
450
451 Also add Arabic (Jordan) as a new supported language.
452
453
454
455
456 Ebook API integration
457 ^^^^^^^^^^^^^^^^^^^^^
458 Evergreen 2.12 supports partial integration with third-party APIs
459 provided by OverDrive and OneClickdigital.  When ebook API integration
460 is enabled, bibliographic records from these vendors that appear in your
461 OPAC will include vendor holdings and availability information.  Also,
462 when a user is logged in, the OPAC dashboard and My Account interface
463 will include information about that user's checkouts and holds for
464 supported vendors.
465
466 For API integration to work, you need to request API access from the
467 vendor and configure your Evergreen system according to the instructions
468 below.  You also need to configure the new `open-ils.ebook_api` service.
469
470 This feature assumes that you are importing MARC records supplied by the
471 vendor into your Evergreen system, using Vandelay or some other MARC
472 import method.  This feature does not search the vendor's online
473 collections or automatically import vendor records into your system; it
474 merely augments records that are already in Evergreen.
475
476 A future Evergreen release will add the ability for users to check out
477 titles, place holds, etc., directly via the OPAC.
478
479 Ebook API service configuration
480 +++++++++++++++++++++++++++++++
481 This feature uses the new `open-ils.ebook_api` OpenSRF service.  This
482 service must be configured in your `opensrf.xml` and `opensrf_core.xml`
483 config files for ebook API integration to work.  See
484 `opensrf.xml.example` and `opensrf_core.xml.example` for guidance.
485
486 OverDrive API integration
487 +++++++++++++++++++++++++
488 Before enabling OverDrive API integration, you will need to request API
489 access from OverDrive.  OverDrive will provide the values to be used for
490 the following new org unit settings:
491
492   * *OverDrive Basic Token*: The basic token used for API client
493     authentication.  To generate your basic token, combine your client
494     key and client secret provided by OverDrive into a single string
495     ("key:secret"), and then base64-encode that string.  On Linux, you
496     can use the following command: `echo -n "key:secret" | base64 -`
497   * *OverDrive Account ID*: The account ID (a.k.a. library ID) for your
498     OverDrive API account.
499   * *OverDrive Website ID*: The website ID for your OverDrive API
500     account.
501   * *OverDrive Authorization Name*: The authorization name (a.k.a.
502     library name) designated by OverDrive for your library.  If your
503     OverDrive subscription includes multiple Evergreen libraries, you
504     will need to add a separate value for this setting for each
505     participating library.
506   * *OverDrive Password Required*: If your library's OverDrive
507     subscription requires the patron's PIN (password) to be provided
508     during patron authentication, set this setting to "true."  If you do
509     not require the patron's PIN for OverDrive authentication, set this
510     setting to "false."  (If set to "true," the password entered by a
511     patron when logging into the OPAC will be cached in plain text in
512     memcached.)
513   * *OverDrive Discovery API Base URI* and *OverDrive Circulation API
514     Base URI*: By default, Evergreen uses OverDrive's production API, so
515     you should not need to set a value for these settings.  If you want
516     to use OverDrive's integration environment, you will need to add the
517     appropriate base URIs for the discovery and circulation APIs.  See
518     OverDrive's developer documentation for details.
519   * *OverDrive Granted Authorization Redirect URI*: Evergreen does not
520     currently support granted authorization with OverDrive, so this
521     setting is not currently in use.
522
523 For more information, consult the
524 https://developer.overdrive.com/docs/getting-started[OverDrive API
525 documentation].
526
527 To enable OverDrive API integration, adjust the following OPAC settings
528 in config.tt2:
529
530   * `ebook_api.enabled`: set to "true".
531   * `ebook_api.overdrive.enabled`: set to "true".
532   * `ebook_api.overdrive.base_uris`: list of regular expressions
533     matching OverDrive URLs found in the 856$9 field of older OverDrive
534     MARC records.  As of fall 2016, OverDrive's URL format has changed,
535     and the record identifier is now found in the 037$a field of their
536     MARC records, with "OverDrive" in 037$b.  Evergreen will check the
537     037 field for OverDrive record identifiers; if your system includes
538     older-style OverDrive records with the record identifier embedded in
539     the 856 URL, you need to specify URL patterns with this setting.
540
541 OneClickdigital API integration
542 +++++++++++++++++++++++++++++++
543 Before enabling OneClickdigital API integration, you will need to
544 request API access from OneClickdigital.  OneClickdigital will provide
545 the values to be used for the following new org unit settings:
546
547   * *OneClickdigital Library ID*: The identifier assigned to your
548     library by OneClickdigital.
549   * *OneClickdigital Basic Token*: Your client authentication token,
550     supplied by OneClickdigital when you request access to their API.
551
552 For more information, consult the
553 http://developer.oneclickdigital.us/[OneClickdigital API documentation].
554
555 To enable OneClickdigital API integration, adjust the following OPAC
556 settings in config.tt2:
557
558   * `ebook_api.enabled`: set to "true".
559   * `ebook_api.oneclickdigital.enabled`: set to "true".
560   * `ebook_api.oneclickdigital.base_uris`: list of regular expressions
561     matching OneClickdigital URLs found in the 859$9 field of your MARC
562     records.  Evergreen uses the patterns specified here to extract
563     record identifiers for OneClickdigital titles.
564
565 Additional configuration
566 +++++++++++++++++++++++++++++++
567 Evergreen communicates with third-party vendor APIs using the new
568 `OpenILS::Utils::HTTPClient` module.  This module is configured using
569 settings in `opensrf.xml`.  The default settings should work for most
570 environments by default, but you may need to specify a custom location
571 for the CA certificates installed on your server.  You can also disable
572 SSL certificate verification on HTTPClient requests altogether, but
573 doing so is emphatically discouraged.
574
575
576
577 Links to Other Formats and Editions
578 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
579 The record summary pages in the catalog will now link to other formats and
580 editions of a title. The links will allow users to quickly jump to another
581 format of the title or an edition written in another language. 
582
583
584
585
586
587 Metarecord Search Improvements
588 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
589 This release brings several improvement to the Group Formats and Editions
590 search. 
591
592  * Limiters on the advanced search page can now be successfully applied to 
593 Group Formats and Editions searches,
594  * Electronic resources are now retrievable through these searches,
595  * Paged navigation has improved.
596
597
598
599
600 Allow Metarecord Search by default
601 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
602 Before the TPAC, a site could configure the public catalog to use metarecord searching
603 by default, via a configuration file.  Here we bring that back.
604
605 A new setting called search.metarecord_default is present in
606 templates/opac/parts/config.tt2 to enable this feature.  By setting this to
607 a true value (normally 1) the TPAC will silently include the #metabib search
608 modifier in the search form on any interfaces that do not have a UI component
609 that allows the user to control the setting.
610
611
612
613 RDA Improvements
614 ^^^^^^^^^^^^^^^^
615  * Author fields are now normalized to strip ending periods so that authors from
616 RDA and non-RDA records are collapsed in browse and facet headings.
617  * All author/contributor roles will now display in the record detail page.
618 Previously, some of the roles were omitted or were duplicated.
619
620
621 Obalkyknih.cz Integration
622 ^^^^^^^^^^^^^^^^^^^^^^^^^
623 Evergreen now integrates with Czech added content provider obalkyknih.cz. A new
624 setting called obalkyknih_cz.enabled is available in
625 templates/opac/parts/config.tt2 to enable this new feature.
626
627
628 Acknowledgments
629 ---------------
630 The Evergreen project would like to acknowledge the following
631 organizations that commissioned developments in this release of
632 Evergreen:
633
634 * Bibliomation
635 * British Columbia Libraries Cooperative
636 * C/W MARS
637 * Georgia PINES
638 * King County Library System
639 * Linn Libraries Consortium
640 * MassLNC
641 * Pennsylvania Integrated Library System
642 * Pioneer Library System
643
644 We would also like to thank the following individuals who contributed
645 code, translations, documentations patches and tests to this release of
646 Evergreen:
647
648 * Adam Bowling
649 * Anahi Valdez
650 * Ben Shum
651 * Bill Erickson
652 * Billy Horn
653 * Blake Henderson
654 * Bob Wicksall
655 * Chris Sharp
656 * Christine Burns
657 * Christine Morgan
658 * Clare Sobotka
659 * Dan Pearl
660 * Dan Scott
661 * Dan Wells
662 * Darrell Rodgers
663 * Debbie Luchenbill
664 * Eva Cerninakova
665 * Fares Othman
666 * Galen Charlton
667 * Jakub Kotrla
668 * Jane Sandberg
669 * Jason Boyer
670 * Jason Etheridge
671 * Jason Stephenson
672 * Jeanette Lundgren
673 * Jeff Davis
674 * Jeff Godin
675 * Jennifer Pringle
676 * Jillianne Presley
677 * Jim Keenan
678 * Job Diógenes Ribeiro Borges
679 * Jonathan Schatz
680 * Josh Stompro
681 * Kate Butler
682 * Kathy Lussier
683 * Kyle Huckins
684 * Linda Jansová 
685 * Michele Morgan
686 * Michelle Purcell
687 * Mike Rylander
688 * Nawras Othman
689 * Remington Steed
690 * Rogan Hamby
691 * Terran McCanna
692 * Thomas Berezansky
693 * Victoria Lewis
694
695 We also thank the following organizations whose employees contributed
696 patches:
697
698 * British Columbia Libraries Cooperative
699 * Catalyst DevWorks
700 * C/W MARS
701 * Emerald Data Networks, Inc.
702 * Equinox Open Library Initiative
703 * Georgia PINES
704 * Indiana State Library
705 * The Institute for the Study of Totalitarian Regimes, Prague
706 * Jordanian Library and Information Association
707 * King County Library System
708 * Knihovna Jabok
709 * Lake Agassiz Regional Library
710 * Laurentian University
711 * Linn-Benton Community College
712 * MassLNC
713 * Merrimack Valley Library Consortium
714 * MOBIUS Consortium
715 * National Library of the Czech Republic
716 * North of Boston Library Exchange
717 * Pioneer Library System
718 * Rodgers Memorial Library
719 * Sigio
720 * Traverse Area District Library
721
722
723 We regret any omissions.  If a contributor has been inadvertently
724 missed, please open a bug at http://bugs.launchpad.net/evergreen/
725 with a correction.
726