start 3.6 release notes
authorGalen Charlton <gmc@equinoxinitiative.org>
Tue, 15 Sep 2020 18:17:27 +0000 (14:17 -0400)
committerGalen Charlton <gmc@equinoxinitiative.org>
Wed, 16 Sep 2020 18:08:40 +0000 (14:08 -0400)
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
docs/RELEASE_NOTES_3_6.adoc [new file with mode: 0644]

diff --git a/docs/RELEASE_NOTES_3_6.adoc b/docs/RELEASE_NOTES_3_6.adoc
new file mode 100644 (file)
index 0000000..9df6e27
--- /dev/null
@@ -0,0 +1,888 @@
+Evergreen 3.6-beta Release Notes
+================================
+:toc:
+:numbered:
+
+Upgrade notes
+-------------
+This release adds a new OpenSRF service called `open-ils.courses`.
+While strictly speaking this is an optional service and could be
+omitted if you are not planning on using the new Course Materials
+module, it is recommend that the service be run in case future
+work bakes in an assumption that it will always be present.
+
+This release also includes a new experimental public catalog skin
+based on the Bootstrap framework. Instructions for turning it on
+can be found below.
+
+This release adds a new Perl module dependency, `Config::General`.
+
+New Features
+------------
+
+
+
+Acquisitions
+~~~~~~~~~~~~
+
+
+
+Angular Acquisitions Search
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+The acquisitions search interfaces are now written in Angular
+and provide a new centralized place for searching Line Items,
+Purchase Orders, Invoices, and Selection Lists in the Acquisitions
+module of Evergreen. The Acquisitions Search interface can be accessed
+under Acquisitions -> General Search.
+
+The search interface has four tabs for line item search, purchase order
+search, invoices search, and selection list search.  Each tab
+offers a search form allowing the user to select one or more
+fields to search on. Each search tab stores a separate default search
+that the user can update; for example, a user could have their
+line item search default to showing all on-order line items from
+a particular provider.
+
+The grid that displays search results in each tab is filterable.
+
+The line items and PO search interfaces allow the user to navigate to
+linked POs, invoices, and so forth, but offers no direct actions. The
+invoices search tab includes a 'Print Selected Invoices' action,
+while the selection lists search tab offers actions to create,
+clone, delete, and merge selection lists.
+
+The Angular search page contains a link to the legacy Dojo search
+interface if needed. The Dojo interface will be removed in a future
+release of Evergreen.
+
+The Angular search interface offers various usability improvements
+over the Dojo one, including:
+
+* only the search operators that are relevant for a given field
+  are displayed.
+* search fields that are associated with controlled vocabularies
+  will display drop-downs on the search form.
+* results are sortable
+* the line item and PO state fields have been relabeled to "Status"
+* greater than and less than are now available as search operators
+* publication date searches are more flexible
+
+Adjustments to Stock Permissions
+++++++++++++++++++++++++++++++++
+As part of this feature, the stock permissions for the Acquisitions
+and Acquisitions Administrator profiles have been expanded. In
+particular, the Acquisitions Administrator profile can now be
+more readily used to perform normal acquisitions work in addition
+to configuring the acquisitions module.
+
+
+
+
+Angular Providers Interface
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+The interfaces for searching for and managing acquisitions provider
+records have been rewritten in Angular. This rewrite includes the
+following significant changes:
+
+* The provider search interface is now available directly from the
+  Acquisitions menu, supplementing its longstanding availability from
+  the Acquisitions Administration page.
+* The search interface is modeled after the patron interface, including
+  a search form that can be hidden or displayed, a provider summary box,
+  and a multi-tabbed interface for managing the provider itself.
+* The grid displaying search results is filterable and sortable.
+* The provider display tabs are
+ ** Details, allowing the user to view, and if permitted, edit
+    the base provider record.
+ ** Addresses
+ ** Contacts
+ ** Attribute Definitions
+ ** Holdings Definitions
+ ** EDI
+ ** Invoices, providing an interface for viewing the invoices
+    associated with the provider.
+ ** POs, providing an interface for viewing the purchase orders
+    associated with the provider.
+* The new interface makes it possible to edit contact addresses.
+* The base provider record now has an optional primary contact field.
+  Selecting a contact as the primary one is managed on the Contacts
+  tab.  The primary contact, if set, is displayed on the provider
+  summary box.
+
+Interfaces that used to link to the Dojo provider interface now link
+to the Angular one instead.
+
+
+
+
+Administration
+~~~~~~~~~~~~~~
+
+
+
+Changes to Autorenewal Action/Trigger Failure Reasons
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Previously the "reason" field in the userdata for an Autorenewal
+event would contain both the failure code and the description for
+the failure event as a single string such as
+"MAX_RENEWALS_REACHED : Circulation has no more renewals remaining"
+Now the "reason" field will only contain the description of the issue
+(Circulation has ...) while a new "textcode" field will contain the
+event code (MAX_RENEWALS_REACHED) if administrators still want to
+display it in template outputs.
+
+
+
+
+
+EZProxy authentication
+^^^^^^^^^^^^^^^^^^^^^^
+
+Evergreen can now provide CGI authentication for EZProxy.
+To enable this, you will need to:
+
+. Add a new User Activity Type to Evergreen for EZProxy CGI authentications.
+. Add a new Remote Authentication Profile to Evergreen. You will probably want
+to use `EZProxyCGI` as the name.
+. Edit the `<Location /api/ezproxy>` stanza in Evergreen's eg_vhost configuration
+file. In particular, you will need to allow access to from your EZProxy server,
+fill in the base uri of your EZProxy server, and add a secret to the
+_OILSRemoteAuthEZProxySecret_ variable.
+. Restart Apache.
+. Edit the EZProxy user.txt file.  You will likely want to add a stanza such
+as the following:
+
+.Sample user.txt stanza
+----
+::CGI=http://your-evergreen-catalog.com/api/ezproxy?url=^R
+::Ticket
+MD5 <same secret as in eg_vhost config>
+Expired; Deny expiredticket.htm
+/Ticket
+----
+
+When this feature is enabled, users will see an Evergreen-based login screen.
+You may customize the look and feel of this login screen by editing the relevant
+template toolkit files.
+
+
+
+
+
+Matomo Support
+^^^^^^^^^^^^^^
+
+Support for the open source web analytics platform Matomo is now
+native to Evergreen. Support is on an org unit level so different
+libraries can have separate or no analytics. Once you setup
+a Matomo service you will need the URL and site ID. Typically
+Matomo will give you a block of javascript you can insert into
+web sites. One line will look like :
+
+var u="http://mylibrary.lib/matomo/";
+
+The full URL in the double quotes will be your URL.  Another line
+will look like:
+
+_paq.push(['setSiteId', '1']);
+
+In this case the number 1 will be your site ID.
+
+These are set by YOAUSes opac.analytics.matomo_url and
+opac.analytics.matomo_id respectively.  A new permsision,
+MATOMO_UPDATE_SETTINGS, controls access to these.
+
+
+
+
+
+"PatronAPI" authentication
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+Evergreen now supports the III "PatronAPI" scheme for authenticating
+patrons and supplying some information about them.
+
+To enable this, you will need to:
+
+. Add a new User Activity Type to Evergreen for PatronAPI authentications.
+. Add a new Remote Authentication Profile to Evergreen. You will probably want
+to use `PatronAPI` as the name.
+. Edit the `<Location /api/patronapi>` stanza in Evergreen's eg_vhost configuration
+file. In particular, you will need to allow access to it from the server(s)
+wanting to make PatronAPI requests, determine whether to enable the PatronAPI
+"dump" feature, and specify whether users can be identified by username
+or barcode.
+. Restart Apache.
+. Update the PatronAPI client to use https://your.evergreen.server/api/patronapi
+  as its base URL.
+
+Example PatronAPI URLs look something like this:
+
+.PatronAPI URLs
+----
+# test a patron's PIN:
+https://evergreen.example.org/api/patronapi/USERNAME/PASSWORD/pintest
+
+# dump some information about the patron. Note that this
+# does _not_ require the the patron's password be supplied.
+https://evergreen.example.org/api/patronapi/USERNAME/dump
+----
+
+The responses for the `pintest` and `dump` actions are specified by
+Template Toolkit templates under (e.g.) `/openils/var/templates/remoteauth`.
+
+
+
+
+Preloaded Audio Icon and Search Format
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+A new search and icon format called Preloaded Audio now exists 
+that overlaps with the eAudio format.  If you want to exclude
+the Preloaded Audio format from overlapping with eAudio 
+you can use the following SQL:
+
+UPDATE config.composite_attr_entry_definition SET definition = '{"0":{"_attr":"item_type","_val":"i"},"1":[{"_attr":"item_form","_val":"o"},{"_attr":"item_form","_val":"s"}]}'
+    WHERE coded_value IN (SELECT id FROM config.coded_value_map WHERE code = 'eaudio');
+
+It is also recommended that you reingest your bibliographic records 
+to updated the fixed field indexes. You can accomplish this by running
+the following query in your database:
+
+SELECT metabib.reingest_record_attributes(source)
+FROM metabib.record_attr_vector_list WHERE
+(SELECT id FROM config.coded_value_map WHERE ctype = 'item_form' AND code = 'q') = ANY(vlist)
+AND (SELECT id FROM config.coded_value_map WHERE ctype = 'item_type' AND code = 'i') = ANY(vlist);
+
+
+
+
+
+
+API
+~~~
+
+
+
+Override Label for draw_field_label Patron Edit Fields
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Evergreen developers may now specify a label for fields in
+the patron registration/patron edit form (generated by
+the draw_field_label macro). By default, 
+draw_field_label uses the label of supplied IDL field class. 
+Now a developer may supply an additional third parameter,
+label_override, which overrides the default IDL-based label.
+This would typically be done in the course of customizing
+the web staff client template `circ/patron/t_edit.tt2`.
+
+
+
+
+Architecture
+~~~~~~~~~~~~
+
+
+
+New Action/Trigger reactor for 3rd party signaling
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+This new Action/Trigger reactor module allows an Evergreen administrator to
+create event defintions that use HTTP (or HTTPS) to contact external services
+and let them know that something has happened in Evergreen.
+
+For instance, a discovery layer can be informed when a bib record is updated
+or when a user's barcode changes.
+
+Reactor Template Syntax
++++++++++++++++++++++++
+The new reactor module uses a template to define its behavior.  While the
+template is processed by Template Toolkit, as with any A/T templates, its
+output format is new to Evergreen.
+
+The template should output data that can be parsed by the Config::General Perl
+module.  See: https://metacpan.org/pod/Config::General
+
+Top level settings should include the HTTP *method* and the *url*.
+
+A block called *Headers* can be used to supply arbitrary HTTP headers.
+
+A block called *Parameters* can be used to append CGI parameters to the URL,
+most useful for GET form submission.  Repeated parameters are allowed.  If
+this block is used, the URL should /not/ contain any parameters, use one or
+the other.
+
+A HEREDOC called *content* can be used with POST or PUT to send an arbitrary block
+of content to the remote server.
+
+If the requested URL requires Basic or Digest authentication, the template can
+include top level configuration parameters to supply a *user*, *password*, *realm*,
+and hostname:port *location*.
+
+A default user agent string of "EvergreenReactor/1.0" is used when sending requests.
+This can be overridden using the top level *agent* setting.
+
+Here is an example template that could be used by a definition attached to the
+*bib.edit* hook:
+
+[source,conf]
+----
+method   post # Valid values are post, get, put, delete, head
+url      https://example.com/api/incoming-update
+agent    MySpecialAgent/0.1
+
+user     updater
+password uPd4t3StufF
+realm    "Secret area"
+location example.com:443
+
+<Headers>
+  Accept-Language en
+</Headers>
+
+<Parameters>
+  type bib
+  id   [% target.id %]
+</Parameters>
+
+content <<MARC
+[% target.marc %]
+MARC
+----
+
+
+
+
+
+Documentation Now Uses the Antora Toolchain
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+The core Evergreen documentation under the `docs/` subdirectory
+has been changed to use Antora, a documentation site generator
+for AsciiDoc. The result of this change is the ability to generate
+documentation for the `docs.evergreen-ils.org` website that is
+searchable, easier to maintain, and readily installable on a
+local Evergreen site if desired.
+
+For instructions on how to build the documentation, consult
+the file `README.adoc` under the `docs` directory.
+
+
+
+
+Cataloging
+~~~~~~~~~~
+
+
+
+Manage Authorities Angular Port
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+The Cataloging => 'Manage Authorities' interface has been ported to Angular.
+
+New functionality includes displaying additional authority data, like create
+and edit dates, etc.  It's also possible to view the list of linked bib
+records.
+
+
+
+
+MARC Batch Edit UI Angular Port
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+The MARC Batch Edit interface has been ported to Angular.
+
+
+
+
+Preloaded Audio Icon and Search Format
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+A new search and icon format called Preloaded Audio now exists 
+using the following atttributes: itemtype i, item form q.  This 
+overlaps with the eAudio format.  If you want to exclude 
+preloaded audio from eAudio there is a script in the Administration 
+notes to exclude it. 
+
+
+
+
+
+Circulation
+~~~~~~~~~~~
+
+
+
+Booking Capture is now in Angular
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The interface to capture resources for booking
+reservations has been re-implemented in Angular.
+Other booking screens, such as Pick Up and
+Manage Reservations, now include an option to 
+re-print capture slips.
+
+System administrators can now edit the template
+for booking capture slips in Administration ->
+Server administration -> Print templates.
+
+
+
+
+
+New Fields for AutorenewNotify Event Template
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Two new fields, `auto_renewal_remaining`, and `total_renewal_remaining` have
+been added to the AutorenewNotify action/trigger event code.  They will
+report the number of autorenewals and regular renewals, respectively,
+remaining on the new circulation if renewed, or on the old circulation
+if not renewed.  This is provided as a convenience to avoid possibly
+inaccurate math in the template.  You may access them in the template via
+the `udata`:
+
+.................................................
+Automatic Renewals Remaining: [% udata.auto_renewal_remaining %]
+Total Renewals Remaining: [% udata.total_renewal_remaining %]
+.................................................
+
+
+
+
+
+Course materials module
+^^^^^^^^^^^^^^^^^^^^^^^
+
+This version of Evergreen includes an optional course materials module.
+Like course reserves modules in other library software, this module
+makes reserves collections more discoverable and easier to manage.
+The module also provides similar functionality for library electronic
+resources and open educational resources, whether they have been
+cataloged or not.
+
+To enable the course materials module, go to Administration >
+Local Administration > Library Settings Editor. Find the setting
+called "Opt Org Unit into the Course Materials Module".  Set it to
+True for the org units that want to use the module.
+
+To use the course materials module effectively, staff will need a
+new permission called _MANAGE_RESERVES_.  By default, circulation
+administrators will receive this permission.
+
+Courses
++++++++
+
+Staff members with the _MANAGE_RESERVES_ permission can create
+courses, attach materials to them, attach users to them, and
+archive them when they are no longer needed.
+
+When associating physical materials from the catalog to a
+course, staff members can choose temporary item attributes.
+These attributes will last until the course is archived or
+the item is detached from the course, whichever happens
+first.
+
+Staff can also choose to associate electronic resources from
+the catalog (which must have a transcendent bib source or
+a located URI).  They can also create a brief bib record
+to attach to the course from within the course materials
+module.
+
+Staff members can attach users to the course.  These users
+can have either a public role (e.g. instructor) or private
+roles (e.g. student).  The public roles will be displayed
+in the OPAC.
+
+OPAC
+++++
+
+If the module is enabled, the OPAC will include a course search
+and a course browse.
+
+Other uses
+++++++++++
+
+Libraries may also want to use this module to manage their
+displays.  Each display can be treated as a course, and staff
+can attach the items they wish to display to the course along
+with the temporary attributes (e.g. a shelving location called
+"On display").  When the display is over, staff members can
+archive the course.
+
+
+
+
+
+Hopeless Holds Interface
+^^^^^^^^^^^^^^^^^^^^^^^^
+
+A new interface under Local Administration has been added called
+Hopeless Holds.  Using a new Hopeless Date field on hold requests,
+this interface gives staff a way to resolve issues with hold
+requests that may have become unfulfillable or "hopeless".
+
+The Hopeless Date is set for a given request by the hold targeter
+whenever the potential items list for the hold is empty, or when
+all potential items have a copy status that has been designated
+as Hopeless Prone (a new boolean field on copy statuses).
+
+
+
+
+
+In-house use now records workstations
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Evergreen now records the workstation along with each
+in-house use.  Staff can now run reports on which
+workstation created which in-house uses.
+
+
+
+
+
+Purge User Preferred Names
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+The new, user preferred name fields are now set to NULL in the
+database when a user account is purged via the staff client or using
+the actor.usr_delete function in the database.
+
+To clear the preferred name fields from records that have already been
+purged, run the following SQL update:
+
+[source,sql]
+----
+UPDATE actor.usr
+SET pref_prefix = NULL,
+    pref_first_given_name = NULL,
+    pref_second_given_name = NULL,
+    pref_family_name = NULL,
+    pref_suffix = NULL,
+    name_keywords = NULL
+WHERE usrname ~ ('^' || id || '-PURGED')
+AND NOT active
+AND deleted
+AND (
+  pref_prefix IS NOT NULL OR
+  pref_first_given_name IS NOT NULL OR
+  pref_second_given_name IS NOT NULL OR
+  pref_family_name IS NOT NULL OR
+  pref_suffix IS NOT NULL OR
+  name_keywords IS NOT NULL
+);
+----
+
+
+
+
+Test Notification Method
+^^^^^^^^^^^^^^^^^^^^^^^^
+Patrons and staff may request a test notification for a patron's default email address or SMS 
+number via the Patron Registration interface in the staff client or the Opac preferences interface. The OPAC_LOGIN permissions are required to 
+request a notification. When a notification is sent, it will be sent to either the user's default email or default SMS number, depending on 
+what was requested.
+
+Upgrade Notes
++++++++++++++++++++
+
+This feature adds two new rows to action_trigger.event_definition, two into 
+action_trigger.hook, and six into action_trigger.environment.
+
+
+
+
+Client
+~~~~~~
+
+
+
+New Angular Staff Catalog Default
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+The experimental Angular staff catalog has been promoted to operate as the
+default catalog in the browser staff client.  It will be used for all 
+catalog entry points, except for the menu entries for the traditiaional
+catalog and any links within the traditional catalog.
+
+Menu Changes
+++++++++++++
+
+* Search => 'Search The Catalog' now searches to new catalog.
+* Cataloging => 'Search The Catalog' now searches to new catalog.
+* Cataloging => 'Search The Catalog (Traditional)' searches the traditional 
+  TPAC-style catalog.
+* Staff client splash page => 'Search the catalog' inline form uses the 
+  new catalog.
+
+
+
+
+
+Basket To Bucket Action Now Allows Adding To Shared Buckets
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+The Angular staff catalog's 'Add Basket to Bucket' action now
+gives the user the option of adding the contents of the basket
+to a shared bucket.
+
+
+
+
+
+OPAC
+~~~~
+
+
+
+New Bootstrap-based OPAC
+^^^^^^^^^^^^^^^^^^^^^^^^
+
+This release includes a new experimental OPAC with a cleaner, more modern design.
+
+To enable the new OPAC design, open the _/etc/apache2/eg_vhost.conf_ file.
+
+Find the following line:
+
+------------------------------------------------------------------------------
+PerlAddVar OILSWebTemplatePath "/openils/var/templates"
+------------------------------------------------------------------------------
+
+Add the following line directly below it:
+
+------------------------------------------------------------------------------
+PerlAddVar OILSWebTemplatePath "/openils/var/templates-bootstrap"
+------------------------------------------------------------------------------
+
+Be sure that, if you have any local customizations, that they are referenced below
+this line.  This way, your customizations will still appear in the new OPAC design
+(although they may need to be adjusted to better fit the new style).
+
+You can also turn on the new OPAC for some virtual hosts only, by adding it to the
+appropriate virtual host entry.  Be sure to reference the OILSWebTemplatePath for
+the `templates-bootstrap` directory before referencing any local customizations
+used by that virtual host.
+
+To emphasize, the new OPAC skin is considered experimental for 3.6.x. There
+are some discrepancies between its functionality and the functionality
+present in the original "TPAC" skin. The Evergreen community aims to
+resolve those discrepancies and make the Bootstrap skin become the default
+OPAC for the Spring 2021 release (though the original TPAC skin will still
+be available). Using the Bootstrap skin in production for 3.6 is at your own risk.
+
+
+
+
+Enhanced Public Catalog Printing and Email 
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Evergreen now provides additional functionality for printing and emailing
+bibliographic record and holdings information from the catalog, including
+from an individual record or from a list or basket.
+
+After selecting Print or Email, the user will be presented with a preview of
+the printout or email, respectively.  From the preview users can chose to view
+Brief or Full record information (Full includes holdings information) and how
+records should be sorted (Author, Title, Publication Date).  Holdings
+information can also be limited to a certain library.
+
+Users can be required to log in to their OPAC account to send an email or this
+feature can be configured to allow sending an email without signing in to the
+public catalog. If the option to allow emailing without signing in is enabled
+(by turning on the new 'Allow record emailing without login' library setting),
+user will be asked to solve an arithmetic CAPTCHA in order to send the email.
+
+Administration
+++++++++++++++
+Two new interfaces have been added to Local Administration: Event Definition
+Groups and Event Definition Group Members.  The Event Definition Groups defines
+the various groups for Action Trigger Event Definitions-- currently Print
+Record(s) or Email Record(s).  The Event Definition Group Members defines the
+options within each group-- currently Brief or Full record information.
+
+These two interfaces expose the infrastructure behind the new print and
+email functionality and library staff will not need to make any changes to
+these interfaces to use the existing print and email options.  The stock print
+and email Action Trigger Event Definitions can be cloned and modified to
+provide additional bibliographic format options.  After creating the custom
+Event Definition, add it to the appropriate Event Definition Group (Print
+Record or Email Record) and the new format will be available in the catalog.
+
+
+
+
+
+Credit card payments using Stripe now on version 3 (Elements)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+When Stripe payments are enabled, the public catalog will now
+use version 3 of the Stripe client library, as well as its
+Elements API for building the credit card form.  For
+technical reasons, this more easily lends a site to PCI
+compliance.
+
+On the staff side, the credit card option is disabled for
+Stripe, as that has not been implemented and in the past
+would just give an error.
+
+
+
+
+Reports
+~~~~~~~
+
+
+
+Combined Aged and Active Circluations Source Naming
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+A recent improvement to aid web client data retrieval
+speed resulted in a new reports source that was named
+nearly identically to a long-existing one, and both
+were appearing in the "Core Sources" section of reports.
+The newer source has been renamed for clarity and removed
+from the core sources to prevent confusion:
+
+ * "Combined Aged and Active circulations" is now named "Combined Aged and Active Circulations (Slim Version)"
+   and is removed from the Core Sources.
+ * "Combined Aged and Active Circulations", which contains more linkages to other data sources, remains in the 
+   Core Sources list.
+
+
+
+
+Reports Subtotals
+^^^^^^^^^^^^^^^^^
+Reports now allow group subtotals and grand totals.  By checking the
+new "Calculate grouping subtotals" checkbox under "Output Options",
+a new unlabeled row or column is created with the subtotals for each
+grouping and an unlabeled grand total row or column.
+
+This takes advantage of PostreSQL's built-in ROLLUP feature.  See the
+PostgreSQL documentation for details: 
+
+https://www.postgresql.org/docs/9.6/queries-table-expressions.html#QUERIES-GROUPING-SETS
+
+An example of a report that could use this new feature is
+one based on the Circulation source with the following fields:
+
+ * Circulation -> Checkout / Renewal Library -> Short (Policy) Name (Raw Data)
+ * Circulation -> Checkout Date/Time (Year)
+ * Circulation -> Shelving Location -> Name (Raw Data)
+ * Circulation -> Circ ID (Count Distinct)
+
+Turning on the "Calculate grouping subtotals" checkbox would make
+the report show subtotals for each combination of
+short name, checkout year, and shelving location name.
+
+
+
+
+SIP
+~~~
+
+
+
+Allow Username in Patron ID
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Evergreen now accepts a patron's username in the SIP2 Patron ID field
+(AA) in addition to the barcode.  This modification is useful for
+vendors, such as Overdrive, who can accept a user's username.
+Additionally, it is easier for a patron to find and remember their
+username over their barcode.
+
+The new feature determines if the value in the Patron ID field is a
+barcode or username by comparing the field value against the
+`opac.barcode_regex` setting for the organizational unit of the logged
+in SIP2 account as configured in the oils_sip.xml file.  This is
+similar to what the OPAC does when a patron logs in.
+
+This feature requires activation.  To activate, uncomment (or add) the
+following line in the oils_sip.xml configuration file and change the 
+value from 'false' to 'true'.
+
+[source,xml]
+---------------------------------------------------------------------------
+<option name='support_patron_username_login' value='true' />
+---------------------------------------------------------------------------
+
+
+
+Acknowledgments
+---------------
+The Evergreen project would like to acknowledge the following
+organizations that commissioned developments in this release of
+Evergreen:
+
+* C/W MARS
+* Evergreen Community Development Initiative
+* Georgia Public Library Service
+* Indiana State Library
+* Linn-Benton Community College
+* Treasure Valley Community College
+
+We would also like to thank the following individuals who contributed
+code, translations, documentations patches and tests to this release of
+Evergreen:
+
+* John Amundson
+* Nelson Appell
+* Zavier Banks
+* a. bellenir
+* Jason Boyer
+* Dan Briem
+* Chris Burton
+* Steven Callender
+* Galen Charlton
+* Garry Collum
+* Dawn Dale
+* Jeff Davis
+* Diane Disbro
+* Bill Erickson
+* Jason Etheridge
+* Lynn Floyd
+* Ruth Frasur
+* Blake Graham-Henderson
+* Rogan Hamby
+* Elaine Hardy
+* Kyle Huckins
+* Owen Leonard
+* Troy Leonard
+* Shula Link
+* Tiffany Little
+* Mary Llewellyn
+* Terran McCanna
+* Gina Monti
+* Christine Morgan
+* Michele Morgan
+* Jennifer Pringle
+* Mike Risher
+* Mike Rylander
+* Jane Sandberg
+* Dan Scott
+* Chris Sharp
+* Remington Steed
+* Jason Stephenson
+* Josh Stompro
+* Dan Wells
+* Jennifer Weston
+* Beth Willis
+* John Yorio
+
+We also thank the following organizations whose employees contributed
+patches:
+
+* Ann Arbor District Library
+* BC Libraries Cooperative
+* Bibliomation
+* Calvin College
+* Catalyte
+* C/W MARS
+* Equinox Open Library Initiative
+* Georgia Public Library Service
+* Grand Rapids Public Library
+* Greater Clark Hills Regional Library System
+* Indiana State Library
+* Kenton County Public Library
+* King County Library System
+* Laurentian University
+* Linn-Benton Community College
+* MOBIUS
+* Niagara Falls Public Library
+* NOBLE
+* Scenic Regional Library
+* Sigio
+* Washington County (MO) Public Library
+* Westchester Library System
+* Zivot Design
+
+We regret any omissions.  If a contributor has been inadvertently
+missed, please open a bug at http://bugs.launchpad.net/evergreen/
+with a correction.
+