ABCDEFGHIJKLMNOPQRSTUVWX
1
Release Notes Summary -- Evergreen 3.17updated:06/08/2026
2
Each new release contains bug fixes improving on previous releases.
status:Current - Stable
3
Full 3.17 Release Notes
Can Filter Version
4
5
Release DateEvergreen VersionCategoryModuleFeatureDescriptionBug IDBug LinkNew Configurable Element
6
5/13/20263.17.beta --> 3.17.0Upgrade notesThe `open-ils.permacrud` service has been removed from this release. To remove it
from existing installations, do the following:

* Update `opensrf_core.xml` to remove `open-ils.permacrud` from
the list of services on the public router.
* Update `opensrf.xml` to 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:
7
5/13/20263.17.beta --> 3.17.0Upgrade notesStackmap: Enable (opac.stackmap_enable)Library Setting
8
5/13/20263.17.beta --> 3.17.0Upgrade notesStackmap: Identifier (opac.stackmap.identifier)Library Setting
9
5/13/20263.17.beta --> 3.17.0Upgrade notesWhen aging circulations do not retain the year from patron date of birth (circ.do_not_retain_year_of_birth_on_aged)Library Setting
10
5/13/20263.17.beta --> 3.17.0Upgrade notesWhen aging circulations do not retain the patron postal code (circ.do_not_retain_post_code_on_aged)Library Setting
11
5/13/20263.17.beta --> 3.17.0Upgrade notesWhen aging holds do not retain the year from patron date of birth (holds.do_not_retain_year_of_birth_on_aged)Library Setting
12
5/13/20263.17.beta --> 3.17.0Upgrade notesWhen aging holds do not retain the patron postal code (holds.do_not_retain_year_of_birth_on_aged)Library Setting
13
5/13/20263.17.beta --> 3.17.0Upgrade notesAdds support for Debian 13 "Trixie"Bug 2120581
https://bugs.launchpad.net/evergreen/+bug/2120581
14
5/13/20263.17.beta --> 3.17.0Upgrade notesAdds support for PostgreSQL 18Bug 2131086
https://bugs.launchpad.net/evergreen/+bug/2131086
15
5/13/20263.17.beta --> 3.17.0Upgrade notesRemoves support for PostgreSQL 13Bug 2131086
https://bugs.launchpad.net/evergreen/+bug/2131086
16
5/13/20263.17.beta --> 3.17.0CatalogingReimplement a slim version of the previous Working Items list to allow applying specific changes to user-selected subsets of items in the Holdings EditorBug 1998645
https://bugs.launchpad.net/evergreen/+bug/1998645
17
5/13/20263.17.beta --> 3.17.0CatalogingItem Buckets can now be imported from CSV files Bug 1208093
https://bugs.launchpad.net/evergreen/+bug/1208093
18
5/13/20263.17.beta --> 3.17.0CatalogingAdds five item import attributes for use during MARC import: floating, loan duration, fine level, age-based hold protection, and qualityBug 1376427
https://bugs.launchpad.net/evergreen/+bug/1376427
19
5/13/20263.17.beta --> 3.17.0CatalogingMonograph parts that have been marked as deleted can now be displayed in the parts grid.Bug 2120735
https://bugs.launchpad.net/evergreen/+bug/2120735
20
5/13/20263.17.beta --> 3.17.0CatalogingRestores the ability to Unset some fields in the Holdings EditorBug 2121686
https://bugs.launchpad.net/evergreen/+bug/2121686
21
5/13/20263.17.beta --> 3.17.0CirculationLibrary Group-based Hold and Circulation Policy ConfigurationAdd Library Group-based hold and circ policy configuration, and the ability to clone individual hold and circ policiesBug 1968186
https://bugs.launchpad.net/evergreen/+bug/1968186
22
5/13/20263.17.beta --> 3.17.0CirculationLibrary Group-based Hold and Circulation Policy ConfigurationHold 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
23
5/13/20263.17.beta --> 3.17.0CirculationImprovements to the Hold Policy EditorThe hold policy editor in Location Administration now visually separates the policy match criteria from the policy outcome values
24
5/13/20263.17.beta --> 3.17.0CirculationCirculation and Hold Policy CloningBoth 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
25
5/13/20263.17.beta --> 3.17.0CirculationOpt Out of Year and Postal Code in Aged TransactionsEvergreen 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:Library Setting
26
5/13/20263.17.beta --> 3.17.0CirculationOpt Out of Year and Postal Code in Aged TransactionsWhen aging circulations do not retain the year from patron date of birth (circ.do_not_retain_year_of_birth_on_aged)Library Setting
27
5/13/20263.17.beta --> 3.17.0CirculationOpt Out of Year and Postal Code in Aged TransactionsWhen aging circulations do not retain the patron postal code (circ.do_not_retain_post_code_on_aged)Library Setting
28
5/13/20263.17.beta --> 3.17.0CirculationOpt Out of Year and Postal Code in Aged TransactionsWhen aging holds do not retain the year from patron date of birth (holds.do_not_retain_year_of_birth_on_aged)Library Setting
29
5/13/20263.17.beta --> 3.17.0CirculationOpt Out of Year and Postal Code in Aged TransactionsWhen aging holds do not retain the patron postal code (holds.do_not_retain_year_of_birth_on_aged)Library Setting
30
5/13/20263.17.beta --> 3.17.0CirculationOpt Out of Year and Postal Code in Aged TransactionsIf 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; ----Library Setting
31
5/13/20263.17.beta --> 3.17.0CirculationImprovements to the Patron Summary PaneUser settings such as default phone number, default hold
32
5/13/20263.17.beta --> 3.17.0CirculationImprovements to the Patron Summary Panepickup library, and hold notification format, are now displayed as part of the patron summary pane when searching patrons or retrieving a patron record
33
5/13/20263.17.beta --> 3.17.0CirculationImprovements to the Patron Summary PaneThe privacy waiver is now more prominent on patron summary barBug 1897121
https://bugs.launchpad.net/evergreen/+bug/1897121
34
5/13/20263.17.beta --> 3.17.0CirculationImprovements to the Patron Summary PaneThe patron summary now includes the number of overdue items in the patron's group if other patrons in the groups have overdue itemsBug 2043051
https://bugs.launchpad.net/evergreen/+bug/2043051
35
5/13/20263.17.beta --> 3.17.0CirculationOther ImprovementsAdds actions to the items out, renew, and checkin interfaces to email receipts to the patronBug 1783642
https://bugs.launchpad.net/evergreen/+bug/1783642
Email Receipts
36
5/13/20263.17.beta --> 3.17.0CirculationOther ImprovementsStaff can delete inactive patron barcodes via the staff interface. In order to do this the staff member must have both the UPDATE_PATRON_PRIMARY_CARD and UPDATE_PATRON_ACTIVE_CARD permissions at the patron's home libraryPermission
37
5/13/20263.17.beta --> 3.17.0CirculationOther ImprovementsAdds option to set hold expiration at time of hold placement in the public catalogBug 2119563
https://bugs.launchpad.net/evergreen/+bug/2119563
38
5/13/20263.17.beta --> 3.17.0ClientStaff client locales configurable in the databasePreviously, 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
39
5/13/20263.17.beta --> 3.17.0ClientOther ImprovementsAllows case-insensitive grid filter searching for text columns in tables with low cardinality, except log or history tablesBug 1910424
https://bugs.launchpad.net/evergreen/+bug/1910424
40
5/13/20263.17.beta --> 3.17.0ClientOther ImprovementsThe search box in Angular Reporter is changed from "Search templates for string" to "Search templates for keyword/text" to be more user-friendlyBug 2139299
https://bugs.launchpad.net/evergreen/+bug/2139299
41
5/13/20263.17.beta --> 3.17.0Public CatalogChiliFresh Cover ImagesChiliFresh 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
42
5/13/20263.17.beta --> 3.17.0Public CatalogAbility to enable Stackmap added contentCreates two library settings to allow easier management of added content from Stackmap. - Stackmap: Enable (true/false) - Stackmap: Identifier (account code provided by Stackmap)Library Setting
43
5/13/20263.17.beta --> 3.17.0Public CatalogOther ImprovementsAccessibility updates to Preferences > Other Settings pageBug 2115525
https://bugs.launchpad.net/evergreen/+bug/2115525
44
5/13/20263.17.beta --> 3.17.0Public CatalogOther ImprovementsRemoves autofocus from the public catalog basic search form keyword inputBug 2115443
https://bugs.launchpad.net/evergreen/+bug/2115443
45
5/13/20263.17.beta --> 3.17.0Architecture and APIRemoval of `open-ils.permacrud` serviceThe deprecated service open-ils.permacrud has been removed. Any remaining external clients using that service should switch to using the open-ils.pcrud service
46
5/13/20263.17.beta --> 3.17.0APINotification Opt-Ins by Notice Type API / SettingsCreates 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
47
5/13/20263.17.beta --> 3.17.0APINotification Opt-Ins by Notice Type API / SettingsConfigurationAdd Action/Trigger notification opt-in user settings to one of the provided setting groups to enable it for global opt in/outAction/Trigger
48
5/13/20263.17.beta --> 3.17.0APINotification Opt-Ins by Notice Type API / SettingsExample `srfsh` QueryThis 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. ------------- request open-ils.actor open-ils.actor.settings.notify.opt_ins.crud "AUTHTOKEN" 221 {"email": true, "phone": true, "sms": true} - - - - - - - - - - - - - - - - - - - - - - - - - - "sms": { "sms.notices.all": true, "_default_hold_notify": true }, "phone": { "_default_hold_notify": true }, "print": { "_default_hold_notify": false }, "email": { "_default_hold_notify": true, "email.notices.all": true } } ------------- _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
49
5/13/20263.17.beta --> 3.17.0APINotification Opt-Ins by Notice Type API / Settings"SMS" vs. TextFor internal consistency, this feature uses the label/code "sms" as a stand-in for text notices in general
50
5/13/20263.17.beta --> 3.17.0MiscellaneousAdds a missing permission (ADMIN_OPENAPI) to allow administration of the OpenAPI settingsBug 2148133
https://bugs.launchpad.net/evergreen/+bug/2148133
Permission
51
5/13/20263.17.beta --> 3.17.0MiscellaneousRemoves extraneous email-templates: reporter-success and reporter-failBug 1761891
https://bugs.launchpad.net/evergreen/+bug/1761891
52
5/13/20263.17.beta --> 3.17.0MiscellaneousFixes Angular string export for translatorsBug 2150276
https://bugs.launchpad.net/evergreen/+bug/2150276
53
5/13/20263.17.beta --> 3.17.0MiscellaneousFix crash that can occur when Quipu eRENEW attempts to update certain patron recordsBug 2143938
https://bugs.launchpad.net/evergreen/+bug/2143938
54
5/13/20263.17.beta --> 3.17.0MiscellaneousFixes issue where recall holds on items with a monograph part fail to be targetedBug 2130052
https://bugs.launchpad.net/evergreen/+bug/2130052
55
5/13/20263.17.beta --> 3.17.0MiscellaneousFixes issue where force holds on items with a monograph part fail to be targetedBug 1838069
https://bugs.launchpad.net/evergreen/+bug/1838069
56
5/13/20263.17.beta --> 3.17.0MiscellaneousFixes force-type targeting issue that alternates between targeting and not targeting an itemBug 2131948
https://bugs.launchpad.net/evergreen/+bug/2131948
57
5/13/20263.17.beta --> 3.17.0MiscellaneousPrevent simplistic scraper bots from wasting resourcesBug 2113979
https://bugs.launchpad.net/evergreen/+bug/2113979
58
5/13/20263.17.beta --> 3.17.0MiscellaneousFixes bug where the age hold protect value was not included in CSV exports from the Item TableBug 2146564
https://bugs.launchpad.net/evergreen/+bug/2146564
59
5/13/20263.17.beta --> 3.17.0MiscellaneousFix erroneous number on my list countBug 2138265
https://bugs.launchpad.net/evergreen/+bug/2138265
60
5/13/20263.17.beta --> 3.17.0MiscellaneousFixes a security issue with certain database query generation methodsBug 2147196
https://bugs.launchpad.net/evergreen/+bug/2147196
61
5/13/20263.17.beta --> 3.17.0MiscellaneousFixes a typo in the output of the /openils/bin/api_ctl programBug 2147136
https://bugs.launchpad.net/evergreen/+bug/2147136
62
5/13/20263.17.beta --> 3.17.0MiscellaneousAdds missing 'cancel if not filled by' alert dialog in staff clientBug 2147225
https://bugs.launchpad.net/evergreen/+bug/2147225
63
5/13/20263.17.beta --> 3.17.0MiscellaneousRemoves references to the "tundra" CSS class in the TPAC/BOOPACBug 2056771
https://bugs.launchpad.net/evergreen/+bug/2056771
64
5/13/20263.17.beta --> 3.17.0MiscellaneousFixes 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 inappropriatelyBug 2148326
https://bugs.launchpad.net/evergreen/+bug/2148326
65
5/13/20263.17.beta --> 3.17.0MiscellaneousFixes issue where some invoices charge twice when calculating warning and stop percentagesBug 2088125
https://bugs.launchpad.net/evergreen/+bug/2088125
66
5/13/20263.17.beta --> 3.17.0MiscellaneousRestores automatic focus on the barcode input after patron logout in the Angular self-checkBug 2127936
https://bugs.launchpad.net/evergreen/+bug/2127936
67
5/13/20263.17.beta --> 3.17.0MiscellaneousPrevents duplicate patron self-registration submissions by double clickBug 1913626
https://bugs.launchpad.net/evergreen/+bug/1913626
68
5/13/20263.17.beta --> 3.17.0DevelopmentAngular Upgrade for Staff InterfaceThe 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
69
5/13/20263.17.beta --> 3.17.0DevelopmentAngular CLI No Longer Installed GloballyThe 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
70
5/13/20263.17.beta --> 3.17.0DevelopmentOther ImprovementsThe Angular unit test suite is now run as a GitHub actionBug 2116743
https://bugs.launchpad.net/evergreen/+bug/2116743
71
5/13/20263.17.beta --> 3.17.0DevelopmentOther ImprovementsAdd an option to speed up prerequisite installationBug 2125838
https://bugs.launchpad.net/evergreen/+bug/2125838
72
5/20/20263.17.1Administration / DeveloperCorrect datatype of text fields that serve as primary keysBug 2078287https://bugs.launchpad.net/evergreen/+bug/2078287
73
5/20/20263.17.1Administration / DeveloperRemove unused library setting circ.holds.target_holds_by_org_unit_weightBug 1885140https://bugs.launchpad.net/evergreen/+bug/1885140
74
5/20/20263.17.1Administration / DeveloperAdd author tests to verify that DB update scripts assert their DB revision number correctlyBug 2083949https://bugs.launchpad.net/evergreen/+bug/2083949
75
5/20/20263.17.1CirculationTest Password in the Angular Circulation patron page now fills in the username and barcodeBug 2152653https://bugs.launchpad.net/evergreen/+bug/2152653
76
5/20/20263.17.1CirculationAdds legal name to the Angular patron summaryBug 2146400https://bugs.launchpad.net/evergreen/+bug/2146400
77
5/20/20263.17.1CirculationApplies the default internet access level setting value in the Angular patron registrationBug 2146591https://bugs.launchpad.net/evergreen/+bug/2146591
78
5/20/20263.17.1CirculationAdds refresh penalties to the Angular patron sidebarBug 2139307https://bugs.launchpad.net/evergreen/+bug/2139307
79
5/20/20263.17.1Public CatalogUpdates landmarks, headings, and ARIA labels for public catalog course browseBug 2115686https://bugs.launchpad.net/evergreen/+bug/2115686
80
05/20/20263.17.1Upgrade NotesNormal 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`
81
05/20/20263.17.1Security FixesBug 2152789https://bugs.launchpad.net/evergreen/+bug/2152789
82
05/20/20263.17.1Security FixesBug 2152788https://bugs.launchpad.net/evergreen/+bug/2152788
83
05/20/20263.17.1Security FixesBug 2152787https://bugs.launchpad.net/evergreen/+bug/2152787
84
05/20/20263.17.1Security FixesBug 2152786https://bugs.launchpad.net/evergreen/+bug/2152786
85
05/20/20263.17.1Security FixesBug 2152785https://bugs.launchpad.net/evergreen/+bug/2152785
86
05/20/20263.17.1Security FixesBug 2152784https://bugs.launchpad.net/evergreen/+bug/2152784
87
05/20/20263.17.1Security FixesBug 2152783https://bugs.launchpad.net/evergreen/+bug/2152783
88
05/20/20263.17.1Security FixesBug 2152782https://bugs.launchpad.net/evergreen/+bug/2152782
89
05/20/20263.17.1Security FixesBug 2152781https://bugs.launchpad.net/evergreen/+bug/2152781
90
05/20/20263.17.1Security FixesBug 2152780https://bugs.launchpad.net/evergreen/+bug/2152780
91
92
93
94
95
96
97
98
99
100