[open-ils-commits] [GIT] Evergreen ILS branch rel_2_10 updated. 763c4e7a716154c7ea2ce24cf85f6cd5ad70bcee
Evergreen Git
git at git.evergreen-ils.org
Thu Mar 3 11:10:26 EST 2016
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Evergreen ILS".
The branch, rel_2_10 has been updated
via 763c4e7a716154c7ea2ce24cf85f6cd5ad70bcee (commit)
from eebf26df764835e2d380db890261db9456225c05 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 763c4e7a716154c7ea2ce24cf85f6cd5ad70bcee
Author: Galen Charlton <gmc at esilibrary.com>
Date: Thu Mar 3 11:09:52 2016 -0500
first draft of release notes for 2.10
Signed-off-by: Galen Charlton <gmc at esilibrary.com>
diff --git a/docs/RELEASE_NOTES_2_10.adoc b/docs/RELEASE_NOTES_2_10.adoc
new file mode 100644
index 0000000..b7dd8e0
--- /dev/null
+++ b/docs/RELEASE_NOTES_2_10.adoc
@@ -0,0 +1,928 @@
+Evergreen 2.10 Release Notes
+============================
+:toc:
+:numbered:
+
+Upgrade notes
+-------------
+
+* Support for PostgreSQL 9.1 is deprecated as of
+ the release of Evergreen 2.10. Users are recommended
+ to install Evergreen on PostgreSQL 9.2 or later.
+* In the next major release following 2.10, Evergreen will no
+ longer officially support PostgreSQL 9.1.
+* Please read the release notes thoroughly for information
+ about changes that Evergreen administrators may need
+ to make manually when upgrading to 2.10. In particular,
+ the enhancement to user password storage introduces a
+ new service, `open-ils.auth_internal`, and requires
+ changes to `opensrf.xml` in order for users to be able
+ log in.
+
+New Features
+------------
+
+
+
+Acquisitions
+~~~~~~~~~~~~
+
+
+
+PO Line item "paid" label
+^^^^^^^^^^^^^^^^^^^^^^^^^
+A new "paid" label appears along the bottom of each line item in the PO
+display when every non-canceled copy on the line item has been invoiced.
+
+
+
+
+Disencumber funds on invoice close
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Fund debits linked to an invoice are now marked as paid (encumbrance=false)
+when the invoice is marked as closed/complete instead of at invoice create
+time. This is particularly useful for EDI invoices which may be
+created well in advance of receipt and payment.
+
+
+
+
+
+PO actions selector always visible
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The actions selector is now always visible in the purchase order view,
+even when no line items exist. With this, users can print PO's that
+only contain direct charges.
+
+The custom "Add Brief Record" button is no longer present, since the
+same action is accessible via the now-visible selector.
+
+
+
+
+Administration
+~~~~~~~~~~~~~~
+
+
+
+Set application name when connecting to database
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+The services that connect directly to the PostgreSQL database
+(and Clark Kent) now look for an application_name parameter
+as part of the database login credentials specified in
+`opensrf.xml`. If present, the value is used to set the
+application name Pg connection value; this in turn shows up in
+the Postgres `pg_stat_activity` table and Pg's logs.
+
+
+
+
+Credit card receipts and privacy
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+To improve privacy and security, Evergreen now stores less data
+about credit card transactions. The following fields are no
+longer stored:
+
+ * `cc_type`
+ * `cc_first_name`
+ * `cc_last_name`
+ * `expire_month`
+ * `expire_year`
+
+NOTE: All existing data within these fields will be deleted during
+the upgrade. Reports using this data will no longer function.
+
+Additionally, a tool has been added to Evergreen for clearing the
+last 4 digits of the credit payment from the database after payments
+reach a certain age.
+
+Print/email templates
++++++++++++++++++++++
+
+The stock print and email payment templates have been modified to no
+longer use these fields, but only when the existing templates matched
+the stock templates. If local changes have been applied, it will
+be necessary to modify local templates to avoid referencing these
+fields which no longer exist.
+
+Any templates whose hook is "money.format.payment_receipt.print" or
+"money.format.payment_receipt.email" may need modification. In stock
+Evergreen, these are templates:
+
+1. "money.payment_receipt.email" (stock id 29)
+2. "money.payment_receipt.print" (stock id 30)
+
+Example diff:
+
+[source,diff]
+---------------------------------------------
+- [% CASE "credit_card_payment" %]credit card (
+- [%- SET cc_chunks = mp.credit_card_payment.cc_number.replace(' ','').chunk(4); -%]
+- [%- cc_chunks.slice(0, -1+cc_chunks.max).join.replace('\S','X') -%]
+- [% cc_chunks.last -%]
+- exp [% mp.credit_card_payment.expire_month %]/[% mp.credit_card_payment.expire_year -%]
+- )
++ [% CASE "credit_card_payment" %]credit card
++ [%- IF mp.credit_card_payment.cc_number %] ([% mp.credit_card_payment.cc_number %])[% END %]
+---------------------------------------------
+
+Clearing the last 4 of the CC number
+++++++++++++++++++++++++++++++++++++
+
+To active automatic CC number clearing, add the following to opensrf's
+crontab. Change timing to suit.
+
+[source,sh]
+---------------------------------------------
+5 4 * * * . ~/.bashrc && $EG_BIN_DIR/clear_cc_number.srfsh
+---------------------------------------------
+
+The default retention age is 1 year, but this can be changed by modifying
+`clear_cc_number.srfsh` (typically found in `/openils/bin/`). Replace "1 year"
+with the age of your choice.
+
+
+
+
+
+
+Configure multiple telephony servers via action/trigger
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+If you are using the AstCall action/trigger reactor
+to generate callfiles to send to an Asterisk server, until
+now the only place to specify the relevant configuration
+was in `opensrf.xml`. However, this restricted an Evergreen
+consortium to using only one Asterisk instance.
+
+Now, the telephony parameters can also be specified as
+A/T event parameters, allowing per-library configuration.
+
+.Telephony parameters
+|===
+| Name | Example value
+
+| enabled
+| 0
+
+| driver
+| "SIP"
+
+| channels
+| ["Zap/1", "Zap/2", "IAX/user:secret at widgets.biz"]
+
+| host
+| "localhost"
+
+| port
+| "10080"
+
+| user
+| "evergreen"
+
+| pw
+| "evergreen"
+
+| callfile_lines
+| ["MaxRetries: 3", "RetryTime: 60", "WaitTime: 30", "Archive: 1", "Extension: 10"]
+|===
+
+
+
+
+Juvenile-to-adult batch script honors library setting
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The batch `juv_to_adult.srfsh` script that, when set up as a cronjob,
+is responsible for toggling a patron from juvenile to adult now
+honors the age value set in the library setting named "Juvenile Age
+Threshold" (`global.juvenile_age_threshold`). When no library setting value
+is present at a given patron's home library, the value passed in to the
+script will be used as a default.
+
+
+
+
+New reporting source for hold/copy ratios
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+A new reporting source is added, "Hold/Copy Ratio per Bib
+and Pickup Library (and Descendants)", that, for each bib
+that has a hold request on it or any of its components,
+calculates the following:
+
+ * active holds at each OU (including the OU's descendants)
+ * holdable copies at each OU (and its descendants)
+ * the ratio of the above two counts
+ * counts and ratio across the entire consortium
+
+This source differs from the "Hold/Copy Ratio per Bib
+and Pickup Library" source by including all descendants
+of the organization unit one is filtering on.
+
+One use case is allowing a multi-branch system within an
+Evergreen consortium that doesn't do full resource sharing
+to readily calculate whether additional copies should be
+purchased for that system.
+
+
+
+
+New patron action/trigger notice
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+A new action/trigger event definition ("New User Created Welcome Notice")
+has been added that will allow you to send a notice after a new patron has
+been created, based on the actor.usr create-date field.
+
+This notice can be used for various tasks.
+
+ * Sending a welcome email to new patrons to market Library services.
+ * Confirm that a new patron email address is correct.
+ * Generate postal notices to send a welcome packet to new patrons.
+
+Enable this event in the staff client at *Admin* -> *Local Administration*
+-> *Notifications / Action Triggers*.
+
+
+
+
+Improved password management and authentication
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Evergreen user passwords are now stored with additional layers of
+encryption and may only be accessed directly by the database, not
+the application layer.
+
+All API changes are backwards compatible with existing 3rd-party
+clients.
+
+Migrating passwords
++++++++++++++++++++
+
+Passwords are migrated for each user automatically the first time a user
+logs in under the new setup. However, it is also possible to force
+password migration for a given user via a database function:
+
+[source,sql]
+------------------------------------------------------------
+-- actor.migrate_passwd() will only migrate un-migrated
+-- accounts, but it's faster to avoid any re-migration attempts.
+SELECT actor.migrate_passwd(au.id)
+FROM actor.usr au
+ LEFT JOIN actor.passwd pw ON (pw.usr = au.id)
+WHERE pw.usr IS NULL;
+------------------------------------------------------------
+
+Using this, admins could perform manual batch updates to force all
+users to use the new, more secure passwords, regardless of when or
+whether a patron logs back into the system.
+
+Beware that doing this for all users in the a large database will
+take some time and should probably be performed in batches.
+
+open-ils.auth_internal
+++++++++++++++++++++++
+To support the new storage mechanism, a new Evergreen service has
+been added called `open-ils.auth_internal`. This service runs on
+the private OpenSRF/XMPP domain and is used to store authenticated
+user data in the authentication cache.
+
+This is a required service and changes to `opensrf.xml` (typically
+`/openils/conf/opensrf.xml`) are needed to run the new service.
+
+.Modifying opensrf.xml
+* A new `<open-ils.auth_internal>` app stanza is added to define the
+ new service
+* Cache timeout settings are moved from the app stanza for `open-ils.auth`
+ into `open-ils.auth_internal`
+* `open-ils.auth_internal` is added to the set of running services for the
+ domain.
+
+Example diff:
+
+[source,diff]
+---------------------------------------------------------------------
+diff --git a/Open-ILS/examples/opensrf.xml.example b/Open-ILS/examples/opensrf.xml.example
+index 3b47481..59f737a 100644
+--- a/Open-ILS/examples/opensrf.xml.example
++++ b/Open-ILS/examples/opensrf.xml.example
+@@ -424,6 +424,29 @@ vim:et:ts=4:sw=4:
+ </unix_config>
+ <app_settings>
+ <!-- defined app-specific settings here -->
++ <auth_limits>
++ <seed>30</seed> <!-- amount of time a seed request is valid for -->
++ <block_time>90</block_time> <!-- amount of time since last auth or seed request to save failure counts -->
++ <block_count>10</block_count> <!-- number of failures before blocking access -->
++ </auth_limits>
++ </app_settings>
++ </open-ils.auth>
++
++ <!-- Internal authentication server -->
++ <open-ils.auth_internal>
++ <keepalive>5</keepalive>
++ <stateless>1</stateless>
++ <language>c</language>
++ <implementation>oils_auth_internal.so</implementation>
++ <unix_config>
++ <max_requests>1000</max_requests>
++ <min_children>1</min_children>
++ <max_children>15</max_children>
++ <min_spare_children>1</min_spare_children>
++ <max_spare_children>5</max_spare_children>
++ </unix_config>
++ <app_settings>
++ <!-- defined app-specific settings here -->
+ <default_timeout>
+ <!-- default login timeouts based on login type -->
+ <opac>420</opac>
+@@ -431,13 +454,10 @@ vim:et:ts=4:sw=4:
+ <temp>300</temp>
+ <persist>2 weeks</persist>
+ </default_timeout>
+- <auth_limits>
+- <seed>30</seed> <!-- amount of time a seed request is valid for -->
+- <block_time>90</block_time> <!-- amount of time since last auth or seed request to save failure counts -->
+- <block_count>10</block_count> <!-- number of failures before blocking access -->
+- </auth_limits>
+ </app_settings>
+- </open-ils.auth>
++ </open-ils.auth_internal>
++
++
+
+ <!-- Authentication proxy server -->
+ <open-ils.auth_proxy>
+@@ -1177,6 +1197,7 @@ vim:et:ts=4:sw=4:
+ <appname>open-ils.circ</appname>
+ <appname>open-ils.actor</appname>
+ <appname>open-ils.auth</appname>
++ <appname>open-ils.auth_internal</appname>
+ <appname>open-ils.auth_proxy</appname>
+ <appname>open-ils.storage</appname>
+ <appname>open-ils.justintime</appname>
+---------------------------------------------------------------------
+
+
+
+
+
+
+
+
+Sortable HTML reports
+^^^^^^^^^^^^^^^^^^^^^
+HTML reports can now be sorted by clicking on the header for a given column.
+Clicking on the header toggles between sorting the column in ascending and
+descending order. Note that sorting is available only when there are
+at most 10,000 rows of output.
+
+
+
+
+Cataloging
+~~~~~~~~~~
+
+
+
+Additional fixed fields
+^^^^^^^^^^^^^^^^^^^^^^^
+The AccM, Comp, CrTp, EntW, Cont, FMus, LTxt, Orig, Part, Proj, Relf, SpFm,
+SrTp, Tech, and TrAr fixed fields have been defined and coded value maps added
+so they can also be used for Advanced Searches or adding to Composite Value Maps.
+
+Note that AccM, Cont, LTxt, Relf, and SpFm are compositite values based on
+the values of "helper" fields like AccM(1), AccM(2), and so on. These positional
+fields can be ignored.
+
+Coded value maps have also been added for Cont, Ctry, and DtSt, and the Time field
+has been defined. All of these fields are now available in the Fixed Field Editor
+when editing the appropriate records.
+
+
+
+
+Quickly export non-imported records
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+When inspecting a queue in MARC Batch Import/Export, there is now
+a link to download to MARC file any records in the queue that were
+not imported into the catalog. This allows catalogers to quickly
+manipulate the records that failed to import using an external
+tool, then attempt to import then again.
+
+
+
+
+Link personal name/title series added entries
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+The authority linker script now supports linking the MARC21
+field 800 (series added entry - personal name) to authority
+records.
+
+
+
+
+MARC stream importer authority records and repairs
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The MARC stream importer script, commonly used with external
+services like OCLC Connexion, is now capable of importing authority
+records in addition to bib records. A single running instance of
+the script can import either type of record, based on the record
+leader.
+
+New Options
++++++++++++
+
+ * --auth-merge-profile
+ * --auth-queue
+ * --bib-import-no-match
+ * --bib-auto-overlay-exact
+ * --bib-auto-overlay-1match
+ * --bib-auto-overlay-best-match
+ * --auth-import-no-match
+ * --auth-auto-overlay-exact
+ * --auth-auto-overlay-1match
+ * --auth-auto-overlay-best-match
+
+Deprecated options
+++++++++++++++++++
+
+The following options still work and map to the "bib" equivalent
+of the option, however a deprecation warning message is generated
+when the script is started.
+
+ * --import-no-match
+ * --auto-overlay-exact
+ * --auto-overlay-1match
+ * --auto-overlay-best-match
+
+No longer supported options
++++++++++++++++++++++++++++
+
+--import-by-queue is no longer supported. This option serves no
+particular purpose and is a bad idea when re-using the same queue over
+and over as most people do, because queue bloat will increase run times.
+
+--noqueue (AKA "direct import") is no longer supported. All imports go
+through Vandelay now.
+
+
+
+
+
+Circulation
+~~~~~~~~~~~
+
+
+
+Alternate parts selection display when placing holds
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Users often miss the list of parts on the Place Holds screen, leading to many
+title-level holds on records where only one or two libraries may have
+'unparted' copies.
+
+A new option is available to change this display so that a part is selected
+via radio buttons instead of the traditional dropdown menu. This display
+increases the visibility of parts on the Place Holds screen and also
+forces users to make an explicit choice.
+
+To enable the alternate display, set the enable.radio.parts option to 'true'
+in parts/config.tt2.
+
+
+
+
+Web staff client patron editor
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+The web staff interface now includes a patron editor/registration form
+that is written using AngularJS, leading to faster and more responsive
+patron editing. This feature is currently available in preview mode, but
+supports the following actions:
+
+ * adding and editing base patron records and addresses
+ * setting statistical categories
+ * editing secondary groups
+ * cloning patron records
+ * duplicate detection
+ * surveys
+
+
+
+
+==== Non-active status copy transit message ====
+
+After copy checkin, if the copy is in-transit, display a special
+message in the transit alert dialog and in the printed transit receipt
+(optionally, via macro) if the copy is in (or, rather, will be once it
+arrives at its destination) a non-active copy status.
+
+===== Upgrade notes =====
+
+ * To add the new message to the transit slip, add the
+ 'transit_copy_status_msg' MACRO.
+ * To remove the new message from the alert dialog, remove the
+ 'staff.circ.utils.transit.copy_status_message' string property
+ from 'Open-ILS/xul/staff_client/server/locale/LOCALE/circ.properties'
+ * For a list of non-active copy statuses, see in the staff client
+ under Admin -> Server Administration -> Copy Statuses.
+
+
+
+
+
+Selectively disallow opt-in based on patron's home library
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+A new library setting has been added which enables a library to prevent their
+patrons from being opted in at other libraries.
+
+For example, consider the following org unit hierarchy:
+
+ Org Units Depth
+
+ CONS 0
+ |
+ +-----+-----+
+ | |
+ SYS1 SYS2 1
+ | |
+ +--+--+ +--+--+
+ | | | |
+ BR1 BR2 BR3 BR4 2
+
+Suppose that SYS1 wishes to prevent its patrons from being opted in at SYS2.
+To accomplish this, it sets the value of the "Restrict patron opt-in to home
+library and related orgs at specified depth" setting to 1, meaning that patrons
+at SYS1 libraries at or below that depth in the org tree cannot be opted in by
+libraries outside that part of the org tree. Thus, BR1 patrons can be opted in
+at BR2, but not at BR3 or BR4.
+
+(This setting is distinct from the "Patron Opt-In Boundary" setting, which
+merely determines the depth at which Evergreen prompts for the patron to opt
+in.)
+
+New library setting
++++++++++++++++++++
+ * Restrict patron opt-in to home library and related orgs at specified depth (`org.restrict_opt_to_depth`)
+
+
+
+
+Standing penalty ignore proximity
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Standing penalties now have an `ignore_proximity` field that takes an
+integer value. When set, the value of this field represents the
+proximity from the user's home organizational unit where this penalty
+will be ignored for purposes of circulation and holds. Typical values
+for this field would be 0, 1, or 2 when using a standard hierarchy of
+Consortium -> System -> Branch -> Sublibrary/Bookmoblie. A value of 1
+would cause the penalty to be ignored at the user's home organization
+unit, it's parent and/or immediate child. A value of 2 should cause
+it to be ignored at the above as well as all sibling organizational
+units to the user's home. In all cases, a value of zero causes the
+penalty to be ignored at the user's home and to apply at all other
+organizational units. If the value of this field is left unset (or
+set to a negative value), the penalty will still take effect
+everywhere using the normal organizational unit and depth values. If
+you use a custom hierarchy, you will need to figure out any values
+greater than 0 on your own.
+
+The `ignore_proximity` does not affect where penalties are applied. It
+is used when determining whether or not a penalty blocks an activity
+at the current organizational unit or the organizational unit that
+owns the copy involved in the current transaction. For instance, if
+you set the `ignore_proximity` to 0 on patron exceeds overdue fines,
+then the patron will still be able to place holds on and checkout
+copies owned by their home organizational unit at their home
+organizational unit. They will not, however, be able to receive
+copies from other organizational units, nor use other organizational
+units as a patron.
+
+
+
+
+Patron checkout history stored in a dedicated table
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Patron checkout history is now stored in separate, dedicated database
+table instead of being derived from the main circulation data. This
+allows us to age/anonymize circulations more aggressively, since they
+no longer need to stick around in cases where they represent a patron's
+opt-in checkout history.
+
+This has a number of patron privacy implications.
+
+ * Minimal metadata is stored in the new patron checkout history table,
+ so once the corresponding circulation is aged, the full set of
+ circulation metadata is no longer linked to a patron's reading history.
+ ** It is limited to checkout date, due date, checkin date, and copy data.
+ * Staff can no longer report on a patron's reading history.
+ ** While it is possible to build aggregate reports on reading history
+ data, it is not possible to report on which user an entry in the
+ history table belongs to. (The 'usr' column is hidden from the
+ reporter).
+ * Staff can no longer retrieve a patron's reading history via API. Only
+ the user that owns the history data can access it.
+ * Though not implemented as part of this change, it will now be possible
+ with future development to truly remove specific items from a patron's
+ checkout history.
+
+
+
+
+
+Client
+~~~~~~
+
+
+
+Holds count column picker option
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+A new column picker option showing the number of holds for a given item will
+now be available in various interfaces displaying item information, including
+the patron's Items Out tab and the Item Status, Check Out, Check In, Renew
+Item and Record In-House Use screens.
+
+Note: Because the holds count is generated from the hold_copy_map, newly-added
+items and items in a non-holdable status will not display accurate hold counts
+until 24 hours after they have been added to the system or moved to a holdable
+copy status.
+
+
+
+
+Development
+~~~~~~~~~~~
+
+
+
+Removal of unused methods
+^^^^^^^^^^^^^^^^^^^^^^^^^
+The following public methods, which were both broken and not in use,
+are removed:
+
+ * `open-ils.actor.org_unit.closed_date.create`
+ * `open-ils.actor.org_unit.closed_date.delete`
+
+
+
+
+
+Public catalog
+~~~~~~~~~~~~~~
+
+
+Patron history disable warning
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+When disabling checkout and/or holds history in the public catalog's
+Search and History Preferences tab, patrons will be warned that the
+operation is irreversible when history data exists that will be
+deleted as part of the update.
+
+Upgrade notes
++++++++++++++
+
+Administrators should verify the CSV export of checkout history works after
+deploying this change. If local changes were made to the CSV template,
+the template will not be updated as part of this deployment. The stock
+template was modified to handle gracefully NULL values for checkin_time.
+
+For example:
+
+[source,diff]
+------------------------------------------------------------------------
+- Returned: [% date.format(helpers.format_date(circ.checkin_time), '%Y-%m-%d') %]
++ Returned: [%
++ date.format(
++ helpers.format_date(circ.checkin_time), '%Y-%m-%d')
++ IF circ.checkin_time;
++ %]
+------------------------------------------------------------------------
+
+
+Include parts label when sorting copies in the public catalog
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+The list of copies on the record details page now includes
+the part label in the default sort order.
+
+Specifically, copies are now sorted by (in order), org unit, then
+call number, then part label sortkey, then copy number, and
+finally barcode.
+
+Previously, the hierarchy was org unit, then call number,
+then copy number, and finally barcode
+
+
+
+
+Search scope depth selection
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+A common usage of the catalog is to do a search in a restricted scope,
+like a local library. When the results are lacking, the search is repeated in a
+consortium-wide scope. This feature provides an optional button and checkbox
+to alter the depth of the search to a defined level.
+
+This feature can be turned off from config.tt2.
+
+
+
+
+
+Limiter to exclude electronic resources
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+A limiter to exclude electronic resources from search results is now available
+on the advanced search screen and from the search results page. This limiter
+will exclude any search results with an item form of o or s. This limiter
+will be applied on top of any other format limiters used in the search.
+
+The checkboxes are disabled by default; to display them in both places, please
+toggle the 'ctx.exclude_electronic_checkbox' setting in config.tt2.
+
+
+
+
+Expand unAPI API
+^^^^^^^^^^^^^^^^
+Evergreen's unAPI support now includes access to many more
+record types. For example, the following URL would fetch
+bib 267 in MODS32 along with holdings, volume, copy,
+and record attribute information:
+
+https://example.org/opac/extras/unapi?id=tag::U2@bre/267{holdings_xml,acn,acp,mra}&format=mods32
+
+To access the new unAPI features, the unAPI ID should have the
+following form:
+
+ * +tag::U2 at +
+ * followed by class name, which may be
+ * +bre+ (bibs)
+ * +biblio_record_entry_feed+ (multiple bibs)
+ * +acl+ (copy locations)
+ * +acn+ (volumes)
+ * +acnp+ (call number prefixes)
+ * +acns+ (call number suffixes)
+ * +acp+ (copies)
+ * +acpn+ (copy notes)
+ * +aou+ (org units)
+ * +ascecm+ (copy stat cat entries)
+ * +auri+ (located URIs)
+ * +bmp+ (monographic parts)
+ * +cbs+ (bib sources)
+ * +ccs+ (copy statuses)
+ * +circ+ (loan checkout and due dates)
+ * +holdings_xml+ (holdings)
+ * +mmr+ (metarecords)
+ * +mmr_holdings_xml+ (metarecords with holdings)
+ * +mmr_mra+ (metarecords with record attributes)
+ * +mra+ (record attributes)
+ * +sbsum+ (serial basic summaries)
+ * +sdist+ (serial distributions)
+ * +siss+ (serial issues)
+ * +sisum+ (serial index summaries)
+ * +sitem+ (serial items)
+ * +sssum+ (serial supplement summaries)
+ * +sstr+ (serial streams)
+ * +ssub+ (serial subscriptions)
+ * +sunit+ (serial units)
+ * followed by +/+
+ * followed by a record identifier (or in the case of
+ the +biblio_record_entry_feed+ class, multiple IDs separated
+ by commas)
+ * followed, optionally, by limit and offset in square brackets
+ * followed, optionally, by a comma-separated list of "includes"
+ enclosed in curly brackets. The list list of includes is
+ the same as the list of classes with the following addition:
+ * +bre.extern+ (information from the non-MARC parts of a bib
+ record)
+ * followed, optionally, by +/+ and org unit; "-" signifies
+ the top of the org unit tree
+ * followed, optionally, by +/+ and org unit depth
+ * followed, optionally, by +/+ and a path. If the path
+ is +barcode+ and the class is +acp+, the record ID is taken
+ to be a copy barcode rather than a copy ID; for example, in
+ +tag::U2 at acp/ACQ140{acn,bre,mra}/-/0/barcode+, +ACQ140+ is
+ meant to be a copy barcode.
+ * followed, optionally, by +&format=+ and the format in which the record
+ should be retrieved. If this part is omitted, the list of available
+ formats will be retrieved.
+
+
+
+
+New form/genre search and facet index
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+The stock indexing definitions now include a search and facet index on the
+form/genre field (tag 655). This allows genre links in the public catalog
+record display to retrieve works in the same genre. The public catalog genre
+links will no longer display content from the 659 MARC fields.
+
+The genre facet will also display by default in the public catalog. A partial
+reingest during upgrade is required to use this index.
+
+
+
+
+Limit number of facets retrieved during search
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Catalog search now sets a limit on the number of facets retrieved
+per defined facet field. Setting a limit is useful so that
+`open-ils.cstore backends don't end up needlessly consuming
+memory when fetching facets for a large result set; if a broad
+search retrieves over 10,000 author facets (say), even the most
+persistant user is not going to actually look at all of them. Fetching
+fewer facets can also slightly speed up generation of search results.
+
+The limit is controlled by a new global flag, `search.max_facets_per_field`,
+whose label is "Search: maximum number of facet values to retrieve for
+each facet field". The default limit value is 1,000, but lower values
+(e.g., 100) are perhaps even better for most catalogs.
+
+Miscellaneous
+~~~~~~~~~~~~~
+
+* Copy records in the "Concerto" test data set now have prices.
+* The web-based self-check interface now displays the patron
+ information area only when a patron is logged in.
+* The progress page displayed by MARC Batch Edit is improved.
+* The public catalog now better handles the situation where
+ a patron who does not have an email address registered in
+ Evergreen tries to email a record.
+
+
+Acknowledgments
+---------------
+The Evergreen project would like to thank the following
+individuals who contributed code, documentations patches and
+tests to this release of Evergreen:
+
+ * Thomas Berezansky
+ * Adam Bowling
+ * Jason Boyer
+ * Kate Butler
+ * Steven Callender
+ * Steven Chan
+ * Galen Charlton
+ * Mark Cooper
+ * Jeff Davis
+ * Martha Driscoll
+ * Bill Erickson
+ * Jason Etheridge
+ * Blake Henderson
+ * Pasi Kallinen
+ * Jake Litrell
+ * Kathy Lussier
+ * Terran McCanna
+ * Dan Pearl
+ * Michael Peters
+ * Jennifer Pringle
+ * Mike Rylander
+ * Dan Scott
+ * Chris Sharp
+ * Ben Shum
+ * Remington Steed
+ * Jason Stephenson
+ * Josh Stompro
+ * Yamil Suarez
+ * Dan Wells
+ * Bob Wicksall
+
+We would also like to thank the following individuals who
+tested and signed off on patches:
+
+ * Andrea Neiman
+ * Christine Burns
+
+We would also like to thank the following organizations who
+commissioned developments in this release of Evergreen:
+
+ * **TO DO**
+
+We also thank the following organizations whose employees contributed
+to this release:
+
+ * BC Libraries Coooperative
+ * Berklee College of Music
+ * Bibliomation
+ * Calvin College
+ * CW/MARS
+ * Emerald Data
+ * Equinox Software
+ * Georgia Public Library Service
+ * Indiana State Library
+ * Kent County Public Library
+ * King County Library System
+ * Lake Agassiz Regional Library
+ * Laurentian University
+ * MassLNC
+ * MOBIUS
+ * MVLC
+ * NOBLE
+ * Rodgers Memorial Library
+
+We regret any omissions. If a contributor has been inadvertantly
+missed, please open a bug at http://bugs.launchpad.net/evergreen/
+with a correction.
+
-----------------------------------------------------------------------
Summary of changes:
docs/RELEASE_NOTES_2_10.adoc | 928 ++++++++++++++++++++++++++++++++++++++++++
1 files changed, 928 insertions(+), 0 deletions(-)
create mode 100644 docs/RELEASE_NOTES_2_10.adoc
hooks/post-receive
--
Evergreen ILS
More information about the open-ils-commits
mailing list