[open-ils-commits] [GIT] Evergreen ILS branch tags/rel_3_1_14 created. 600a6baa1dd1856a56ae10c368d6cfbef1576bb0

Evergreen Git git at git.evergreen-ils.org
Thu Aug 22 17:30:26 EDT 2019


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, tags/rel_3_1_14 has been created
        at  600a6baa1dd1856a56ae10c368d6cfbef1576bb0 (commit)

- Log -----------------------------------------------------------------
commit 600a6baa1dd1856a56ae10c368d6cfbef1576bb0
Author: blake <blake at mobiusconsortium.org>
Date:   Thu Aug 22 08:07:50 2019 -0500

    Bumping version numbers, adding Upgrade Script and Changelog
    
    Signed-off-by: blake <blake at mobiusconsortium.org>

diff --git a/ChangeLog b/ChangeLog
index 1f72b2c73e..1d4492bd7a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,582 @@
-Evergreen doesn't keep a GNU-style ChangeLog except in release tarballs.
-Those seeking a change log are encouraged to run 'git log -v', or read
-it online at: http://git.evergreen-ils.org/?p=Evergreen.git;a=log
+commit 2d95574185eb2662031285b739fd8685c4a1c5df
+Author: blake <blake at mobiusconsortium.org>
+Date:   Thu Aug 22 08:07:15 2019 -0500
+
+    fixed upgrade script naming convention
+    
+    Signed-off-by: blake <blake at mobiusconsortium.org>
+
+15	15	docs/installation/server_upgrade.adoc
+
+commit 02c7a44c8b80db5cd25d71818b2ccd6ced72767b
+Author: blake <blake at mobiusconsortium.org>
+Date:   Thu Aug 22 08:06:50 2019 -0500
+
+    bumping Perl version string for 3.1.14
+    
+    Signed-off-by: blake <blake at mobiusconsortium.org>
+
+1	1	Open-ILS/src/perlmods/lib/OpenILS.pm
+
+commit 6d683f88c9fb8ac90489c81194be10ed50a9a0a6
+Author: Andrea Buntz Neiman <abneiman at equinoxinitiative.org>
+Date:   Wed Aug 21 13:25:49 2019 -0700
+
+    Docs: Adding 3.1.14 release notes
+    
+    Signed-off-by: Andrea Buntz Neiman <abneiman at equinoxinitiative.org>
+    Signed-off-by: Jane Sandberg <sandbej at linnbenton.edu>
+
+77	0	docs/RELEASE_NOTES_3_1.adoc
+
+commit 697e2419a4f0599589e8a444a95871328671398a
+Author: James Fournie <jamesrf at users.noreply.github.com>
+Date:   Thu May 2 09:53:35 2019 -0700
+
+    LP1751800 - fix fields fields reversing
+    
+    The pop() here will remove the last item in the array, only to add it
+    later with a push() a few lines later.  Instead use a shift() to
+    preserve the order.
+    
+    Signed-off-by: James Fournie <james.fournie at gmail.com>
+    Signed-off-by: Remington Steed <rjs7 at calvin.edu>
+    Signed-off-by: Dan Wells <dbw2 at calvin.edu>
+
+1	1	Open-ILS/web/js/ui/default/staff/reporter/services/template.js
+
+commit c071d06eb6b4c5332b386d05b16e41dcfc99aa91
+Author: Galen Charlton <gmc at equinoxinitiative.org>
+Date:   Wed May 22 11:12:37 2019 -0400
+
+    LP#1785061: move the filter value munging to the template service
+    
+    This allows the reporter app to stay a bit more focused on
+    display concerns.
+    
+    Here's a test plan for the patch series
+    ---------------------------------------
+    [1] Create a reporter template that has a filter field
+        and a filter operator of "In list", "Not in list", "Between",
+        or "Not between" and hard-code a value for that filter
+        in the template, separating values with a comma.
+    [2] Try to create a report from that template; note that it
+        fails with an error.
+    [3] Apply the patch and repeat steps 1 and 2. This time, the
+        report should succeed.
+    
+    Note that this fix applies only to hardcoding filter values in the
+    template; it doesn't change any behavior when attempting to set
+    a filter value for any of the four operators above at the point of
+    creating a report.
+    
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+    
+    Conflicts:
+    	Open-ILS/web/js/ui/default/staff/reporter/template/app.js
+    
+    Signed-off-by: Dan Wells <dbw2 at calvin.edu>
+
+24	0	Open-ILS/web/js/ui/default/staff/reporter/services/template.js
+2	26	Open-ILS/web/js/ui/default/staff/reporter/template/app.js
+
+commit 657577d5209b57eda970d522288b6cc63dfad27c
+Author: Remington Steed <rjs7 at calvin.edu>
+Date:   Thu May 2 09:15:30 2019 -0400
+
+    LP#1785061: Split filter value on comma for "in list" and the like
+    
+    This commit borrows directly from the XUL reporter code (see
+    function __default_value_event_handler () in
+    Open-ILS/web/reports/xul/template-config.js). Basically, when the filter
+    value is saved, certain cases need special treatment, such as splitting
+    an "in list" value on commas. This commit includes a helper function
+    which does the special treatment and saves the filter value. This helper
+    is called both when the value itself is changed, and when the operator
+    is changed.
+    
+    Signed-off-by: Remington Steed <rjs7 at calvin.edu>
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+    
+    Conflicts:
+    	Open-ILS/web/js/ui/default/staff/reporter/template/app.js
+    
+    Signed-off-by: Dan Wells <dbw2 at calvin.edu>
+
+29	1	Open-ILS/web/js/ui/default/staff/reporter/template/app.js
+
+commit 573a311be5cf68f73db792a862acbd045d718354
+Author: Galen Charlton <gmc at equinoxinitiative.org>
+Date:   Mon Aug 5 20:45:28 2019 -0400
+
+    LP#1722827: stamp DB update
+    
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+
+1	1	Open-ILS/src/sql/Pg/002.schema.config.sql
+116	0	Open-ILS/src/sql/Pg/upgrade/1171.schema.trim_spaces_during_856_9_parsing.sql
+0	111	Open-ILS/src/sql/Pg/upgrade/xxxx.metabib.trim_spaces_from_located_uris.sql
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/1171.schema.trim_spaces_during_856_9_parsing.sql
+ delete mode 100644 Open-ILS/src/sql/Pg/upgrade/xxxx.metabib.trim_spaces_from_located_uris.sql
+
+commit c48dc83658716bf372eabbe2ce26c19f75508706
+Author: Rogan Hamby <rogan.hamby at gmail.com>
+Date:   Fri Sep 14 10:48:02 2018 -0400
+
+    LP#1722827: trim spaces from 856$9 when parsing locating URIs
+    
+    This patch ensures that any leading and trailing spaces
+    and non-breaking-spaces in the 856$9 are ignored when
+    extracting the org unit shortname. As a consequence,
+    extraneous leading/trailing whitespace in the $9 will not
+    prevent the located URI from being displayed in the appropriate
+    places.
+    
+    Signed-off-by: Rogan Hamby <rogan.hamby at gmail.com>
+    Signed-off-by: Meg Stroup <mstroup at statelibrary.sc.gov>
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+
+1	1	Open-ILS/src/sql/Pg/030.schema.metabib.sql
+35	0	Open-ILS/src/sql/Pg/t/lp1722827_trim_spaces_from_located_uris.pg
+111	0	Open-ILS/src/sql/Pg/upgrade/xxxx.metabib.trim_spaces_from_located_uris.sql
+ create mode 100644 Open-ILS/src/sql/Pg/t/lp1722827_trim_spaces_from_located_uris.pg
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/xxxx.metabib.trim_spaces_from_located_uris.sql
+
+commit 3d29650ed52f4b2f296571f8b3c578c140430b95
+Author: Michele Morgan <mmorgan at noblenet.org>
+Date:   Wed May 23 13:54:28 2018 -0400
+
+    LP#1511765 Fix error when checking in with zero-balance lost OU setting enabled
+    
+    Fixes an error generated when checking in Lost/Long Overdue/Lost and Paid
+    items with no associated circ when the org unit setting
+    circ.checkin.lost_zero_balance.do_not_change is set to TRUE
+    
+    Items can attain this state from migration, or when the associated circ
+    has been aged.
+    
+    Signed-off-by: Michele Morgan <mmorgan at noblenet.org>
+    Signed-off-by: Kyle Huckins <khuckins at catalyte.io>
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+
+2	1	Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Circulate.pm
+
+commit a63ef776e349a359a58d84d6b5fdf3e719cb627f
+Author: Jane Sandberg <sandbej at linnbenton.edu>
+Date:   Mon Jul 29 11:56:31 2019 -0700
+
+    LP1802593: Correct formatting of language code in Angularjs, KPAC
+    
+    EgWeb offers two different formats of the current locale: ctx.locale and
+    ctx.eg_locale.  This commit configures the lang attribute in AngularJS
+    staff client, OPAC, and KPAC to use eg_locale, since it has the
+    appropriate format (e.g. en-US, fr-CA).
+    
+    Also adds some tests for EgWeb's handling of language codes.
+    
+    Signed-off-by: Jane Sandberg <sandbej at linnbenton.edu>
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+
+4	1	Open-ILS/src/perlmods/t/15-OpenILS-WWW.t
+1	1	Open-ILS/src/templates/base.tt2
+1	1	Open-ILS/src/templates/kpac/parts/base.tt2
+1	1	Open-ILS/src/templates/opac/parts/base.tt2
+1	1	Open-ILS/src/templates/staff/base.tt2
+
+commit 9dc1d022b48ec9c67dfb6cd1766f9637ede0e205
+Author: Kyle Huckins <khuckins at catalyte.io>
+Date:   Thu May 23 20:53:11 2019 +0000
+
+    lp1034058 Disable Renewal Due Dates in the Past
+    
+    Apply minimum date and an out of range flag to prevent
+    selecting or inputting a past date when renewing items from
+    Circulation->Renew Items or Patron->Items Out->Actions->
+    Renew With Specific Due Date.
+    
+    To test
+    -------
+    [1] Create a loan.
+    [2] From the patron's Item Out page, use the Renew With
+        Specific Due Date action. Note that the date widget
+        will allow you to specify a due date in the past.
+    [3] From the Circulation -> Renew interface, note that
+        the date widget will also let you specify a due
+        date in the past.
+    [4] Apply the patch and repeat steps #2 and #3. This time,
+        a due date in the past cannot be entered, both via
+        the calendar button and by direct entry in the text
+        box.
+    
+    Signed-off-by: Kyle Huckins <khuckins at catalyte.io>
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+    Signed-off-by: Chris Sharp <csharp at georgialibraries.org>
+
+3	2	Open-ILS/src/templates/staff/circ/patron/t_renew_with_date_dialog.tt2
+4	2	Open-ILS/src/templates/staff/circ/renew/t_renew.tt2
+2	0	Open-ILS/web/js/ui/default/staff/circ/patron/items_out.js
+2	0	Open-ILS/web/js/ui/default/staff/circ/renew/app.js
+
+commit 2dd29323575ae1caa5afe7bab8780de90fb37949
+Author: Jeff Davis <jdavis at sitka.bclibraries.ca>
+Date:   Fri Aug 17 10:32:31 2018 -0700
+
+    LP#1787676: sort Z39.50 sources in JS, retaining Local Catalog at top of list
+    
+    This reverts the original fix for LP#1119370.
+    
+    Signed-off-by: Jeff Davis <jdavis at sitka.bclibraries.ca>
+    Signed-off-by: Jane Sandberg <sandbej at linnbenton.edu>
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+
+1	1	Open-ILS/src/templates/staff/cat/z3950/t_target.tt2
+2	2	Open-ILS/web/js/ui/default/staff/cat/services/z3950.js
+
+commit 6ec54ca7daaae6fa84ba37339564f4ebaabc248b
+Author: Jane Sandberg <sandbej at linnbenton.edu>
+Date:   Fri May 18 19:41:12 2018 -0700
+
+    LP1742523: Allow two strings in the mark damaged popup to be translated
+    
+    Signed-off-by: Jane Sandberg <sandbej at linnbenton.edu>
+    Signed-off-by: Jason Stephenson <jason at sigio.com>
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+
+3	3	Open-ILS/src/templates/staff/circ/share/t_mark_damaged.tt2
+
+commit 8a5df85868cba2f659844a997c7fd9d58a818cb1
+Author: Jason Boyer <jboyer at library.in.gov>
+Date:   Mon Oct 29 10:53:41 2018 -0400
+
+    LP1800484: Substitute 0 for missing Totals values
+    
+    If nothing is returned for the Totals on the patron Bills tab,
+    use a 0 rather than leaving the value missing.
+    
+    Signed-off-by: Jason Boyer <jboyer at library.in.gov>
+    Signed-off-by: Rogan Hamby <rogan.hamby at gmail.com>
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+
+3	3	Open-ILS/src/templates/staff/circ/patron/t_bills.tt2
+
+commit ba284537646742c473a173b9c58ed2964b611a7f
+Author: Galen Charlton <gmc at equinoxinitiative.org>
+Date:   Fri Aug 2 12:44:16 2019 -0400
+
+    LP#1329920: (follow-up) set searchFormat as well
+    
+    AutoFieldWidget's searchFormat (among other things) controls
+    the formatting of the selected value for a drop-down, so
+    this patch sets it for funds as well. This patch also tidys
+    up whitespace.
+    
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+
+2	2	Open-ILS/web/js/ui/default/conify/global/acq/distribution_formula.js
+
+commit 16c97701cd891bf7105d6120ab26cbb667b3a750
+Author: Tiffany Little <tlittle at georgialibraries.org>
+Date:   Fri Jan 18 15:54:27 2019 -0500
+
+    LP#1329920 Add fund year to distribution formula fund dropdown menu
+    
+    In distribution formulas, adds the fund year in parentheses to the
+    funds listed in the Fund drop-down menu.
+    
+    Signed-off-by: Tiffany Little <tlittle at georgialibraries.org>
+    Signed-off-by: Kyle Huckins <khuckins at catalyte.io>
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+
+3	0	Open-ILS/web/js/ui/default/conify/global/acq/distribution_formula.js
+
+commit 21ac925f95716c9f301b75e94bc5f69b1d695e91
+Author: Rogan Hamby <rogan.hamby at gmail.com>
+Date:   Fri Mar 9 08:38:06 2018 -0500
+
+    LP#1650409: improve authority_control_fields.pl's --all and --days_back processing
+    
+    When --all is used, the list of bibliographic records to process is now
+    retrieved via a direct database query instead of using open-ils.storage,
+    avoiding a potential timeout.
+    
+    The query used to fetch records when --days_back is used now fetches
+    all records that were edited up to the specified number of days
+    ago. Prior to this patch, --days_back ended up fetching records
+    created on the current day and records edited on the --days_back
+    day, skipping any that were updated in between.
+    
+    Signed-off-by: Rogan Hamby <rogan.hamby at gmail.com>
+    Signed-off-by: Jane Sandberg <sandbej at linnbenton.edu>
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+
+33	24	Open-ILS/src/support-scripts/authority_control_fields.pl.in
+
+commit e714feca20eeea64e49a2092293ab991430f5d73
+Author: Garry Collum <gcollum at gmail.com>
+Date:   Mon May 20 14:41:32 2019 -0400
+
+    LP1813078 Menus are sometimes grayed out based on browser size
+    
+    This patch changes a media definition in css from 800px to 768px, the md column
+    size for bootstrap.css.  Items in the menus font color changed when the browser
+    was sized between 768px and 800px.
+    
+    To test.
+    1. Expand the Circulation menu, and change the browser to a width between
+    768px and 800px.  Notice that the menu items change to a gray color.
+    2. Apply the patch, and then change the width of the browser.  Notice that
+    the menu items do not change color before the menu is collapsed.
+    
+    Signed-off-by: Garry Collum <gcollum at gmail.com>
+    Signed-off-by: Kyle Huckins <khuckins at catalyte.io>
+    Signed-off-by: Jane Sandberg <sandbej at linnbenton.edu>
+
+3	3	Open-ILS/src/templates/staff/css/style.css.tt2
+
+commit 8478018bcb14f6ac29fb6909d97ee1841d2f306d
+Author: Kristy Bauman <45376827+kraeb at users.noreply.github.com>
+Date:   Wed Apr 24 16:12:32 2019 -0400
+
+    Docs: LP1826263: Update batch_importing_MARC.adoc
+    
+    Signed-off-by: Kristy Bauman <45376827+kraeb at users.noreply.github.com>
+    Signed-off-by: Jane Sandberg <sandbej at linnbenton.edu>
+
+2	2	docs/cataloging/batch_importing_MARC.adoc
+
+commit ef56658890d278cc18f4fc679ea976ab042e5c2c
+Author: Dan Briem <dbriem at wlsmail.org>
+Date:   Fri Jul 5 19:34:13 2019 -0400
+
+    LP#1805895 Bucket grid configuration updates do not save
+    
+    Some saved columns stick, but others are ignored. Issue affects eg-grid[s]
+    that use the auto-fields attr to load all columns on idl-class attr. This
+    is because saved columns are whitelisted against the initial column config
+    before the auto fields are loaded.
+    
+    Patch adds $scope.handleAutoFields() to egCore.hatch.getItem. This happens
+    after the eg-grid-fields transclude (no collisions) but before the saved
+    columns are whitelisted. The original call remains to handle cases where
+    there is no persist-key or saved config.
+    
+    Test:
+    1. Go to Circulation->User Buckets
+    2. Add the Is Deleted column to the grid
+    3. Save columns and refresh (note Is Deleted is not visible)
+    4. Apply patch and repeat steps 1-3 (note Is Deleted is now visible)
+    
+    Signed-off-by: Dan Briem <dbriem at wlsmail.org>
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+    Signed-off-by: Jason Boyer <jboyer at library.in.gov>
+
+3	0	Open-ILS/web/js/ui/default/staff/services/grid.js
+
+commit 80ca622d355d9a929dfcf96851c5845acb9758e8
+Author: Geoff Sams <gsams at roanoketexas.com>
+Date:   Wed Mar 6 20:54:15 2019 -0600
+
+    LP1681930 fm_IDL.xml billing/paid total column type correction.
+    
+    Both xact_billing_totals and xact_paid_totals had incorrect unvoided
+    sum column types of int, this corrects them both to money instead.
+    
+    Signed-off-by: Geoff Sams <gsams at roanoketexas.com>
+    Signed-off-by: Rogan Hamby <rogan.hamby at gmail.com>
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+
+2	2	Open-ILS/examples/fm_IDL.xml
+
+commit 8e2cdd96ba75c308e132d2272b2b5bf783983816
+Author: Garry Collum <gcollum at gmail.com>
+Date:   Fri May 18 19:57:42 2018 -0400
+
+    LP1766982 - CSV downloads contain the string 'null' for null values.
+    
+    Adds a check for null and undefined in the getItemTextContent function
+    in grid.js which is called by both the code to download grid data as
+    CSV and for printing grids.
+    
+    To test
+    1. Place holds on a couple of titles, one of which has no author. In the
+       test data TCN 226, The Crow, has no author data.
+    2. Pull up the Holds Pull List.
+    3. Download Full CSV - to download the CSV file and view it in a
+       spreadsheet or text editor looking specifically at the Author column.
+    4. Print Full Grid - to view the data in a printout, since this function
+       also affects printing.
+    5. Go back to the Holds Pull List and click on one of the barcodes under
+       the Current Copy column.
+    6. Click on the List View.
+    7. Download Full CSV - open the resulting file to inspect the
+       Alert Message data.
+    8. Apply patch and repeat steps 2-7.
+    
+    Signed-off-by: gcollum <gcollum at gmail.com>
+    Signed-off-by: Josh Stompro <stompro at stompro.org>
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+
+1	0	Open-ILS/web/js/ui/default/staff/services/grid.js
+
+commit b3577919af0b7891990ae4069018d7c3780a4de9
+Author: Josh Stompro <stompro at stompro.org>
+Date:   Wed Feb 27 15:07:43 2019 -0600
+
+    LP#1798187 - Support CRLF and LF format for item status import files
+    
+    Testing Plan:
+    
+    Before patch, try to import a file in CRLF end of line format that includes
+    leading and trailing spaces, empty lines, lines of just spaces or
+    barcodes with spaces.  The import will fail to load those items and will
+    stop processing when it hits certain situations.
+    
+    After patch, try to import a file in CRLF EOL format that includes barcodes
+    with trailing spaces, leading spaces, barcodes with spaces, and/or
+    empty lines.  The import will load all barcodes.
+    
+    Signed-off-by: Josh Stompro <stompro at stompro.org>
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+    Signed-off-by: Jane Sandberg <sandbej at linnbenton.edu>
+
+1	0	Open-ILS/src/templates/staff/cat/item/index.tt2
+11	5	Open-ILS/web/js/ui/default/staff/cat/item/app.js
+
+commit 430986bcede3e3d48480436e6772e414a5516118
+Author: Galen Charlton <gmc at equinoxinitiative.org>
+Date:   Fri May 24 14:04:33 2019 -0400
+
+    LP#1796903: (follow-up) disabled the calendar button when the text input is disabled
+    
+    Disabling the calendar button when the datepicker is disabled allows
+    ChromeVox (at least) to skip past a button that cannot be invoked
+    until (like is possible in the checkout page) the picker is enabled.
+    
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+    Signed-off-by: Jane Sandberg <sandbej at linnbenton.edu>
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+
+1	1	Open-ILS/src/templates/staff/share/t_datetime.tt2
+
+commit 399a2d33984a631ddbc1d5231aae237df9f2b55b
+Author: Jane Sandberg <sandbej at linnbenton.edu>
+Date:   Tue Oct 9 07:37:56 2018 -0700
+
+    LP1796903: Make date picker calendar button more accessible
+    
+    To test:
+    
+    1) After applying this commit, navigate to a place in the Web client
+    that includes a date picker (such as the checkin screen).
+    2) Hover over the calendar button with your mouse and confirm that a
+    tooltip appears.
+    3) Verify that the button element has an aria-label attribute.
+    4) Verify that the button element has an aria-pressed attribute that
+    is false when the date picker is closed; true when it is open.
+    5) Use a screen reader (like NVDA or ChromeVox).  Verify that when you
+    tab over to the date picker, the user is informed of the aria-label
+    and aria-pressed values
+    
+    Signed-off-by: Jane Sandberg <sandbej at linnbenton.edu>
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+
+3	2	Open-ILS/src/templates/staff/share/t_datetime.tt2
+
+commit 6b023099c94b350113ae4c9afa27183610bdd24f
+Author: Galen Charlton <gmc at equinoxinitiative.org>
+Date:   Wed Jul 3 17:53:01 2019 -0400
+
+    LP#1777207: teach egGrid how to prepend rows more efficiently
+    
+    The checkin and checkout grids in the AngularJS client have
+    been doing full grid refreshes when adding a checkin or
+    checkout to their respective grids. While this does not
+    result in re-fetching data for the loans that were already
+    processed, as more entries get added to the grid the time
+    it takes to do a full digest of the grid contents during a
+    egGrid.collect() (which empties the list of displayed rows,
+    then refills it), gets progressively longer. Grids that have
+    only ~40 entries have been observed to take several seconds
+    purely on the AngularJS rendering phase.
+    
+    This patch teaches egGrid a new prepend() method that
+    takes the first element from the underlying data source and
+    unshifts it onto the list of displayed grid rows, saving much
+    rendering time. The prepend() method will also force the
+    grid offset back to 0 if it isn't already. Note that if
+    an item that would be added via prepend() might duplicate an
+    existing row entry, prepend() will do a full collect() instead.
+    
+    If the data source has sort options set, the prepend() will
+    remove them. For arrayNotifier-based data sources, as are used
+    in the checkin and checkout grids, this means that if the user
+    sorts the contents of the grid, then does a circ transaction,
+    the new transaction will still appear at the top of the list.
+    Due to the way arrayNotifier currently works, the remaining
+    entries will retain their previous ordering.
+    
+    As an implementation note, prepend() is likely going to work
+    /only/ for arrayNotifier grid data sources.
+    
+    To test
+    -------
+    [1] In the checkin grid, check in a large number of items.
+        Note that the time it takes to each each item gets
+        progressively longer.
+    [2] Apply the patch and repeat step 1. This time, the time
+        for each checkin should not significantly vary.
+    [3] Verify that column sorting works as expected.
+    [4] Upon sorting the grid, do more checkins and note that
+        the new transactions show up at the top.
+    [5] Verify that the checkout grid continues to behave as expected.
+    
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+    Signed-off-by: Dan Wells <dbw2 at calvin.edu>
+
+6	4	Open-ILS/web/js/ui/default/staff/circ/checkin/app.js
+1	1	Open-ILS/web/js/ui/default/staff/circ/patron/checkout.js
+72	0	Open-ILS/web/js/ui/default/staff/services/grid.js
+
+commit d3a2750a6b211ef02831b3ccc99c9b7bcc8dcc9f
+Author: Galen Charlton <gmc at equinoxinitiative.org>
+Date:   Tue Jul 9 14:43:18 2019 -0400
+
+    LP#1777207: have eg-grid generate DOM nodes only for visible columns
+    
+    This patch changes an ng-show to an ng-if to generate DOM nodes
+    for grid cells only for visible columns. Prior to this patch, all
+    grid cells were generated, but the ones that corresponded to hidden
+    columns would simply be set as hidden.
+    
+    By not generating the cells unless they're meant to be visible, grid
+    refreshes for wide grids (like the checkin table) render much more
+    quickly for a couple reasons:
+    
+    - simply that there are fewer DOM nodes to process
+    - probably more importantly, fewer AngularJS watches get
+      created
+    
+    To test
+    -------
+    [1] In the checkin grid, check in a large number of items, then
+        observe/profile timing as you change the number of visible rows.
+    [2] Apply the patch and repeat step 1. This time, the grid
+        refreshe should be measurably (and visibly) faster.
+    [3] Test other AngularJS grids and verify that grid display and
+        grid actions are normal.
+    
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+    Signed-off-by: Dan Wells <dbw2 at calvin.edu>
+
+1	1	Open-ILS/src/templates/staff/share/t_autogrid.tt2
+
+commit eb29c8b7883b16708b31a4b2f4af525c05d3b590
+Author: Dan Wells <dbw2 at calvin.edu>
+Date:   Wed Jul 3 11:33:10 2019 -0400
+
+    Forward-port 3.1.13 upgrade script
+    
+    Signed-off-by: Dan Wells <dbw2 at calvin.edu>
+
+5	0	Open-ILS/src/sql/Pg/version-upgrade/3.1.12-3.1.13-upgrade-db.sql
+ create mode 100644 Open-ILS/src/sql/Pg/version-upgrade/3.1.12-3.1.13-upgrade-db.sql
diff --git a/Open-ILS/src/perlmods/lib/OpenILS/Application.pm b/Open-ILS/src/perlmods/lib/OpenILS/Application.pm
index d750216454..d1d26d4f6f 100644
--- a/Open-ILS/src/perlmods/lib/OpenILS/Application.pm
+++ b/Open-ILS/src/perlmods/lib/OpenILS/Application.pm
@@ -7,7 +7,7 @@ use OpenILS::Utils::Fieldmapper;
 sub ils_version {
     # version format is "x-y-z", for example "2-0-0" for Evergreen 2.0.0
     # For branches, format is "x-y"
-    return "HEAD";
+    return "3-1-14";
 }
 
 __PACKAGE__->register_method(
diff --git a/Open-ILS/src/sql/Pg/002.schema.config.sql b/Open-ILS/src/sql/Pg/002.schema.config.sql
index 4f34802442..fa2b48a99d 100644
--- a/Open-ILS/src/sql/Pg/002.schema.config.sql
+++ b/Open-ILS/src/sql/Pg/002.schema.config.sql
@@ -93,6 +93,7 @@ CREATE TRIGGER no_overlapping_deps
     FOR EACH ROW EXECUTE PROCEDURE evergreen.array_overlap_check ('deprecates');
 
 INSERT INTO config.upgrade_log (version, applied_to) VALUES ('1171', :eg_version); -- rhamby/mstroup/gmcharlt
+INSERT INTO config.upgrade_log (version, applied_to) VALUES ('3.1.14', :eg_version);
 
 CREATE TABLE config.bib_source (
 	id		SERIAL	PRIMARY KEY,
diff --git a/Open-ILS/src/sql/Pg/version-upgrade/3.1.13-3.1.14-upgrade-db.sql b/Open-ILS/src/sql/Pg/version-upgrade/3.1.13-3.1.14-upgrade-db.sql
new file mode 100644
index 0000000000..024b52572f
--- /dev/null
+++ b/Open-ILS/src/sql/Pg/version-upgrade/3.1.13-3.1.14-upgrade-db.sql
@@ -0,0 +1,119 @@
+--Upgrade Script for 3.1.13 to 3.1.14
+\set eg_version '''3.1.14'''
+BEGIN;
+INSERT INTO config.upgrade_log (version, applied_to) VALUES ('3.1.14', :eg_version);
+
+SELECT evergreen.upgrade_deps_block_check('1171', :eg_version);
+
+CREATE OR REPLACE FUNCTION biblio.extract_located_uris( bib_id BIGINT, marcxml TEXT, editor_id INT ) RETURNS VOID AS $func$
+DECLARE
+    uris            TEXT[];
+    uri_xml         TEXT;
+    uri_label       TEXT;
+    uri_href        TEXT;
+    uri_use         TEXT;
+    uri_owner_list  TEXT[];
+    uri_owner       TEXT;
+    uri_owner_id    INT;
+    uri_id          INT;
+    uri_cn_id       INT;
+    uri_map_id      INT;
+BEGIN
+
+    -- Clear any URI mappings and call numbers for this bib.
+    -- This leads to acn / auricnm inflation, but also enables
+    -- old acn/auricnm's to go away and for bibs to be deleted.
+    FOR uri_cn_id IN SELECT id FROM asset.call_number WHERE record = bib_id AND label = '##URI##' AND NOT deleted LOOP
+        DELETE FROM asset.uri_call_number_map WHERE call_number = uri_cn_id;
+        DELETE FROM asset.call_number WHERE id = uri_cn_id;
+    END LOOP;
+
+    uris := oils_xpath('//*[@tag="856" and (@ind1="4" or @ind1="1") and (@ind2="0" or @ind2="1")]',marcxml);
+    IF ARRAY_UPPER(uris,1) > 0 THEN
+        FOR i IN 1 .. ARRAY_UPPER(uris, 1) LOOP
+            -- First we pull info out of the 856
+            uri_xml     := uris[i];
+
+            uri_href    := (oils_xpath('//*[@code="u"]/text()',uri_xml))[1];
+            uri_label   := (oils_xpath('//*[@code="y"]/text()|//*[@code="3"]/text()',uri_xml))[1];
+            uri_use     := (oils_xpath('//*[@code="z"]/text()|//*[@code="2"]/text()|//*[@code="n"]/text()',uri_xml))[1];
+
+            IF uri_label IS NULL THEN
+                uri_label := uri_href;
+            END IF;
+            CONTINUE WHEN uri_href IS NULL;
+
+            -- Get the distinct list of libraries wanting to use 
+            SELECT  ARRAY_AGG(
+                        DISTINCT REGEXP_REPLACE(
+                            x,
+                            $re$^.*?\((\w+)\).*$$re$,
+                            E'\\1'
+                        )
+                    ) INTO uri_owner_list
+              FROM  UNNEST(
+                        oils_xpath(
+                            '//*[@code="9"]/text()|//*[@code="w"]/text()|//*[@code="n"]/text()',
+                            uri_xml
+                        )
+                    )x;
+
+            IF ARRAY_UPPER(uri_owner_list,1) > 0 THEN
+
+                -- look for a matching uri
+                IF uri_use IS NULL THEN
+                    SELECT id INTO uri_id
+                        FROM asset.uri
+                        WHERE label = uri_label AND href = uri_href AND use_restriction IS NULL AND active
+                        ORDER BY id LIMIT 1;
+                    IF NOT FOUND THEN -- create one
+                        INSERT INTO asset.uri (label, href, use_restriction) VALUES (uri_label, uri_href, uri_use);
+                        SELECT id INTO uri_id
+                            FROM asset.uri
+                            WHERE label = uri_label AND href = uri_href AND use_restriction IS NULL AND active;
+                    END IF;
+                ELSE
+                    SELECT id INTO uri_id
+                        FROM asset.uri
+                        WHERE label = uri_label AND href = uri_href AND use_restriction = uri_use AND active
+                        ORDER BY id LIMIT 1;
+                    IF NOT FOUND THEN -- create one
+                        INSERT INTO asset.uri (label, href, use_restriction) VALUES (uri_label, uri_href, uri_use);
+                        SELECT id INTO uri_id
+                            FROM asset.uri
+                            WHERE label = uri_label AND href = uri_href AND use_restriction = uri_use AND active;
+                    END IF;
+                END IF;
+
+                FOR j IN 1 .. ARRAY_UPPER(uri_owner_list, 1) LOOP
+                    uri_owner := uri_owner_list[j];
+
+                    SELECT id INTO uri_owner_id FROM actor.org_unit WHERE shortname = BTRIM(REPLACE(uri_owner,chr(160),''));
+                    CONTINUE WHEN NOT FOUND;
+
+                    -- we need a call number to link through
+                    SELECT id INTO uri_cn_id FROM asset.call_number WHERE owning_lib = uri_owner_id AND record = bib_id AND label = '##URI##' AND NOT deleted;
+                    IF NOT FOUND THEN
+                        INSERT INTO asset.call_number (owning_lib, record, create_date, edit_date, creator, editor, label)
+                            VALUES (uri_owner_id, bib_id, 'now', 'now', editor_id, editor_id, '##URI##');
+                        SELECT id INTO uri_cn_id FROM asset.call_number WHERE owning_lib = uri_owner_id AND record = bib_id AND label = '##URI##' AND NOT deleted;
+                    END IF;
+
+                    -- now, link them if they're not already
+                    SELECT id INTO uri_map_id FROM asset.uri_call_number_map WHERE call_number = uri_cn_id AND uri = uri_id;
+                    IF NOT FOUND THEN
+                        INSERT INTO asset.uri_call_number_map (call_number, uri) VALUES (uri_cn_id, uri_id);
+                    END IF;
+
+                END LOOP;
+
+            END IF;
+
+        END LOOP;
+    END IF;
+
+    RETURN;
+END;
+$func$ LANGUAGE PLPGSQL;
+
+COMMIT;
diff --git a/Open-ILS/xul/staff_client/chrome/content/main/about.html b/Open-ILS/xul/staff_client/chrome/content/main/about.html
index b2b87b683f..cf61ad3622 100644
--- a/Open-ILS/xul/staff_client/chrome/content/main/about.html
+++ b/Open-ILS/xul/staff_client/chrome/content/main/about.html
@@ -1,7 +1,7 @@
 <html><head><script></script></head><body onload="var x = document.getElementById('version'); var version ='/xul/server/'.split(/\//)[2]; if (version == 'server') { version = 'versionless debug build'; } x.appendChild(document.createTextNode(version));">
 <h1 style="text-decoration: underline">Evergreen</h1>
 <p>Target Server ID: <span id="version"></span></p>
-<p>$HeadURL$</p>
+<p>http://git.evergreen-ils.org/?p=Evergreen.git;a=shortlog;h=refs/heads/tags/rel_3_1_14</p>
 <h2>What is Evergreen?</h2>
 <blockquote>
 <p>
diff --git a/Open-ILS/xul/staff_client/defaults/preferences/prefs.js b/Open-ILS/xul/staff_client/defaults/preferences/prefs.js
index 0613a13ddf..c42ec88a6e 100644
--- a/Open-ILS/xul/staff_client/defaults/preferences/prefs.js
+++ b/Open-ILS/xul/staff_client/defaults/preferences/prefs.js
@@ -11,7 +11,7 @@ pref("toolkit.singletonWindowType", "eg_main");
 pref("open-ils.enable_join_tabs", true);
 
 // We'll use this one to help brand some build information into the client, and rely on subversion keywords
-pref("open-ils.repository.headURL","$HeadURL$");
+pref("open-ils.repository.headURL","http://git.evergreen-ils.org/?p=Evergreen.git;a=shortlog;h=refs/heads/tags/rel_3_1_14");
 pref("open-ils.repository.author","$Author$");
 pref("open-ils.repository.revision","$Revision$");
 pref("open-ils.repository.date","$Date$");
diff --git a/Open-ILS/xul/staff_client/windowssetup.nsi b/Open-ILS/xul/staff_client/windowssetup.nsi
index a9543579a8..ae0bbdf527 100644
--- a/Open-ILS/xul/staff_client/windowssetup.nsi
+++ b/Open-ILS/xul/staff_client/windowssetup.nsi
@@ -3,7 +3,7 @@
 ; HM NIS Edit Wizard helper defines
 ; Old versions of makensis don't like this, moved to Makefile
 ;!define /file PRODUCT_VERSION "client/VERSION"
-!define PRODUCT_TAG "Master"
+!define PRODUCT_TAG "3.1"
 !define PRODUCT_INSTALL_TAG "${PRODUCT_TAG}"
 !define UI_IMAGESET "beta"
 ;!define UI_IMAGESET "release"
diff --git a/README b/README
deleted file mode 120000
index 1ee2103e6f..0000000000
--- a/README
+++ /dev/null
@@ -1 +0,0 @@
-docs/installation/server_installation.adoc
\ No newline at end of file
diff --git a/README b/README
new file mode 100644
index 0000000000..5413c538d6
--- /dev/null
+++ b/README
@@ -0,0 +1,685 @@
+Installing the Evergreen server
+===============================
+:toc:
+:numbered:
+
+Preamble: referenced user accounts
+----------------------------------
+
+In subsequent sections, we will refer to a number of different accounts, as
+follows:
+
+  * Linux user accounts:
+    ** The *user* Linux account is the account that you use to log onto the
+       Linux system as a regular user.
+    ** The *root* Linux account is an account that has system administrator
+       privileges. On Debian you can switch to this account from
+       your *user* account by issuing the `su -` command and entering the
+       password for the *root* account when prompted. On Ubuntu you can switch
+       to this account from your *user* account using the `sudo su -` command
+       and entering the password for your *user* account when prompted.
+    ** The *opensrf* Linux account is an account that you create when installing
+       OpenSRF. You can switch to this account from the *root* account by
+       issuing the `su - opensrf` command.
+    ** The *postgres* Linux account is created automatically when you install
+       the PostgreSQL database server. You can switch to this account from the
+       *root* account by issuing the `su - postgres` command.
+  * PostgreSQL user accounts:
+    ** The *evergreen* PostgreSQL account is a superuser account that you will
+       create to connect to the PostgreSQL database server.
+  * Evergreen administrator account:
+    ** The *egadmin* Evergreen account is an administrator account for
+       Evergreen that you will use to test connectivity and configure your
+       Evergreen instance.
+
+Preamble: developer instructions
+--------------------------------
+
+[NOTE]
+Skip this section if you are using an official release tarball downloaded
+from http://evergreen-ils.org/egdownloads
+
+Developers working directly with the source code from the Git repository,
+rather than an official release tarball, must perform one step before they 
+can proceed with the `./configure` step.
+
+As the *user* Linux account, issue the following command in the Evergreen
+source directory to generate the configure script and Makefiles:
+
+[source, bash]
+------------------------------------------------------------------------------
+autoreconf -i
+------------------------------------------------------------------------------
+
+Installing prerequisites
+------------------------
+
+  * **PostgreSQL**: The minimum supported version is 9.4.
+  * **Linux**: Evergreen has been tested on Debian Stretch (9), 
+    Debian Jessie (8), Debian Wheezy (7), Ubuntu Xenial Xerus (16.04), 
+    and Ubuntu Trusty Tahr (14.04).
+    If you are running an older version of these distributions, you may want 
+    to upgrade before upgrading Evergreen. For instructions on upgrading these
+    distributions, visit the Debian or Ubuntu websites.
+  * **OpenSRF**: The minimum supported version of OpenSRF is 3.0.0.
+
+
+Evergreen has a number of prerequisite packages that must be installed
+before you can successfully configure, compile, and install Evergreen.
+
+1. Begin by installing the most recent version of OpenSRF (3.0.0 or later).
+   You can download OpenSRF releases from http://evergreen-ils.org/opensrf-downloads/
+2. On some distributions, it is necessary to install PostgreSQL 9.4+ from external
+   repositories.
++
+  * Debian (Wheezy) and Ubuntu (Trusty) comes with older versions of 
+    PostgreSQL, so steps are taken to automatically utilize the 
+    PostgreSQL community's apt sources. 
+    (For complete details, see: https://wiki.postgresql.org/wiki/Apt)
+  * Debian (Jessie/Stretch) and Ubuntu (Xenial) comes with PostgreSQL 9.4+,
+    so no additional steps are required.
++
+3. Issue the following commands as the *root* Linux account to install
+   prerequisites using the `Makefile.install` prerequisite installer,
+   substituting `debian-stretch`, `debian-jessie`, `debian-wheezy`,
+   `ubuntu-xenial`, or `ubuntu-trusty` for <osname> below:
++
+[source, bash]
+------------------------------------------------------------------------------
+make -f Open-ILS/src/extras/Makefile.install <osname>
+------------------------------------------------------------------------------
++
+4. Add the libdbi-libdbd libraries to the system dynamic library path by
+   issuing the following commands as the *root* Linux account:
++
+[NOTE]
+You should skip this step if installing on Ubuntu Trusty/Xenial or Debian Jessie/Stretch. The Ubuntu
+and Debian Jessie/Stretch targets use libdbd-pgsql from packages.
++
+.Debian Wheezy
+[source, bash]
+------------------------------------------------------------------------------
+echo "/usr/local/lib/dbd" > /etc/ld.so.conf.d/eg.conf
+ldconfig
+------------------------------------------------------------------------------
+
+[[optional_developer_additions]]
+5. OPTIONAL: Developer additions
++
+To perform certain developer tasks from a Git source code checkout, 
+additional packages may be required.  As the *root* Linux account:
++
+ * To install packages needed for retrieving and managing web dependencies,
+   use the <osname>-developer Makefile.install target.  Currently, 
+   this is only needed for building and installing the (preview) browser 
+   staff client.
++
+[source, bash]
+------------------------------------------------------------------------------
+make -f Open-ILS/src/extras/Makefile.install <osname>-developer
+------------------------------------------------------------------------------
++
+ * To install packages required for building Evergreen translations, use
+   the <osname>-translator Makefile.install target.
++
+[source, bash]
+------------------------------------------------------------------------------
+make -f Open-ILS/src/extras/Makefile.install <osname>-translator
+------------------------------------------------------------------------------
++
+ * To install packages required for building Evergreen release bundles, use
+   the <osname>-packager Makefile.install target.
++
+[source, bash]
+------------------------------------------------------------------------------
+make -f Open-ILS/src/extras/Makefile.install <osname>-packager
+------------------------------------------------------------------------------
+
+Extra steps for web staff client
+--------------------------------
+
+[NOTE]
+Skip this entire section if you are using an official release tarball downloaded
+from http://evergreen-ils.org/downloads
+
+Install dependencies for web staff client
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+[NOTE]
+You may skip this section if you have installed the
+<<optional_developer_additions,optional developer additions>>.  You will still need to do the following
+steps in <<install_files_for_web_staff_client,Install files for web staff client>>.
+
+1. Install the long-term stability (LTS) release of
+https://nodejs.org[Node.js]. Add the Node.js `/bin` directory to your
+environment variable `PATH`.
+
+[[install_files_for_web_staff_client]]
+Install files for web staff client
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+1. Building, Testing, Minification: The remaining steps all take place within
+   the staff JS web root:
++
+[source,sh]
+------------------------------------------------------------------------------
+cd $EVERGREEN_ROOT/Open-ILS/web/js/ui/default/staff/
+------------------------------------------------------------------------------
++
+2. Install Project-local Dependencies. npm inspects the 'package.json' file
+   for dependencies and fetches them from the Node package network.
++
+[source,sh]
+------------------------------------------------------------------------------
+npm install   # fetch JS dependencies
+------------------------------------------------------------------------------
++
+3. Run the build script.
++
+[source,sh]
+------------------------------------------------------------------------------
+# build, run tests, concat+minify
+npm run build-prod
+npm run test
+------------------------------------------------------------------------------
+
+Configuration and compilation instructions
+------------------------------------------
+
+For the time being, we are still installing everything in the `/openils/`
+directory. From the Evergreen source directory, issue the following commands as
+the *user* Linux account to configure and build Evergreen:
+
+[source, bash]
+------------------------------------------------------------------------------
+PATH=/openils/bin:$PATH ./configure --prefix=/openils --sysconfdir=/openils/conf
+make
+------------------------------------------------------------------------------
+
+These instructions assume that you have also installed OpenSRF under `/openils/`.
+If not, please adjust PATH as needed so that the Evergreen `configure` script
+can find `osrf_config`.
+
+Installation instructions
+-------------------------
+
+1. Once you have configured and compiled Evergreen, issue the following
+   command as the *root* Linux account to install Evergreen, build the server
+   portion of the staff client, and copy example configuration files to
+   `/openils/conf`.
+   Change the value of the `STAFF_CLIENT_STAMP_ID` variable to match the version
+   of the staff client that you will use to connect to the Evergreen server.
++
+[source, bash]
+------------------------------------------------------------------------------
+make STAFF_CLIENT_STAMP_ID=rel_3_1_14 install
+------------------------------------------------------------------------------
++
+2. The server portion of the staff client expects `http://hostname/xul/server`
+   to resolve. Issue the following commands as the *root* Linux account to
+   create a symbolic link pointing to the `server` subdirectory of the server
+   portion of the staff client that we just built using the staff client ID
+   'rel_name':
++
+[source, bash]
+------------------------------------------------------------------------------
+cd /openils/var/web/xul
+ln -sf rel_name/server server
+------------------------------------------------------------------------------
+
+Change ownership of the Evergreen files
+---------------------------------------
+
+All files in the `/openils/` directory and subdirectories must be owned by the
+`opensrf` user. Issue the following command as the *root* Linux account to
+change the ownership on the files:
+
+[source, bash]
+------------------------------------------------------------------------------
+chown -R opensrf:opensrf /openils
+------------------------------------------------------------------------------
+
+Run ldconfig
+------------
+
+On Debian Stretch, run the following command as the root user:
+
+[source, bash]
+------------------------------------------------------------------------------
+ldconfig
+------------------------------------------------------------------------------
+
+Additional Instructions for Developers
+--------------------------------------
+
+[NOTE]
+Skip this section if you are using an official release tarball downloaded
+from http://evergreen-ils.org/egdownloads
+
+Developers working directly with the source code from the Git repository,
+rather than an official release tarball, need to install the Dojo Toolkit
+set of JavaScript libraries. The appropriate version of Dojo is included in
+Evergreen release tarballs. Developers should install the Dojo 1.3.3 version
+of Dojo by issuing the following commands as the *opensrf* Linux account:
+
+[source, bash]
+------------------------------------------------------------------------------
+wget http://download.dojotoolkit.org/release-1.3.3/dojo-release-1.3.3.tar.gz
+tar -C /openils/var/web/js -xzf dojo-release-1.3.3.tar.gz
+cp -r /openils/var/web/js/dojo-release-1.3.3/* /openils/var/web/js/dojo/.
+------------------------------------------------------------------------------
+
+
+Configure the Apache Web server
+-------------------------------
+
+. Use the example configuration files in `Open-ILS/examples/apache/` (for
+Apache versions below 2.4) or `Open-ILS/examples/apache_24/` (for Apache
+versions 2.4 or greater) to configure your Web server for the Evergreen
+catalog, staff client, Web services, and administration interfaces. Issue the
+following commands as the *root* Linux account:
++
+.Debian Wheezy
+[source,bash]
+------------------------------------------------------------------------------
+cp Open-ILS/examples/apache/eg.conf       /etc/apache2/sites-available/
+cp Open-ILS/examples/apache/eg_vhost.conf /etc/apache2/
+cp Open-ILS/examples/apache/eg_startup    /etc/apache2/
+# Now set up SSL
+mkdir /etc/apache2/ssl
+cd /etc/apache2/ssl
+------------------------------------------------------------------------------
++
+.Ubuntu Trusty/Xenial and Debian Jessie/Stretch
+[source,bash]
+------------------------------------------------------------------------------------
+cp Open-ILS/examples/apache_24/eg_24.conf       /etc/apache2/sites-available/eg.conf
+cp Open-ILS/examples/apache_24/eg_vhost_24.conf /etc/apache2/eg_vhost.conf
+cp Open-ILS/examples/apache/eg_startup    	/etc/apache2/
+# Now set up SSL
+mkdir /etc/apache2/ssl
+cd /etc/apache2/ssl
+------------------------------------------------------------------------------------
++
+. The `openssl` command cuts a new SSL key for your Apache server. For a
+production server, you should purchase a signed SSL certificate, but you can
+just use a self-signed certificate and accept the warnings in the staff client
+and browser during testing and development. Create an SSL key for the Apache
+server by issuing the following command as the *root* Linux account:
++
+[source,bash]
+------------------------------------------------------------------------------
+openssl req -new -x509 -days 365 -nodes -out server.crt -keyout server.key
+------------------------------------------------------------------------------
++
+. As the *root* Linux account, edit the `eg.conf` file that you copied into
+place.
+  a. To enable access to the offline upload / execute interface from any
+     workstation on any network, make the following change (and note that
+     you *must* secure this for a production instance):
+     * (Apache 2.2): Replace `Allow from 10.0.0.0/8` with `Allow from all`
+     * (Apache 2.4): Replace `Require host 10.0.0.0/8` with `Require all granted`
+. Change the user for the Apache server.
+  * (Debian and Ubuntu): As the *root* Linux account, edit
+    `/etc/apache2/envvars`.  Change `export APACHE_RUN_USER=www-data` to 
+    `export APACHE_RUN_USER=opensrf`.
+. As the *root* Linux account, configure Apache with KeepAlive settings
+  appropriate for Evergreen. Higher values can improve the performance of a
+  single client by allowing multiple requests to be sent over the same TCP
+  connection, but increase the risk of using up all available Apache child
+  processes and memory.
+  * (Debian and Ubuntu): Edit `/etc/apache2/apache2.conf`.
+    a. Change `KeepAliveTimeout` to `1`.
+    b. Change `MaxKeepAliveRequests` to `100`.
+. As the *root* Linux account, configure the prefork module to start and keep
+  enough Apache servers available to provide quick responses to clients without
+  running out of memory. The following settings are a good starting point for a
+  site that exposes the default Evergreen catalogue to the web:
++
+.Debian Wheezy (`/etc/apache2/apache2.conf`)
+[source,bash]
+------------------------------------------------------------------------------
+<IfModule mpm_prefork_module>
+   StartServers         15
+   MinSpareServers       5
+   MaxSpareServers      15
+   MaxClients           75
+   MaxRequestsPerChild 500
+</IfModule>
+------------------------------------------------------------------------------
++
+.Ubuntu Trusty/Xenial, Debian Jessie/Stretch (`/etc/apache2/mods-available/mpm_prefork.conf`)
+[source,bash]
+------------------------------------------------------------------------------
+<IfModule mpm_prefork_module>
+   StartServers            15
+   MinSpareServers          5
+   MaxSpareServers         15
+   MaxRequestWorkers       75
+   MaxConnectionsPerChild 500
+</IfModule>
+------------------------------------------------------------------------------
++
+. (Ubuntu Trusty/Xenial, Debian Jessie/Stretch) As the *root* user,
+    enable the mpm_prefork module:
++
+[source,bash]
+------------------------------------------------------------------------------
+a2dismod mpm_event
+a2enmod mpm_prefork
+------------------------------------------------------------------------------
++
+. (Debian Wheezy): As the *root* Linux account, enable the Evergreen site:
++
+[source,bash]
+------------------------------------------------------------------------------
+a2dissite default  # OPTIONAL: disable the default site (the "It Works" page)
+a2ensite eg.conf
+------------------------------------------------------------------------------
++
+(Ubuntu Trusty/Xenial, Debian Jessie/Stretch):
++
+[source,bash]
+------------------------------------------------------------------------------
+a2dissite 000-default  # OPTIONAL: disable the default site (the "It Works" page)
+a2ensite eg.conf
+------------------------------------------------------------------------------
++
+. (Debian and Ubuntu): As the *root* Linux account, enable Apache to write
+   to the lock directory; this is currently necessary because Apache
+   is running as the `opensrf` user:
++
+[source,bash]
+------------------------------------------------------------------------------
+chown opensrf /var/lock/apache2
+------------------------------------------------------------------------------
+
+Learn more about additional Apache options in the following sections:
+
+  * <<_apache_rewrite_tricks,Apache Rewrite Tricks>>
+  * <<_apache_access_handler_perl_module,Apache Access Handler Perl Module>>
+
+Configure OpenSRF for the Evergreen application
+-----------------------------------------------
+There are a number of example OpenSRF configuration files in `/openils/conf/`
+that you can use as a template for your Evergreen installation. Issue the
+following commands as the *opensrf* Linux account:
+
+[source, bash]
+------------------------------------------------------------------------------
+cp -b /openils/conf/opensrf_core.xml.example /openils/conf/opensrf_core.xml
+cp -b /openils/conf/opensrf.xml.example /openils/conf/opensrf.xml
+------------------------------------------------------------------------------
+
+When you installed OpenSRF, you created four Jabber users on two
+separate domains and edited the `opensrf_core.xml` file accordingly. Please
+refer back to the OpenSRF README and, as the *opensrf* Linux account, edit the
+Evergreen version of the `opensrf_core.xml` file using the same Jabber users
+and domains as you used while installing and testing OpenSRF.
+
+[NOTE]
+The `-b` flag tells the `cp` command to create a backup version of the
+destination file. The backup version of the destination file has a tilde (`~`)
+appended to the file name, so if you have forgotten the Jabber users and
+domains, you can retrieve the settings from the backup version of the files.
+
+`eg_db_config`, described in <<_creating_the_evergreen_database,Creating the Evergreen
+database>>, sets the database connection information in `opensrf.xml` for you.
+
+Configure action triggers for the Evergreen application
+-------------------------------------------------------
+_Action Triggers_ provide hooks for the system to perform actions when a given
+event occurs; for example, to generate reminder or overdue notices, the
+`checkout.due` hook is processed and events are triggered for potential actions
+if there is no checkin time.
+
+To enable the default set of hooks, issue the following command as the
+*opensrf* Linux account:
+
+[source, bash]
+------------------------------------------------------------------------------
+cp -b /openils/conf/action_trigger_filters.json.example /openils/conf/action_trigger_filters.json
+------------------------------------------------------------------------------
+
+For more information about configuring and running action triggers, see
+<<_processing_action_triggers,Notifications / Action Triggers>>.
+
+Creating the Evergreen database
+-------------------------------
+
+Setting up the PostgreSQL server
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+For production use, most libraries install the PostgreSQL database server on a
+dedicated machine. Therefore, by default, the `Makefile.install` prerequisite
+installer does *not* install the PostgreSQL 9 database server that is required
+by every Evergreen system. You can install the packages required by Debian or
+Ubuntu on the machine of your choice using the following commands as the
+*root* Linux account:
+
+.(Debian / Ubuntu) Installing PostgreSQL server packages
+
+Each OS build target provides the postgres server installation packages
+required for each operating system.  To install Postgres server packages, 
+use the make target 'postgres-server-<OSTYPE>'.  Choose the most appropriate 
+command below based on your operating system.
+
+[source, bash]
+------------------------------------------------------------------------------
+make -f Open-ILS/src/extras/Makefile.install postgres-server-debian-stretch
+make -f Open-ILS/src/extras/Makefile.install postgres-server-debian-jessie
+make -f Open-ILS/src/extras/Makefile.install postgres-server-debian-wheezy
+make -f Open-ILS/src/extras/Makefile.install postgres-server-ubuntu-trusty
+make -f Open-ILS/src/extras/Makefile.install postgres-server-ubuntu-xenial
+------------------------------------------------------------------------------
+
+For a standalone PostgreSQL server, install the following Perl modules for your
+distribution as the *root* Linux account:
+
+.(Debian and Ubuntu) 
+No extra modules required for these distributions.
+
+You need to create a PostgreSQL superuser to create and access the database.
+Issue the following command as the *postgres* Linux account to create a new
+PostgreSQL superuser named `evergreen`. When prompted, enter the new user's
+password:
+
+[source, bash]
+------------------------------------------------------------------------------
+createuser -s -P evergreen
+------------------------------------------------------------------------------
+
+.Enabling connections to the PostgreSQL database
+
+Your PostgreSQL database may be configured by default to prevent connections,
+for example, it might reject attempts to connect via TCP/IP or from other
+servers. To enable TCP/IP connections from localhost, check your `pg_hba.conf`
+file, found in the `/etc/postgresql/` directory on Debian and Ubuntu.
+A simple way to enable TCP/IP
+connections from localhost to all databases with password authentication, which
+would be suitable for a test install of Evergreen on a single server, is to
+ensure the file contains the following entries _before_ any "host ... ident"
+entries:
+
+------------------------------------------------------------------------------
+host    all             all             ::1/128                 md5
+host    all             all             127.0.0.1/32            md5
+------------------------------------------------------------------------------
+
+When you change the `pg_hba.conf` file, you will need to reload PostgreSQL to
+make the changes take effect.  For more information on configuring connectivity
+to PostgreSQL, see
+http://www.postgresql.org/docs/devel/static/auth-pg-hba-conf.html
+
+Creating the Evergreen database and schema
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Once you have created the *evergreen* PostgreSQL account, you also need to
+create the database and schema, and configure your configuration files to point
+at the database server. Issue the following command as the *root* Linux account
+from inside the Evergreen source directory, replacing <user>, <password>,
+<hostname>, <port>, and <dbname> with the appropriate values for your
+PostgreSQL database (where <user> and <password> are for the *evergreen*
+PostgreSQL account you just created), and replace <admin-user> and <admin-pass>
+with the values you want for the *egadmin* Evergreen administrator account:
+
+[source, bash]
+------------------------------------------------------------------------------
+perl Open-ILS/src/support-scripts/eg_db_config --update-config \
+       --service all --create-database --create-schema --create-offline \
+       --user <user> --password <password> --hostname <hostname> --port <port> \
+       --database <dbname> --admin-user <admin-user> --admin-pass <admin-pass>
+------------------------------------------------------------------------------
+
+This creates the database and schema and configures all of the services in
+your `/openils/conf/opensrf.xml` configuration file to point to that database.
+It also creates the configuration files required by the Evergreen `cgi-bin`
+administration scripts, and sets the user name and password for the *egadmin*
+Evergreen administrator account to your requested values.
+
+You can get a complete set of options for `eg_db_config` by passing the
+`--help` parameter.
+
+Loading sample data
+~~~~~~~~~~~~~~~~~~~
+If you add the `--load-all-sample` parameter to the `eg_db_config` command,
+a set of authority and bibliographic records, call numbers, copies, staff
+and regular users, and transactions will be loaded into your target
+database. This sample dataset is commonly referred to as the _concerto_
+sample data, and can be useful for testing out Evergreen functionality and
+for creating problem reports that developers can easily recreate with their
+own copy of the _concerto_ sample data.
+
+Creating the database on a remote server
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+In a production instance of Evergreen, your PostgreSQL server should be
+installed on a dedicated server.
+
+PostgreSQL 9.4 and later
+^^^^^^^^^^^^^^^^^^^^^^^^
+To create the database instance on a remote database server running PostgreSQL
+9.4 or later, simply use the `--create-database` flag on `eg_db_config`.
+
+Starting Evergreen
+------------------
+1. As the *root* Linux account, start the `memcached` and `ejabberd` services
+(if they aren't already running):
++
+[source, bash]
+------------------------------------------------------------------------------
+/etc/init.d/ejabberd start
+/etc/init.d/memcached start
+------------------------------------------------------------------------------
++
+2. As the *opensrf* Linux account, start Evergreen. The `-l` flag in the
+following command is only necessary if you want to force Evergreen to treat the
+hostname as `localhost`; if you configured `opensrf.xml` using the real
+hostname of your machine as returned by `perl -ENet::Domain 'print
+Net::Domain::hostfqdn() . "\n";'`, you should not use the `-l` flag.
++
+[source, bash]
+------------------------------------------------------------------------------
+osrf_control -l --start-all
+------------------------------------------------------------------------------
++
+  ** If you receive the error message `bash: osrf_control: command not found`,
+     then your environment variable `PATH` does not include the `/openils/bin`
+     directory; this should have been set in the *opensrf* Linux account's
+     `.bashrc` configuration file. To manually set the `PATH` variable, edit the
+     configuration file `~/.bashrc` as the *opensrf* Linux account and add the
+     following line:
++
+[source, bash]
+------------------------------------------------------------------------------
+export PATH=$PATH:/openils/bin
+------------------------------------------------------------------------------
++
+3. As the *opensrf* Linux account, generate the Web files needed by the staff
+   client and catalogue and update the organization unit proximity (you need to do
+   this the first time you start Evergreen, and after that each time you change the library org unit configuration.
+):
++
+[source, bash]
+------------------------------------------------------------------------------
+autogen.sh
+------------------------------------------------------------------------------
++
+4. As the *root* Linux account, restart the Apache Web server:
++
+[source, bash]
+------------------------------------------------------------------------------
+/etc/init.d/apache2 restart
+------------------------------------------------------------------------------
++
+If the Apache Web server was running when you started the OpenSRF services, you
+might not be able to successfully log in to the OPAC or staff client until the
+Apache Web server is restarted.
+
+Testing connections to Evergreen
+--------------------------------
+
+Once you have installed and started Evergreen, test your connection to
+Evergreen via `srfsh`. As the *opensrf* Linux account, issue the following
+commands to start `srfsh` and try to log onto the Evergreen server using the
+*egadmin* Evergreen administrator user name and password that you set using the
+`eg_db_config` command:
+
+[source, bash]
+------------------------------------------------------------------------------
+/openils/bin/srfsh
+srfsh% login <admin-user> <admin-pass>
+------------------------------------------------------------------------------
+
+You should see a result like:
+
+    Received Data: "250bf1518c7527a03249858687714376"
+    ------------------------------------
+    Request Completed Successfully
+    Request Time in seconds: 0.045286
+    ------------------------------------
+
+    Received Data: {
+       "ilsevent":0,
+       "textcode":"SUCCESS",
+       "desc":" ",
+       "pid":21616,
+       "stacktrace":"oils_auth.c:304",
+       "payload":{
+          "authtoken":"e5f9827cc0f93b503a1cc66bee6bdd1a",
+          "authtime":420
+       }
+
+    }
+
+    ------------------------------------
+    Request Completed Successfully
+    Request Time in seconds: 1.336568
+    ------------------------------------
+[[install-troubleshooting-1]]
+If this does not work, it's time to do some troubleshooting.
+
+  * As the *opensrf* Linux account, run the `settings-tester.pl` script to see
+    if it finds any system configuration problems. The script is found at
+    `Open-ILS/src/support-scripts/settings-tester.pl` in the Evergreen source
+    tree.
+  * Follow the steps in the http://evergreen-ils.org/dokuwiki/doku.php?id=troubleshooting:checking_for_errors[troubleshooting guide].
+  * If you have faithfully followed the entire set of installation steps
+    listed here, you are probably extremely close to a working system.
+    Gather your configuration files and log files and contact the
+    http://evergreen-ils.org/communicate/mailing-lists/[Evergreen development 
+mailing list] for assistance before making any drastic changes to your system
+    configuration.
+
+Getting help
+------------
+
+Need help installing or using Evergreen? Join the mailing lists at
+http://evergreen-ils.org/communicate/mailing-lists/ or contact us on the Freenode
+IRC network on the #evergreen channel.
+
+License
+-------
+This work is licensed under the Creative Commons Attribution-ShareAlike 3.0
+Unported License. To view a copy of this license, visit
+http://creativecommons.org/licenses/by-sa/3.0/ or send a letter to Creative
+Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.
diff --git a/configure.ac b/configure.ac
index dacb5a36b7..dbe5bcad8c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -20,8 +20,8 @@
 
 export PATH=${PATH}:/usr/sbin
 AC_PREREQ(2.61)
-AC_INIT(Open-ILS, trunk, open-ils-dev at list.georgialibraries.org)
-AM_INIT_AUTOMAKE([OpenILS], [trunk])
+AC_INIT(Open-ILS, 3.1.14, open-ils-dev at list.georgialibraries.org)
+AM_INIT_AUTOMAKE([OpenILS], [3.1.14])
 AC_REVISION($Revision: 0.1 $)
 AC_CONFIG_SRCDIR([configure.ac])
 AC_CONFIG_SUBDIRS([Open-ILS/xul/staff_client/external/libmar])

commit 2d95574185eb2662031285b739fd8685c4a1c5df
Author: blake <blake at mobiusconsortium.org>
Date:   Thu Aug 22 08:07:15 2019 -0500

    fixed upgrade script naming convention
    
    Signed-off-by: blake <blake at mobiusconsortium.org>

diff --git a/docs/installation/server_upgrade.adoc b/docs/installation/server_upgrade.adoc
index 72f4cf6b56..8b7a1fcb37 100644
--- a/docs/installation/server_upgrade.adoc
+++ b/docs/installation/server_upgrade.adoc
@@ -7,7 +7,7 @@ Software Prerequisites
 ~~~~~~~~~~~~~~~~~~~~~~
 
   * **PostgreSQL**: The minimum supported version is 9.4.
-  * **Linux**: Evergreen 3.1.1 has been tested on Debian Stretch (9.0),
+  * **Linux**: Evergreen 3.1.14 has been tested on Debian Stretch (9.0),
     Debian Jessie (8.0), Debian Wheezy (7.0), Ubuntu Xenial Xerus (16.04),
     and Ubuntu Trusty Tahr (14.04).
     If you are running an older version of these distributions, you may want
@@ -43,12 +43,12 @@ osrf_control --localhost --stop-all
  .. Back up the /openils directory.
 . Upgrade OpenSRF. Download and install the latest version of OpenSRF from
 the https://evergreen-ils.org/opensrf-downloads/[OpenSRF download page].
-. As the *opensrf* user, download and extract Evergreen 3.1.1:
+. As the *opensrf* user, download and extract Evergreen 3.1.14:
 +
 [source, bash]
 -----------------------------------------------
-wget https://evergreen-ils.org/downloads/Evergreen-ILS-3.1.1.tar.gz
-tar xzf Evergreen-ILS-3.1.1.tar.gz
+wget https://evergreen-ils.org/downloads/Evergreen-ILS-3.1.14.tar.gz
+tar xzf Evergreen-ILS-3.1.14.tar.gz
 -----------------------------------------------
 +
 [NOTE]
@@ -58,7 +58,7 @@ For the latest edition of Evergreen, check the https://evergreen-ils.org/egdownl
 +
 [source, bash]
 ---------------------------------------------
-cd /home/opensrf/Evergreen-ILS-3.1.1
+cd /home/opensrf/Evergreen-ILS-3.1.14
 ---------------------------------------------
 +
 On the next command, replace `[distribution]` with one of these values for your
@@ -82,7 +82,7 @@ make -f Open-ILS/src/extras/Makefile.install [distribution]
 +
 [source, bash]
 ------------------------------------------------------------
-cd /home/opensrf/Evergreen-ILS-3.1.1
+cd /home/opensrf/Evergreen-ILS-3.1.14
 PATH=/openils/bin:$PATH ./configure --prefix=/openils --sysconfdir=/openils/conf
 make
 ------------------------------------------------------------
@@ -93,8 +93,8 @@ These instructions assume that you have also installed OpenSRF under /openils/.
 +
 [source, bash]
 ------------------------------------------------------------
-cd /home/opensrf/Evergreen-ILS-3.1.1
-make STAFF_CLIENT_STAMP_ID=rel_3_1_1 install
+cd /home/opensrf/Evergreen-ILS-3.1.14
+make STAFF_CLIENT_STAMP_ID=rel_3_1_14 install
 ------------------------------------------------------------
 +
 . As the *root* user, change all files to be owned by the opensrf user and group:
@@ -110,7 +110,7 @@ chown -R opensrf:opensrf /openils
 -----------------------------------------------------------
 cd /openils/var/web/xul/
 rm server
-ln -sf rel_3_1_1/server server
+ln -sf rel_3_1_14/server server
 ----------------------------------------------------------
 +
 . As the *opensrf* user, update opensrf_core.xml and opensrf.xml by copying the
@@ -130,7 +130,7 @@ Copying these configuration files will remove any customizations you have made t
 +
 [source, bash]
 -------------------------------------------------------------------------
-cd /home/opensrf/Evergreen-ILS-3.1.1
+cd /home/opensrf/Evergreen-ILS-3.1.14
 perl Open-ILS/src/support-scripts/eg_db_config --update-config --service all \
 --create-offline --database evergreen --host localhost --user evergreen --password evergreen
 -------------------------------------------------------------------------
@@ -154,21 +154,21 @@ The diff command can be used to show the differences between the distribution ve
 +
 [source, bash]
 ----------------------------------------------------------
-cp /home/opensrf/Evergreen-ILS-3.1.1/Open-ILS/examples/apache/eg_startup /etc/apache2/eg_startup
+cp /home/opensrf/Evergreen-ILS-3.1.14/Open-ILS/examples/apache/eg_startup /etc/apache2/eg_startup
 ----------------------------------------------------------
 +
 .. Update /etc/apache2/eg_vhost.conf by copying the example from Open-ILS/examples/apache/eg_vhost.conf.
 +
 [source, bash]
 ----------------------------------------------------------
-cp /home/opensrf/Evergreen-ILS-3.1.1/Open-ILS/examples/apache/eg_vhost.conf /etc/apache2/eg_vhost.conf
+cp /home/opensrf/Evergreen-ILS-3.1.14/Open-ILS/examples/apache/eg_vhost.conf /etc/apache2/eg_vhost.conf
 ----------------------------------------------------------
 +
 .. Update /etc/apache2/sites-available/eg.conf by copying the example from Open-ILS/examples/apache/eg.conf.
 +
 [source, bash]
 ----------------------------------------------------------
-cp /home/opensrf/Evergreen-ILS-3.1.1/Open-ILS/examples/apache/eg.conf /etc/apache2/sites-available/eg.conf
+cp /home/opensrf/Evergreen-ILS-3.1.14/Open-ILS/examples/apache/eg.conf /etc/apache2/sites-available/eg.conf
 ----------------------------------------------------------
 
 Upgrade the Evergreen database schema
@@ -225,8 +225,8 @@ as a user with the ability to connect to the database server.
 
 [source, bash]
 ----------------------------------------------------------
-cd /home/opensrf/Evergreen-ILS-3.1.1/Open-ILS/src/sql/Pg
-psql -U evergreen -h localhost -f version-upgrade/3.1.0-3.1.1-upgrade-db.sql evergreen
+cd /home/opensrf/Evergreen-ILS-3.1.14/Open-ILS/src/sql/Pg
+psql -U evergreen -h localhost -f version-upgrade/3.1.0-3.1.14-upgrade-db.sql evergreen
 ----------------------------------------------------------
 
 [TIP]

commit 02c7a44c8b80db5cd25d71818b2ccd6ced72767b
Author: blake <blake at mobiusconsortium.org>
Date:   Thu Aug 22 08:06:50 2019 -0500

    bumping Perl version string for 3.1.14
    
    Signed-off-by: blake <blake at mobiusconsortium.org>

diff --git a/Open-ILS/src/perlmods/lib/OpenILS.pm b/Open-ILS/src/perlmods/lib/OpenILS.pm
index d7235ce61a..058fb406b2 100644
--- a/Open-ILS/src/perlmods/lib/OpenILS.pm
+++ b/Open-ILS/src/perlmods/lib/OpenILS.pm
@@ -6,6 +6,6 @@ OpenILS - Client and server support for the Evergreen open source library system
 
 =cut
 
-our $VERSION = '2.4';
+our $VERSION = '3.0114';
 
 1;

-----------------------------------------------------------------------


hooks/post-receive
-- 
Evergreen ILS


More information about the open-ils-commits mailing list