1. Evergreen 3.17.5
This release contains bug fixes and documentation fixes improving on Evergreen 3.17.4.
1.1. Upgrade Notes
The following items require running a database upgrade script:
-
Fixes hint_opt_in_check JOIN logic for event_output columns (Bug 2144042)
1.2. Administration
-
Fixes hint_opt_in_check JOIN logic for event_output columns (Bug 2144042)
1.3. Cataloging
-
Fixes case sensitivity filters on the holdings template grid. (Bug 2165427)
1.4. Circulation
-
Restores the missing Patron Alerts Stop page in Angular circulation. (Bug 2149847)
1.5. Public Catalog
-
Fixes a stray gap below the footer on public catalog search results pages. (Bug 2164784)
-
Updates instances of "checkin" and "check-in" to "check In" for patrons, staff and documentation. (Bug 1853064)
-
opensrf.xml → open-ils.search block now has the missing cache_timeout setting for reference. Default has always been 300 seconds. (Bug 2165411)
1.6. Staff Interface
-
Restores "Share Depth" dropdown menu in AngularJS interfaces. (Bug 2114860)
1.7. Acknowledgements
We would like to thank the following individuals who contributed code, testing, documentation, and patches to the 3.17.5 point release of Evergreen:
-
Chris Sharp
-
Dan Briem
-
Hannah Darcy
-
Hannah Margolis
-
Ian Skelskey
-
Jane Sandberg
-
Jason Stephenson
-
Michele Morgan
-
Steven Mayo
-
Terran McCanna
Release Team:
-
Andrea Buntz Neiman
-
Blake Graham-Henderson
-
Gina Monti
-
Martha Driscoll
The following organizations sponsored development in 3.17.5:
-
Evergreen Collaborative Development Initiative
2. Evergreen 3.17.4
This is a security release that fixes several vulnerabilities, including ones that allow the remote execution of arbitrary SQL statements in the Evergreen database as well as cross-site scripting vulnerabilities.
We strongly recommend immediate installation of this security release.
The security bug fixed in this release is:
-
Bug 2150054 - patching an XSS vulnerability
This release also includes normal bugfixes.
2.1. Cataloging
-
Restores descending sort order to Holdings Editor parts drop down. (Bug 2037674)
2.2. Circulation
-
Check every profile for edit permissions so the Angular patron editor save button isn’t disabled incorrectly. (Bug 2081327)
-
Fixes linking from Angular Holds View grid. (Bug2161465)
-
Fixes new search button in Angular patron interface. (Bug 2161145)
-
Orders Angular self check checkouts in reverse chronological order so the patron sees the most recent checkout at the top of the list. (Bug 2148370)
2.3. Course Reserves
-
Adds a confirmation dialog box allowing user to continue/cancel course deletion. (Bug 1972925)
2.4. Public Catalog
-
Limits OPAC StackMap loading to pages with holdings tables to reduce unnecessary DOM polling overhead. (Bug 2162846)
2.5. Acknowledgements
We would like to thank the following individuals who contributed code, testing, documentation, and patches to this security release of Evergreen:
-
Andrea Buntz Neiman
-
Blake Graham-Henderson
-
Dan Briem
-
Eva Cerniňáková
-
Galen Charlton
-
Hannah Margolis
-
Ian Skelskey
-
Jane Sandberg
-
Jason Stephenson
-
John Amundson
-
Michele Morgan
-
Mike Rylander
-
Steven Mayo
-
Tara Kunesh
3. Evergreen 3.17.3
This release contains bug fixes and documentation fixes improving on Evergreen 3.17.2.
3.1. Upgrade Notes
The following items require running a database upgrade script:
-
Update documentation and YAOUS group for circ.holds.calculated_age_proximity. (Bug 2146576)
3.2. Acquisitions
-
EDI message send and receive via SFTP now honors the port specification in the hostname, if supplied. Example: sftp://host.domain.tld:2222. (Bug 2154387)
-
Fixes an issue where SFTP login failures would cause the acquisitions EDI fetcher to get "stuck" and stop retrieving files. (Bug 2060702)
-
Add a new flag to edi_order_pusher.pl to provide the earliest PO activation date that should be processed. (Bug 1911786)
3.3. Administration
-
Enable/disable the Course Reserves - Reopen Selected button appropriately. (Bug 2144600)
-
Fixes CircIsOpen validator to check for circulation while A/T is running (Bug 2160540)
-
Angular self-check now respects the email checkout receipts by default setting. (Bug 2134541)
-
Update documentation and YAOUS group for circ.holds.calculated_age_proximity. (Bug 2146576)
3.4. Cataloging
-
Included newly created copies in Holdings Editor filter. (Bug 2152257)
-
Fix error that occured when trying to edit or view more information about the "Available" status in the Item Status admin screen. (Bug 2151838)
-
Show confirmation toast when adding to record bucket from search (Bug 2145192)
-
Fixes issue with Item Alerts dropdown (Bug 2092956)
-
Makes the naming of Holdings Template Editor consistent (Bug 2110923)
-
Fix glitch in record buckets favoriting feature (Bug 2115505)
-
Fixes Carousels interface for two or more staff members administering Carousels from personal buckets. (Bug 2146852)
3.5. Circulation
-
Restore the Photo URL and Patron Preferred Language fields in the Angular patron registration and edit interface, and display the patron photo and preferred language in the patron summary. (Bug 2088319)
-
Increases retrieval speed in Items Out by suppressing cursors in certain queries (Bug 2106679)
-
Fixes issues in Edit Due Date modals (Bug 2149841)
-
Fixes issue with Angular Self Check idle timer (Bug 2150808)
3.6. Developer
-
Make automated Angular tests more reliable. (Bug 2156670)
-
Resolves an issue installing prerequisites from the Comprehensive Perl Archive Network. (Bug 2158478)
-
Fixes npm audit test in angularjs (Bug 1992529)
3.7. Documentation
-
Updates documentation description and note for Auto-Override Permitted Hold Blocks (Patrons). (Bug 1658173)
-
Adds mention of Hide the Clear These Holds button to basic_holds.adoc
-
Adds Staff Catalog Visible to describing_your_organization.adoc
-
Adds Hide the Clear These Holds button to librarysettings.adoc
-
Adds staff.search global flags to table in global_flags.adoc
-
Updates info on Other Settings tab in my_account.adoc
-
Updates to using_the_public_access_catalog.adoc
-
Updates docs for part hold menu, hold group functionality
-
Adds Angular grid info to staff_client-column_filters.adoc including update for print/download menu options disabling when there are no grid results
-
Updates to staff_portal_page.adoc
-
Updates image & tag in circing_uncataloged_materials.adoc
-
Updates kids_opac.adoc, including updated screenshots
3.8. Public Catalog
-
Provides default topic image if none specified. (Bug 2154503)
-
Removes quotation marks from titles in OPAC course details page. (Bug 1909015)
-
Hides "fines accruing" in OPAC when fines are no longer accruing. (Bug 2147229)
3.9. Staff Interface
-
Don’t use a cached version of a print template if a newer once is available. (Bug 1958910)
-
Fixes Staff SSO redirect to 404. (Bug 2141953)
-
Changes the Angular date/time picker to no longer automatically open its dropdown whenever the widget gets focus. (Bug 2150659)
-
Fixes Angular keyboard shortcuts (Bug 2158946)
-
Makes top navigational bar menu icons less intense. (Bug 1999408)
-
Changes "Request Items" to "Place Item Holds" throughout the staff catalog for consistency with the OPAC interfaces. (Bug 1839883)
3.10. Acknowledgements
We would like to thank the following individuals who contributed code, testing, documentation, and patches to the 3.17.3 point release of Evergreen:
-
Andrea Buntz Neiman
-
Bill Erickson
-
Blake Graham-Henderson
-
Brian Kennedy
-
Carol Witt
-
Chris Amorosi
-
Chris Sharp
-
Christine Burns
-
Dan Briem
-
Elizabeth Davis
-
Eva Cerniňáková
-
Galen Charlton
-
Gina Monti
-
Hannah Margolis
-
Ian Skelskey
-
Jane Sandberg
-
Jason Stephenson
-
Jennifer Davis
-
Josh Stompro
-
Ken Cox
-
Llewellyn Marshall
-
Martha Driscoll
-
Mary Llewellyn
-
Michele Morgan
-
Mike Rylander
-
Stephanie Leary
-
Steven Mayo
-
Susan Morrison
-
Tara Kunesh
-
Terran McCanna
-
Tiffany Little
4. Evergreen 3.17.2
This release contains bug fixes and documentation fixes improving on Evergreen 3.17.1.
4.1. Upgrade Notes
The following items require running a database upgrade script:
-
Fix a data type mismatch error when logging out of the RESTful API using application/json Accept header. (Bug 2153793)
-
Angular circulation: make patron summary and sidebar sticky. (Bug 2140606)
4.2. Administration
-
Fixes an issue where RESTful API rendered responses may not be rendered correctly and quiets an uninitialized value warning. (Bug 2153806)
-
Fix a data type mismatch error when logging out of the RESTful API using application/json Accept header. (Bug 2153793)
4.3. Circulation
-
Angular circulation: make patron summary and sidebar sticky. (Bug 2140606)
4.4. Staff Interface
-
Fixes bug that caused patron search results to always be sorted primarily by penalties. (Bug 2153879)
-
Ports the pending patron interface to Angular. (Bug 2146953)
-
Fixes Angular pending patron test failures (Bug 2154783)
4.5. Miscellaneous
-
Adding ECDI as a sponsor for 3.17.0 feature (Bug 2155271)
4.6. Acknowledgements
We would like to thank the following individuals who contributed code, testing, documentation, and patches to the 3.17.2 point release of Evergreen:
-
Andrea Buntz Neiman
-
Bill Erickson
-
Chris Sharp
-
Dan Briem
-
Galen Charlton
-
Gina Monti
-
Ian Skelskey
-
JC Landry
-
Jane Sandberg
-
Jason Stephenson
-
John Amundson
-
Michele Morgan
-
Mike Rylander
5. Evergreen 3.17.1
This is a security release that fixes several vulnerabilities, including ones that allow the remote execution of arbitrary SQL statements in the Evergreen database as well as cross-site scripting vulnerabilities.
We strongly recommend immediate installation of this security release.
The security bugs fixed in this release are:
These bugs will be made publicly visible after the security release is generally available.
This release also includes normal bugfixes.
5.1. Upgrade Notes
Normal upgrade procedures can be used for this security release. We recommend that all services and Apache be restarted after installation.
If you use the eg-pbx-mediator.pl service to have Evergreen place phone calls via Asterisk, please note that it now binds to localhost by default. Access to the RPC-XML service provided by eg-pbx-mediator.pl should be granted only to the server(s) that process your Action Trigger events.
In addition, if you have customized any of the following templates, please compare your customizations with the stock versions and apply the changes:
-
Open-ILS/src/templates-bootstrap/kpac/results.tt2 -
Open-ILS/src/templates-bootstrap/opac/parts/anon_list.tt2 -
Open-ILS/src/templates-bootstrap/opac/parts/bookbag_actions.tt2 -
Open-ILS/src/templates-bootstrap/opac/parts/misc_util.tt2 -
Open-ILS/src/templates-bootstrap/opac/parts/result/table.tt2 -
Open-ILS/src/templates-bootstrap/opac/sms_cn.tt2 -
Open-ILS/src/templates/opac/parts/anon_list.tt2 -
Open-ILS/src/templates/opac/parts/bookbag_actions.tt2 -
Open-ILS/src/templates/opac/parts/misc_util.tt2 -
Open-ILS/src/templates/opac/parts/result/table.tt2 -
Open-ILS/src/templates/opac/sms_cn.tt2
5.2. Other improvements
5.2.1. Administration / Developer
-
Correct datatype of text fields that serve as primary keys (Bug 2078287)
-
Remove unused library setting
circ.holds.target_holds_by_org_unit_weight(Bug 1885140) -
Add author tests to verify that DB update scripts assert their DB revision number correctly (Bug 2083949)
5.2.2. Circulation
-
Test Password in the Angular Circulation patron page now fills in the username and barcode. (Bug 2152653)
-
Adds legal name to the Angular patron summary. (Bug 2146400)
-
Applies the default internet access level setting value in the Angular patron registration. (Bug 2146591)
-
Adds refresh penalties to the Angular patron sidebar. (Bug 2139307)
5.2.3. Public Catalog
-
Updates landmarks, headings, and ARIA labels for public catalog course browse (Bug 2115686)
5.3. Acknowledgments
The Evergreen Project would like to thank the following individuals who contributed code, testing, and other assistance with this security release:
-
Andrea Buntz Neiman
-
Dan Briem
-
Galen Charlton
-
Gina Monti
-
Hannah Margolis
-
Jane Sandberg
-
Josh Stompro
-
Martha Driscoll
-
Michele Morgan
-
Mike Rylander
-
Sarah Moody
-
Stephanie Leary
-
Susan Morrison
We would also like to thank Brian A. Egge for responsibly reporting the vulnerabilities included in this release.
6. Evergreen 3.17.0
This is a major functionality release of Evergreen.
6.1. Upgrade notes
6.1.1. Removal of open-ils.permacrud
The open-ils.permacrud service has been removed from this release. To remove it
from existing installations, do the following:
-
Update
opensrf_core.xmlto removeopen-ils.permacrudfrom the list of services on the public router. -
Update
opensrf.xmlto remove the entire<open-ils.permacrud>element from the<apps>element and remove<appname>open-ils.permacrud</appname>from any<activeapps>elements where it is present.
If you have the perldoc command installed, you can use the following
command to locate the path on disk of the PermaCrud.pm file, which
is no longer required and can be removed:
perldoc -l OpenILS::Application::PermaCrud
6.1.2. New Library Settings
Evergreen 3.17.0 includes the following new library settings:
-
Stackmap: Enable (
opac.stackmap_enable) -
Stackmap: Identifier (
opac.stackmap.identifier) -
When aging circulations do not retain the year from patron date of birth (
circ.do_not_retain_year_of_birth_on_aged) -
When aging circulations do not retain the patron postal code (
circ.do_not_retain_post_code_on_aged) -
When aging holds do not retain the year from patron date of birth (
holds.do_not_retain_year_of_birth_on_aged) -
When aging holds do not retain the patron postal code (
holds.do_not_retain_year_of_birth_on_aged)
6.1.3. New Permissions
Evergreen 3.17.0 does not include any new permissions per se, but
does ensure that a permission, ADMIN_OPENAPI, that was meant to be
added in a previous release is present.
6.1.4. Changes to Dependencies
This release:
-
Adds support for Debian 13 "Trixie" (Bug 2120581)
-
Adds support for PostgreSQL 18 (Bug 2131086)
-
Removes support for PostgreSQL 13 (Bug 2131086)
6.2. New Features, Enhancements, and Improvements
Evergreen 3.17.0 contains the following improvements over prior releases of Evergreen. Please note that if a bug was fixed in any prior release of Evergreen, it will generally not appear in these release notes.
6.2.1. Cataloging
-
Reimplement a slim version of the previous Working Items list to allow applying specific changes to user-selected subsets of items in the Holdings Editor. (Bug 1998645)
-
Item Buckets can now be imported from CSV files (Bug 1208093
-
Adds five item import attributes for use during MARC import: floating, loan duration, fine level, age-based hold protection, and quality (Bug 1376427)
-
Monograph parts that have been marked as deleted can now be displayed in the parts grid (Bug 2120735)
-
Restores the ability to Unset some fields in the Holdings Editor. (Bug 2121686)
6.2.2. Circulation
Library Group-based Hold and Circulation Policy Configuration
-
Add Library Group-based hold and circ policy configuration, and the ability to clone individual hold and circ policies. (Bug 1968186)
Hold and circulation policies now include optional Library Group fields corresponding to each Library field. For example, hold policies now have a "Pickup Library Group" parallel to "Pickup Library".
The new fields allow non-hierarchical grouping of organizational units in policy definition. These can be used either instead of, or in combination with, the library fields, the latter as a way to provide group-based specialization policies. Library Group fields are also available when creating policy weights.
For example, consider a consortium that does not offer consortium-wide resource sharing but has some members who share among themselves. The new Library Group fields can be used to implement such arrangements without having to define policies for each combination of participating libraries.
Improvements to the Hold Policy Editor
The hold policy editor in Location Administration now visually separates the policy match criteria from the policy outcome values.
Circulation and Hold Policy Cloning
Both hold and circ policies can now be cloned directly, lowering the overhead of creating sets of policies. When cloning circ policies, any extant limit sets on the to-be-cloned policy can be included in the clone, adjusted at the time of clone creation, or ignored completely. Cloning is initiated via the Action (and right-click) menu for selected rows, and is restricted to a single policy at a time to reduce confusion.
Opt Out of Year and Postal Code in Aged Transactions
Evergreen now supports additional library settings to control what information is included when you age holds and circulations. Now the year of the patron’s birthdate and postal code can be set to null rather than populate the aged transaction tables when a transaction is aged. The following settings control this behavior for holds and circulations respectively:
-
When aging circulations do not retain the year from patron date of birth (
circ.do_not_retain_year_of_birth_on_aged) -
When aging circulations do not retain the patron postal code (
circ.do_not_retain_post_code_on_aged) -
When aging holds do not retain the year from patron date of birth (
holds.do_not_retain_year_of_birth_on_aged) -
When aging holds do not retain the patron postal code (
holds.do_not_retain_year_of_birth_on_aged)
If you wish to not retain any of these fields on existing aged holds and circulations you should run the following SQL on the database. to remove postal codes on aged holds:
UPDATE action.aged_hold_request SET usr_post_code = NULL WHERE usr_post_code IS NOT NULL;
To remove birth years on aged holds:
UPDATE action.aged_hold_request SET usr_birth_year = NULL WHERE usr_birth_year IS NOT NULL;
To remove postal codes on aged circulations:
UPDATE action.aged_circulation SET usr_post_code = NULL WHERE usr_post_code IS NOT NULL;
To remove birth years on aged circulations:
UPDATE action.aged_circulation SET usr_birth_year = NULL WHERE usr_birth_year IS NOT NULL;
Improvements to the Patron Summary Pane
-
User settings such as default phone number, default hold pickup library, and hold notification format, are now displayed as part of the patron summary pane when searching patrons or retrieving a patron record.
-
The privacy waiver is now more prominent on patron summary bar (Bug 1897121)
-
The patron summary now includes the number of overdue items in the patron’s group if other patrons in the groups have overdue items. (Bug 2043051)
Other Improvements
-
Adds actions to the items out, renew, and checkin interfaces to email receipts to the patron. (Bug 1783642)
-
Staff can delete inactive patron barcodes via the staff interface. In order to do this, the staff member must have both the
UPDATE_PATRON_PRIMARY_CARDandUPDATE_PATRON_ACTIVE_CARDpermissions at the patron’s home library. (Bug 1917761) -
Adds option to set hold expiration at time of hold placement in the public catalog. (Bug 2119563)
6.2.3. Client
Staff client locales configurable in the database
Previously, system administrators could define which locales should display
in the staff client by editing an Angular file called environment.prod.ts.
In this release, these locales are instead configured in the config.i18n_locale
database table. To enable the cs-CZ locale in the staff client, for example,
you can issue this SQL query:
UPDATE config.i18n_locale SET staff_client=TRUE WHERE code='cs-CZ';
Any locales with a true staff_client value will appear in the locale picker, and
will be listed as options when translating terms within the staff client.
Other Improvements
-
Allows case-insensitive grid filter searching for text columns in tables with low cardinality, except log or history tables. (Bug 1910424)
-
The search box in Angular Reporter is changed from "Search templates for string" to "Search templates for keyword/text" to be more user-friendly. (Bug 2139299)
6.2.4. Public Catalog
ChiliFresh Cover Images
ChiliFresh is now available as an added content source for cover
images. To enable (after getting a subscription), edit opensrf.xml
and set the added_content/module value to OpenILS::WWW::AddedContent::Chilifresh.
The added_content/base_url value will also need to be set, typically to https://content.chilifresh.com/.
If you are supplied a "generic" code by ChiliFresh, that goes in the
added_content/generic element in opensrf.xml.
Ability to enable Stackmap added content
Creates two library settings to allow easier management of added content from Stackmap.
-
Stackmap: Enable (true/false)
-
Stackmap: Identifier (account code provided by Stackmap)
Other Improvements
-
Accessibility updates to Preferences > Other Settings page. (Bug 2115525)
-
Removes autofocus from the public catalog basic search form keyword input (Bug 2115443)
6.2.5. Architecture and API
Removal of open-ils.permacrud service
The deprecated service open-ils.permacrud has been removed.
Any remaining external clients using that service should switch
to using the open-ils.pcrud service.
6.2.6. API
Notification Opt-Ins by Notice Type API / Settings
Creates a set of notification group entries to collect user settings related to opting in to different types of notices (email, SMS, phone, print).
Adds an API which reports on which notice types a user is opted in to and allows for batch opt in/out for a collection of notice types.
Handles Action/Trigger opt-in user settings and the generic opac.hold_notify user setting which combines different notice types into a single setting.
Add Action/Trigger notification opt-in user settings to one of the provided setting groups to enable it for global opt in/out.
This example sets the value of the specified notice types and returns opt-in information about all known notice types for the provided (or logged-in) user.
_default_hold_notify is a special type which indicates whether the
notification is opted in/out via the generic opac.hold_notify user setting.
This is not reported as opac.hold_notify since its value is not boolean like
other opt-in settings.
If all notices of a given grouping (e.g. sms) are true, the user is in effect opted in to sms notices. If the values are mixed, which can happen via other work flows / staff client, it’s up to the caller to decide how to interpret the data.
In this example "email.notices.all" and "sms.notices.all" are local test settings.
For internal consistency, this feature uses the label/code "sms" as a stand-in for text notices in general.
6.2.7. Miscellaneous
-
Adds a missing permission (
ADMIN_OPENAPI) to allow administration of the OpenAPI settings. (Bug 2148133) -
Removes extraneous email-templates:
reporter-successandreporter-fail(Bug 1761891) -
Fixes Angular string export for translators (Bug 2150276)
-
Fix crash that can occur when Quipu eRENEW attempts to update certain patron records. (Bug 2143938)
-
Fixes issue where recall holds on items with a monograph part fail to be targeted (Bug 2130052)
-
Fixes issue where force holds on items with a monograph part fail to be targeted (Bug 1838069)
-
Fixes force-type targeting issue that alternates between targeting and not targeting an item. (Bug 2131948)
-
Prevent simplistic scraper bots from wasting resources. (Bug 2113979)
-
Fixes bug where the age hold protect value was not included in CSV exports from the Item Table. (Bug 2146564)
-
Fix erroneous number on my list count. (Bug 2138265)
-
Fixes a security issue with certain database query generation methods (Bug 2147196)
-
Fixes a typo in the output of the
/openils/bin/api_ctlprogram. (Bug 2147136) -
Adds missing cancel if not filled by alert dialog in staff client. (Bug 2147225)
-
Removes references to the "tundra" CSS class in the TPAC/BOOPAC (Bug 2056771)
-
Fixes issue where when a staff member places a hold for a patron via the Traditional (embedded) Catalog, the "No configured email address" warning would show up inappropriately. (Bug 2148326)
-
Fixes issue where some invoices charge twice when calculating warning and stop percentages. (Bug 2088125)
-
Restores automatic focus on the barcode input after patron logout in the Angular self-check. (Bug 2127936)
-
Prevents duplicate patron self-registration submissions by double click. (Bug 1913626)
6.2.8. Development
Angular Upgrade for Staff Interface
The Angular staff interface now uses version 21 of Angular, upgrading from version 18.
This change is an internals-and-plumbing change that should not result in any visible changes to the staff interface.
Angular CLI No Longer Installed Globally
The Evergreen installation process no longer installs
the Angular CLI globally. All angular commands are
still available with the npx prefix. For example,
ng build is now npx ng build.
Anybody who relies on the Angular CLI being installed
globally can install it with npm i -g @angular/cli@^18.0
Other Improvements
-
The Angular unit test suite is now run as a GitHub action (Bug 2116743)
-
Add an option to speed up prerequisite installation. (Bug 2125838)
6.3. Acknowledgments
The Evergreen project would like to acknowledge the following organizations that commissioned developments in this release of Evergreen:
-
BC Libraries Cooperative
-
Evergreen Collaborative Development Initiative
-
PaILS
We would also like to thank the following individuals who contributed code, translations, documentations patches and tests to this release of Evergreen:
-
Andrea Buntz Neiman
-
Bill Erickson
-
Blake Graham-Henderson
-
Brett French
-
Brian Kennedy
-
Chris Sharp
-
Christine Burns
-
Christine Morgan
-
Dan Briem
-
Devon Bates
-
Elizabeth Davis
-
Galen Charlton
-
Gina Monti
-
Hannah Darcy
-
Ian Skelskey
-
Jane Sandberg
-
Jason Boyer
-
Jason Etheridge
-
Jason Stephenson
-
Jeff Davis
-
Jeff Godin
-
Jennifer Pringle
-
Jennifer Weston
-
Josh Stompro
-
Katie Greenleaf Martin
-
Lindsay Stratton
-
Llewellyn Marshall
-
Martha Driscoll
-
Mary Llewellyn
-
Michele Morgan
-
Millissa Macomber
-
Mike Rylander
-
Ranelle Irwin
-
Rogan Hamby
-
Sarah Cruz
-
Scott Angel
-
Shula Link
-
Stephanie Leary
-
Steven Mayo
-
Susan Morrison
-
Tara Kunesh
-
Terran McCanna
-
Tiffany Little
-
Ying-Hsiang Huang
We also thank the following organizations whose employees contributed patches, documentation, and testing:
-
Bibliomation
-
CW MARS
-
Equinox Open Library Initiative
-
GPLS
-
KCLS
-
LARL
-
MOBIUS
-
PaILS
-
NC Cardinal
-
NOBLE
-
TADL
We regret any omissions. If a contributor has been inadvertently missed, please open a bug at https://bugs.launchpad.net/evergreen/ with a correction.