[open-ils-commits] [GIT] Evergreen ILS branch tags/rel_3_1_4 created. c7ab4583ac53406948256d244bcfb1fdeb7dd298

Evergreen Git git at git.evergreen-ils.org
Thu Jul 26 10:14:22 EDT 2018


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_4 has been created
        at  c7ab4583ac53406948256d244bcfb1fdeb7dd298 (commit)

- Log -----------------------------------------------------------------
commit c7ab4583ac53406948256d244bcfb1fdeb7dd298
Author: blake <blake at mobiusconsortium.org>
Date:   Wed Jul 25 15:39:25 2018 -0500

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

diff --git a/ChangeLog b/ChangeLog
index 1f72b2c..b08b940 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,917 @@
-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 3e5c76f925f97bbc29b8222028013b858c6184a3
+Author: blake <blake at mobiusconsortium.org>
+Date:   Wed Jul 25 15:33:38 2018 -0500
+
+    bumping Perl version string for 3.1.4
+    
+    Signed-off-by: blake <blake at mobiusconsortium.org>
+
+1	1	Open-ILS/src/perlmods/lib/OpenILS.pm
+
+commit 5edfeb0efcf89a4b60e88a1930ae15b562572fac
+Author: Jane Sandberg <sandbej at linnbenton.edu>
+Date:   Wed Jul 25 12:26:12 2018 -0700
+
+    Docs: completing 3.1.4 release notes
+    
+    Signed-off-by: Jane Sandberg <sandbej at linnbenton.edu>
+
+8	0	docs/RELEASE_NOTES_3_1.adoc
+
+commit 1c64a4b6c21fb63117ac47be58c4111b51686a36
+Author: Jane Sandberg <sandbej at linnbenton.edu>
+Date:   Wed Jul 25 12:12:27 2018 -0700
+
+    Docs: starting 3.1.4 release notes
+    
+    Signed-off-by: Jane Sandberg <sandbej at linnbenton.edu>
+
+59	0	docs/RELEASE_NOTES_3_1.adoc
+
+commit 0090ba5fd567b10fa17861ee9139b69326e64d10
+Author: Jane Sandberg <sandbej at linnbenton.edu>
+Date:   Wed Jul 25 12:13:32 2018 -0700
+
+    Docs: adding to 3.0.10 release notes
+    
+    Signed-off-by: Jane Sandberg <sandbej at linnbenton.edu>
+
+1	0	docs/RELEASE_NOTES_3_0.adoc
+
+commit 59c48eec648725982ac6eac65dfc1dd26bb1b5c1
+Author: Jane Sandberg <sandbej at linnbenton.edu>
+Date:   Wed Jul 25 12:08:06 2018 -0700
+
+    Docs: Adding 3.0.10 release notes
+    
+    Signed-off-by: Jane Sandberg <sandbej at linnbenton.edu>
+
+61	0	docs/RELEASE_NOTES_3_0.adoc
+
+commit b1e5b991d68484baadb1b0cbc6d4f16f5bb5dd33
+Author: Dan Wells <dbw2 at calvin.edu>
+Date:   Wed Jul 25 14:44:38 2018 -0400
+
+    Translation updates - po files
+    
+    Signed-off-by: Dan Wells <dbw2 at calvin.edu>
+
+32	21	build/i18n/po/webstaff/ar-JO.po
+32	21	build/i18n/po/webstaff/cs-CZ.po
+29	21	build/i18n/po/webstaff/en-GB.po
+132	108	build/i18n/po/webstaff/es-ES.po
+29	21	build/i18n/po/webstaff/hy-AM.po
+29	21	build/i18n/po/webstaff/ru-RU.po
+
+commit 85743209758bbdafd44832a315210db0070e733d
+Author: Dan Wells <dbw2 at calvin.edu>
+Date:   Wed Jul 25 14:41:21 2018 -0400
+
+    Translation updates - newpot
+    
+    Signed-off-by: Dan Wells <dbw2 at calvin.edu>
+
+111	109	build/i18n/po/webstaff/webstaff.pot
+
+commit 43770422fa0acd5895a248f80ad53116cdb4d12a
+Author: Dan Wells <dbw2 at calvin.edu>
+Date:   Fri Jul 6 11:47:42 2018 -0400
+
+    LP#1414197 Serial Item Delete Improvements
+    
+    If a serial item is received, then deleted without any further status,
+    it can leave the system in an inconsistent state:
+    
+    1) If from a multi-item unit, the unit contents are not updated.
+    2) If from a single-item unit, the unit is not deleted.
+    3) If the last holding of its kind, holdings summaries are not updated.
+    
+    Since 'resetting' items has all the necessary logic to handle the above
+    needs, this commit runs each deleted item through the reset code before
+    doing the actual delete.  This also gives the benefit of keeping the
+    logic centralized for future fixes/enhancements.
+    
+    Signed-off-by: Dan Wells <dbw2 at calvin.edu>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+23	1	Open-ILS/src/perlmods/lib/OpenILS/Application/Serial.pm
+1	3	Open-ILS/web/js/ui/default/staff/serials/directives/view-items-grid.js
+
+commit 7623db0636d014f4fd8e1f470aaf6c9e29bc3ee8
+Author: Kathy Lussier <klussier at masslnc.org>
+Date:   Fri Jul 6 09:50:40 2018 -0400
+
+    LP#1738249: Fix Circulation Library in Item Status Column Picker
+    
+    When the original branch was merged, the change to fix the display of
+    the Circulation Library to the copy's circ_lib in Item Status was
+    lost.  This commit restores it and uses the original patch author's
+    name on the commit.
+    
+    Signed-off-by: Jason Stephenson <jason at sigio.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+1	1	Open-ILS/src/templates/staff/cat/item/t_list.tt2
+
+commit 381735e73585d2029f7b6bd93682781a28724d36
+Author: Cesar Velez <cesar.velez at equinoxinitiative.org>
+Date:   Thu Jul 12 16:28:45 2018 -0400
+
+    LP#1781473 - fix cosmetic issue with circ Id column
+    
+    The column for Circ.Id on the Patron Checkout grid was
+    mislabeled "Bill#"
+    
+    Signed-off by: Cesar Velez <cesar.velez at equinoxinitiative.org>
+    
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+1	1	Open-ILS/src/templates/staff/circ/patron/t_checkout.tt2
+
+commit cd8e4cf4540c6e3420b3e17786eab065ea0096eb
+Author: Adam Bowling <abowling at emeralddata.net>
+Date:   Sat Jun 23 01:06:13 2018 -0400
+
+    LP#1778268: Fix incorrect close tag for label on line 58 of
+    Open-ILS/src/templates/staff/cat/printlabels/t_view.tt2
+    
+    Signed-off-by: Adam Bowling <abowling at emeralddata.net>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+1	1	Open-ILS/src/templates/staff/cat/printlabels/t_view.tt2
+
+commit 79541f4abddd0eae44081b2fdcc2c3a8475be2f2
+Author: Dan Wells <dbw2 at calvin.edu>
+Date:   Fri Jul 13 14:04:00 2018 -0400
+
+    LP#1777954 Open Electronic Resource Links in New Tab, Part 2
+    
+    For the same reasons given in the previous commit, let's also open
+    resource links in a new tab/window when clicking from the results
+    list.
+    
+    Signed-off-by: Dan Wells <dbw2 at calvin.edu>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+1	1	Open-ILS/src/templates/opac/parts/result/table.tt2
+
+commit b75e13c75a1d629cb7c843b79a6432fd6f7c53c4
+Author: Terran McCanna <tmccanna at georgialibraries.org>
+Date:   Mon Jun 25 12:15:21 2018 -0400
+
+    LP#1777954 Open Electronic Resource Links in New Tab
+    
+    Open electronic resources links in new browser tab to accommodate
+    for external non-https links that will not otherwise open from the
+    web client.
+    
+    Signed-off-by: Terran McCanna <tmccanna at georgialibraries.org>
+    Signed-off-by: Dan Wells <dbw2 at calvin.edu>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+2	2	Open-ILS/src/templates/opac/parts/record/summary.tt2
+
+commit df8a9fecbff6eeadb1c325b4e7112805a2e5ec82
+Author: Chris Sharp <csharp at georgialibraries.org>
+Date:   Tue Jul 24 13:19:07 2018 -0400
+
+    LP#1739286: Revert "lp1739286 default search box in Z39.50"
+    
+    This commit caused unexpected side effects, reported in bug 1782401
+    ( https://bugs.launchpad.net/evergreen/+bug/1782401 ). Reverting before
+    it ends up in a release.
+    
+    This reverts commit 6996a3630dea3d6fd967c127417a800aba561603.
+    
+    Signed-off-by: Chris Sharp <csharp at georgialibraries.org>
+
+5	15	Open-ILS/src/templates/staff/cat/z3950/t_search_fields.tt2
+0	19	Open-ILS/web/js/ui/default/staff/cat/services/z3950.js
+
+commit 14e4e481493ca89bd36cc6576715043059991101
+Author: Jason Boyer <jboyer at library.in.gov>
+Date:   Thu Jul 19 14:29:32 2018 -0400
+
+    LP1782631: Stop Styling Grocery Bills as Overdues
+    
+    Only checking for the lack of a value in the
+    checkin_time field causes grocery bills to still
+    trigger the bill colorizing feature, but because
+    they have no stop_fines reason they're colored
+    the same as an overdue item.
+    
+    This patch requires the presence of a due_date
+    field before coloring a bill row.
+    
+    Signed-off-by: Jason Boyer <jboyer at library.in.gov>
+    Signed-off-by: Dan Wells <dbw2 at calvin.edu>
+
+2	2	Open-ILS/web/js/ui/default/staff/circ/patron/bills.js
+
+commit c40a880f49ca0bab728e9e8f777a87b388103968
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Fri Jul 6 15:33:05 2018 -0400
+
+    LP#1773417: Use CN owning lib when adding copies
+    
+    This defaults the owner of new copies added to existing call numbers to the
+    owning lib of the call number, rather than the workstation library.
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Dan Wells <dbw2 at calvin.edu>
+
+3	3	Open-ILS/web/js/ui/default/staff/cat/volcopy/app.js
+
+commit 87cda462c0ccf3df99c27fa50b76d7e4c542c661
+Author: Dan Wells <dbw2 at calvin.edu>
+Date:   Tue Jun 12 14:20:03 2018 -0400
+
+    LP#1773417 Revamp item and call number tranfers
+    
+    This commit attempts to achieve the goals of both simplification and
+    feature completeness/flexibility.  In brief, limit the number of
+    marking and transfer options, then have the code decide the right
+    action to take given the circumstances.
+    
+    There are now just two "marking" actions, one at the record level,
+    one at the holdings level.  The holdings level mark will automatically
+    mark the destination as specifically as possible from the selected row,
+    which means either to the library or call number (vol) level.
+    
+    We are also now down to two transfer options: transfer the selected
+    item, or transfer the selected call number.  Either option will use
+    as much given context as possible, then fill in any blanks with
+    reasonable defaults and actions.
+    
+    As part of the change, a number of functions and variables are also
+    renamed.  This is all done for clarification, and in most cases is
+    due to the variable or function now being used more generally (i.e.
+    it is used in both the item and vol context, so it is confusing to
+    be named 'volume_transfer_target', etc.).
+    
+    Finally, clear up a fair bit of now redundant and unused code.
+    
+    Signed-off-by: Dan Wells <dbw2 at calvin.edu>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+1	4	Open-ILS/src/templates/staff/cat/catalog/index.tt2
+3	3	Open-ILS/src/templates/staff/cat/catalog/t_catalog.tt2
+4	23	Open-ILS/src/templates/staff/cat/catalog/t_holdings.tt2
+1	1	Open-ILS/web/js/ui/default/staff/cat/bucket/copy/app.js
+84	111	Open-ILS/web/js/ui/default/staff/cat/catalog/app.js
+8	11	Open-ILS/web/js/ui/default/staff/circ/services/item.js
+
+commit 249f1686dbb138a7a97b7d2c26fd1b41e489c2c3
+Author: Dan Wells <dbw2 at calvin.edu>
+Date:   Wed May 30 12:43:08 2018 -0400
+
+    LP#1773417 Improve empty volume handling
+    
+    The crux of this patch is to rethink how we handle the volume-only
+    editing interface.  Previously, we were attempting to distinguish
+    between when the volume was the only thing *showing* and when it
+    was actually the only thing *existing*.
+    
+    We have now removed that distinction, so the volume-only interface
+    only cares about the volume regardless of the possible presence of
+    a copy.  This simplifies the interface logic, and reduces or
+    eliminates the chance of the hidden copy editor interfering with
+    the volume adding/editing functions.
+    
+    Other smaller changes here include:
+    - Teach the edit function to pick up copy-less "empty" call numbers
+    - Reduce and clarify the arguments to spawnHoldingsAdd
+      We had three arguments, but two were simply inversions of one another
+      in every case.  Reduce to two arguments and give them more meaningful
+      labels
+    - Fix typo ("emtpy") preventing proper button disabling for blank call
+      numbers
+    - Move call number emptiness check from updateLabel() function to value
+      watch instead.  This ensure that any updates to that value (even those
+      not using the update function) will flip the flag appropriately.  This
+      fixes a timing bug which prevented call numbers from being saved
+      without further edits in some cases.
+    
+    Ultimately, as J. Boyer suggests, we would be better off not generating
+    the copy editor at all (rather than just hiding it), but we're a few
+    steps off from that yet.
+    
+    Signed-off-by: Dan Wells <dbw2 at calvin.edu>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+11	9	Open-ILS/web/js/ui/default/staff/cat/catalog/app.js
+10	13	Open-ILS/web/js/ui/default/staff/cat/volcopy/app.js
+
+commit 4dfdf3a3d05a677e152b1c64755d66e378b34d09
+Author: Dan Wells <dbw2 at calvin.edu>
+Date:   Fri May 25 22:20:49 2018 -0400
+
+    LP#1773417 Relabel "Add Volumes" button
+    
+    Now that we have an interface for adding empty volumes, we need to be
+    more explicit that this button is for adding complete copies, not just
+    volumes.
+    
+    Signed-off-by: Dan Wells <dbw2 at calvin.edu>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+1	1	Open-ILS/src/templates/staff/cat/catalog/t_catalog.tt2
+
+commit a0b46ea95c3dbee3d3e58a0ad668a18ec179397e
+Author: Dan Wells <dbw2 at calvin.edu>
+Date:   Wed May 23 14:39:49 2018 -0400
+
+    LP#1715697 Refactor empty volume adding
+    
+    The new ability to add empty volumes was causing the existing
+    ability to add new volume/copy combos to not work as expected.
+    More specifically, added volume/copy combos would not generate
+    in the selected org_unit, but always in the ws_ou.
+    
+    To correct this, this change refactors/reverts significant portions of
+    920f585052ef809ea6ca1e447d416ada871b467c.  Reasons include:
+    
+    - Existing code distinguishs 'adds' from 'edits' via two wrappers,
+    spawnHoldingsAdd and spawnHoldingsEdit.  With this commit, empty volume
+    adding now extends the 'add' function rather than the 'edit' one, as
+    this seems more intuitive.
+    
+    - The previous change had extended both the catalog app and another
+    similar directive which is only used in a merging context.  Since the
+    merge context had no ability to add anything, and the new code was not
+    wired up to the interface, this has simply been removed (for now).
+    
+    - The volcopy app is set up around the concept of passed in
+    'prototype' vol/copy objects of varying degrees of completeness.  It
+    then loops over these to generate the interface.  The previous code
+    extended this setup with a loop over a potential 'owners' array to
+    generate empty volumes, but this unrelated loop within a loop seemed
+    counterintuitive (and was the source of the original bug).  This change
+    has been removed, and empty volume creation now hews more closely to
+    the original model.
+    
+    While this commit appears large, when viewed in the context of the
+    pre-920f58505 code, it is quite limited in scope.
+    
+    Signed-off-by: Dan Wells <dbw2 at calvin.edu>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+12	31	Open-ILS/web/js/ui/default/staff/cat/catalog/app.js
+4	18	Open-ILS/web/js/ui/default/staff/cat/services/holdings.js
+49	51	Open-ILS/web/js/ui/default/staff/cat/volcopy/app.js
+
+commit c7558a962f5698f7f4ec955cb89cdb7580d9ec65
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Sun Apr 29 18:56:38 2018 -0400
+
+    LP#1737812: Simplify holdings tranfser options
+    
+    Instead of providing direct actions for transfer of library, or record, or
+    both, have just one volume transfer option that Does the Right Thing (tm).
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Jason Stephenson <jason at sigio.com>
+    Signed-off-by: Dan Wells <dbw2 at calvin.edu>
+
+10	1	Open-ILS/src/templates/staff/cat/catalog/t_holdings.tt2
+10	0	Open-ILS/web/js/ui/default/staff/cat/catalog/app.js
+
+commit f45c77a98508384594da441282bfa5c2b6787e90
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Wed Apr 25 12:32:15 2018 -0400
+
+    LP#1715697: Ability to add empty volumes
+    
+    Staff can add volumes to any library that is allowed to have holdings.
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Jason Stephenson <jason at sigio.com>
+    Signed-off-by: Dan Wells <dbw2 at calvin.edu>
+
+2	0	Open-ILS/src/templates/staff/cat/catalog/t_holdings.tt2
+26	5	Open-ILS/web/js/ui/default/staff/cat/catalog/app.js
+18	4	Open-ILS/web/js/ui/default/staff/cat/services/holdings.js
+73	50	Open-ILS/web/js/ui/default/staff/cat/volcopy/app.js
+
+commit 1cd6aa6f785dcd556af1c17136c45ea375de3262
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Tue Apr 24 15:21:37 2018 -0400
+
+    LP#1715697 & 1738242 & 1753005: Holdings Filtering Checkboxes
+    
+    When the appropriate checkbox is selected, display subordinate libraries of
+    the context library that do not have any holdings or empty volumes.
+    
+    Additionally, the holdings view checkboxes for limiting detail display can
+    cause console alerts, and should be made visually interdependent.  This commit
+    addresses both of those issues.
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Jason Stephenson <jason at sigio.com>
+    Signed-off-by: Dan Wells <dbw2 at calvin.edu>
+
+7	2	Open-ILS/src/templates/staff/cat/catalog/t_holdings.tt2
+22	6	Open-ILS/web/js/ui/default/staff/cat/catalog/app.js
+47	2	Open-ILS/web/js/ui/default/staff/cat/services/holdings.js
+
+commit 44c9e120c888d359631582cfe0fe25ae0dae668f
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Thu Jul 12 11:03:44 2018 -0400
+
+    LP#1710401: Z39.50 should notice overlay target change
+    
+    Currently, we record the overlay target at UI startup and use that going
+    forward until the interface is reloaded.  This commit inspects the local
+    storage version of the target for changes and offers the user the chance to
+    proceed with the new target or cancel the action.  If the target has been
+    unset, the user is given the option of proceeding with the load-time target.
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Chris Sharp <csharp at georgialibraries.org>
+
+4	0	Open-ILS/src/templates/staff/cat/share/z3950_strings.tt2
+59	23	Open-ILS/web/js/ui/default/staff/cat/z3950/app.js
+
+commit 0d8711ce07e4e3d232659952c1adffdd6b6065aa
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Fri Jul 13 09:56:13 2018 -0400
+
+    Fix quote nesting issue in TAP test
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+2	2	Open-ILS/src/sql/Pg/t/regress/lp1773452_copy_state_post_checkin.pg
+
+commit bea01daf41459afa245a1c28a4aea1df9781cf06
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Thu Jul 12 09:39:36 2018 -0400
+
+    Stamping upgrade script
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+1	1	Open-ILS/src/sql/Pg/002.schema.config.sql
+44	0	Open-ILS/src/sql/Pg/upgrade/1114.function.asset.copy_state-update.sql
+0	44	Open-ILS/src/sql/Pg/upgrade/XXXX.function.asset.copy_state-update.sql
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/1114.function.asset.copy_state-update.sql
+ delete mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.function.asset.copy_state-update.sql
+
+commit 5dc8eabaa8a1d77e53f55297d2b766ef8de8b5e9
+Author: Jason Boyer <jboyer at library.in.gov>
+Date:   Thu Jun 21 07:17:48 2018 -0400
+
+    LP1773452: Repeating copy alerts
+    
+    Without considering the checkin_time on the most
+    recent circ for an item, checking in a lost, claims
+    returned, or claims never checked out item would
+    cause copy alerts on checkin repeatedly until it
+    was checked out again. Staff may be confused by this
+    thinking that there is a continuing problem with
+    the item until the alerts go away.
+    
+    Signed-off-by: Jason Boyer <jboyer at library.in.gov>
+    Signed-off-by: Jennifer Pringle <jennifer.pringle at bc.libraries.coop>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+1	1	Open-ILS/src/sql/Pg/040.schema.asset.sql
+20	0	Open-ILS/src/sql/Pg/t/regress/lp1773452_copy_state_post_checkin.pg
+44	0	Open-ILS/src/sql/Pg/upgrade/XXXX.function.asset.copy_state-update.sql
+ create mode 100644 Open-ILS/src/sql/Pg/t/regress/lp1773452_copy_state_post_checkin.pg
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.function.asset.copy_state-update.sql
+
+commit d927f87f742224ccbc4d737f8db3277a200ba6f0
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Thu Jul 12 09:31:12 2018 -0400
+
+    Re-adding upgrade script
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+212	0	Open-ILS/src/sql/Pg/upgrade/1113.function.acq.rollover-by-org-tree.sql
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/1113.function.acq.rollover-by-org-tree.sql
+
+commit 30a39e25c28da965540bc91d8259f069d22ca95e
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Thu Jul 12 09:26:42 2018 -0400
+
+    Stamping upgrade script
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+1	1	Open-ILS/src/sql/Pg/002.schema.config.sql
+0	211	Open-ILS/src/sql/Pg/upgrade/XXXX.function.acq.rollover-by-org-tree.sql
+ delete mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.function.acq.rollover-by-org-tree.sql
+
+commit e99b5757c1786a74eb3acad6ea231fc38e9b556c
+Author: Jason Stephenson <jason at sigio.com>
+Date:   Wed Jun 6 14:59:41 2018 -0400
+
+    LP 1478712: Fix acq.fund_rollover_funds_by_org_tree DB function.
+    
+    When looking for new funds, we need to also use the org unit from the
+    old fund because different org units may use the same fund code.  What
+    happens without this check is the second library to rollover ends up
+    assigning their rolled over debits to the first library that rolled
+    over or propagated funds with the same code.
+    
+    Unfortunately, I do not know of a good way to test this branch with
+    the concerto data.  I will elaborate how I tested with a copy of our
+    production data in a test database below.
+    
+    What I did to test with our production data was first to repair the
+    debits that had been moved to the wrong library's funds from the
+    previous year.  I then ran the acq.rollover_funds_by_org_tree function
+    for two libraries that share acq fund codes.  I verified that the fund
+    debits for the second library did indeed get assigned to funds with
+    the same code that were rolled over for the first library.  The debits
+    ended up on the newly propagated funds of the library that went first.
+    
+    I reloaded the database, replaced the acq.rollover_funds_by_org_tree
+    function with the implementation from this branch, and repeated the
+    above steps.  The second library's debits rolled over to new funds
+    owned by that library as was expected.
+    
+    This would be a good candidate for a pgtap test with additional data
+    added to concerto if anyone is feeling ambitious.
+    
+    Signed-off-by: Jason Stephenson <jason at sigio.com>
+    Signed-off-by: Jennifer Pringle <jennifer.pringle at bc.libraries.coop>
+    Signed-off-by: Chris Sharp <csharp at georgialibraries.org>
+
+1	1	Open-ILS/src/sql/Pg/200.schema.acq.sql
+211	0	Open-ILS/src/sql/Pg/upgrade/XXXX.function.acq.rollover-by-org-tree.sql
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.function.acq.rollover-by-org-tree.sql
+
+commit 72d9c186dcae0beeacff5615002110550524d877
+Author: Dan Wells <dbw2 at calvin.edu>
+Date:   Mon Apr 30 11:05:11 2018 -0400
+
+    LP#1749795 Close circ on adjustment when rebilled
+    
+    When doing a re-bill, we were aborting too early when it rebilled to
+    exactly zero.  Move the 'zero' check to the top of the loop, and
+    thereby make sure we check if the xact can be closed if we do any
+    adjustment, up or down.
+    
+    To test:
+    - Run new billing test from previous commit, see it fail
+    - Apply patch
+    - Run tests again; all should pass
+    
+    Signed-off-by: Dan Wells <dbw2 at calvin.edu>
+    Signed-off-by: Jeff Davis <jdavis at sitka.bclibraries.ca>
+    Signed-off-by: Chris Sharp <csharp at georgialibraries.org>
+
+18	15	Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Money.pm
+
+commit c78c2a3ce9a27bdc0e384daf8c64be891cdb5f2b
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Tue Jun 19 14:23:42 2018 -0400
+
+    LP#1751368 Items-out checkin of deleted copies
+    
+    Allow deleted copies to be checked in from the patron items out list.
+    Checkin is based on copy ID instead of barcode.  Note that both values
+    are sent to the server, to reduce the number of changes in the UI code,
+    but the API inspects the ID first.
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Jeff Davis <jdavis at sitka.bclibraries.ca>
+    Signed-off-by: Chris Sharp <csharp at georgialibraries.org>
+
+9	4	Open-ILS/web/js/ui/default/staff/circ/patron/items_out.js
+
+commit 04b9b11784368b9c9f24ef1b0635dc020b4de1ca
+Author: a. bellenir <ab at grpl.org>
+Date:   Tue Jun 19 18:25:05 2018 -0400
+
+    LP#1669856 and LP#1776557: right clicks on egGrid
+    
+    select the row if right-clicking on a row that is not selected.
+    use the defult browser context-menu when right-clicking on links in eg grids.
+    
+    Signed-off-by: a. bellenir <ab at grpl.org>
+    Signed-off-by: Michele Morgan <mmorgan at noblenet.org>
+    Signed-off-by: Chris Sharp <csharp at georgialibraries.org>
+
+17	2	Open-ILS/web/js/ui/default/staff/services/grid.js
+
+commit bb90e8d4f74fb747dc8dd1c40373e7d557f54303
+Author: Garry Collum <gcollum at gmail.com>
+Date:   Fri May 25 16:31:21 2018 -0400
+
+    LP#1730003 Courier code doesn't display in transit slip receipt preview
+    
+    Adds seed data for the transit and hold-transit slip preview in the print template editor.
+    
+    To test add {{dest_courier_code}} as a variable in either the transit slip or hold transit slip template.
+    
+    Signed-off-by: Garry Collum <gcollum at gmail.com>
+    Signed-off-by: Terran McCanna <tmccanna at georgialibraries.org>
+    Signed-off-by: Chris Sharp <csharp at georgialibraries.org>
+
+1	0	Open-ILS/web/js/ui/default/staff/admin/workstation/app.js
+
+commit 045a42283fb4550c2de37693141ba0abdec62104
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Fri Jun 1 13:50:21 2018 -0400
+
+    LP#1736269: Mark Missing Pieces is non-functional
+    
+    In the work to separate the item service into a reusable component, a
+    reference to $scope was left hanging around.  This causes the service to die
+    before it can complete its work.  The code using $scope does seem to be
+    necessary, so we'll have the function accept an outer_scope parameter and
+    adjust the call sites.
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Cesar Velez <cesar.velez at equinoxinitiative.org>
+    Signed-off-by: Chris Sharp <csharp at georgialibraries.org>
+
+2	2	Open-ILS/web/js/ui/default/staff/cat/item/missing_pieces.js
+1	1	Open-ILS/web/js/ui/default/staff/circ/checkin/app.js
+2	2	Open-ILS/web/js/ui/default/staff/circ/services/item.js
+
+commit cce504ed7e00ffe68fc218154fb6649f3c23989a
+Author: Galen Charlton <gmc at equinoxinitiative.org>
+Date:   Thu Jan 25 14:57:40 2018 -0500
+
+    LP#1745462: avoid trying to validate empty fields
+    
+    This patch is the belt to the previous patch's suspenders and ensures
+    that the web staff client does not attempt to authority-validate headings
+    fields in the MARC editor if they're empty (i.e., no subfield values).
+    
+    To test
+    -------
+    [1] In the web staff client, create a new bib. Ensure that at least one of the
+        authority-controlled fields has no subfield values.
+    [2] Hit the Validate button.
+    [3] Note that the field(s) with empty headings show the tick
+        mark indicating that they've been "validated".
+    [4] Apply the patch and repeat steps 1 and 2. This time, empty headings
+        field should not be checked.
+    [5] Verify that validating headings that are not empty does continue
+        to work.
+    
+    Patch inspired by Mike Rylander.
+    
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+    Signed-off-by: Chris Sharp <csharp at georgialibraries.org>
+
+1	0	Open-ILS/web/js/ui/default/staff/cat/services/marcedit.js
+8	2	Open-ILS/web/js/ui/default/staff/cat/services/tagtable.js
+
+commit ba7e69631bc3534a852a7e2e53339954313b9f9e
+Author: Galen Charlton <gmc at equinoxinitiative.org>
+Date:   Thu Jan 25 14:40:47 2018 -0500
+
+    LP#1745462: guard against scanning entire authority table
+    
+    This patch ensures that if, for whatever reason, a MARC editor headings
+    validation action includes a field whose subfield values are empty, it
+    ignores any cases where the normalized heading works out to NULL or the
+    empty string. Otherwise, the database can be asked to fetch the IDs
+    of most/all records in the database, and open-ils.cstore backend can be
+    asked to store the entire result set in memory.
+    
+    To test
+    -------
+    [0] Ensure that statement logging is turned on in the PostgreSQL database.
+    [1] In the web staff client, create a new bib. Ensure that at least one of the
+        authority-controlled fields has no subfield values.
+    [2] Hit the Validate button.
+    [3] Note that the following query is logged by the database:
+    
+    SELECT "are".id AS "id" FROM authority.record_entry AS "are"
+    WHERE "are".control_set = '1'
+    AND "are".deleted = 'f' AND "are".simple_heading IS NOT NULL;
+    
+    [4] Apply the patch and repeat steps 1 and 2. This time, note that
+        no such query is recorded.
+    [5] Verify that validating headings that are not empty does continue
+        to work.
+    
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+    Signed-off-by: Chris Sharp <csharp at georgialibraries.org>
+
+4	0	Open-ILS/src/perlmods/lib/OpenILS/Application/Search/Authority.pm
+
+commit 7764e71a667b685a0aec6d1d8c444db0528053e0
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Wed May 23 11:54:34 2018 -0400
+
+    LP#1537228 Precat subsequent checkin shows route alert
+    
+    Display the 'route to cataloging' alert every time a precat copy is
+    checked in, consistent with the XUL client, instead of displaying
+    it only with the first checkin.
+    
+    As with the first checkin, if the alert is configured not to display,
+    it will not show.
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Jane Sandberg <sandbej at linnbenton.edu>
+    Signed-off-by: Chris Sharp <csharp at georgialibraries.org>
+
+6	1	Open-ILS/web/js/ui/default/staff/circ/services/circ.js
+
+commit e54ddfb9444dd5c5e7ff575e4f391d85279b8d5d
+Author: Galen Charlton <gmc at equinoxinitiative.org>
+Date:   Mon Jan 22 18:01:00 2018 -0500
+
+    LP#1745207: tie together copy_tag() and site() search filters
+    
+    The copy_tag() filter will now restrict itself to records that
+    have copies that both have matching copy tags and a circ_lib
+    within the site() scope.
+    
+    To test
+    -------
+    [1] Define two digital bookplate copy tags at two difference org units, e.g.,
+        "BR1 Smith" at BR1 and "BR4 Smith" at "BR4".
+    [2] Arrange that a record has items in both BR1 and BR4, and assign the "BR4 Smith"
+        copy tag to one of the BR4 items.
+    [3] On a separate record, set up a similar situation, but use BR1 instead.
+    [4] Enable the digital bookplate search option and do a bookplate search
+        for "Smith" with the scope limited to BR1.
+    [5] Note that both of the records set up in #2 and #3 are included in the results
+        set.
+    [6] Apply the patch and repeat step 5. This time, only the record set up in #3
+        should be included.
+    
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+    Signed-off-by: Garry Collum <gcollum at gmail.com>
+    Signed-off-by: Chris Sharp <csharp at georgialibraries.org>
+
+1	0	Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Driver/Pg/QueryParser.pm
+
+commit bb3d004fad172eb4296a587ea49afdd80d79f01e
+Author: Cesar Velez <cesar.velez at equinoxinitiative.org>
+Date:   Thu Jan 11 14:12:55 2018 -0500
+
+    LP1742782 - fix display of cbox label in list of removable fields
+    
+    The checkbox input element was being displayed in the middle
+    of the label text.
+    
+    Signed-off-by: Cesar Velez <cesar.velez at equinoxinitiative.org>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+6	6	Open-ILS/src/templates/staff/cat/z3950/t_list.tt2
+
+commit 5492a40a583ef654a00a70fa11b99f3e66d0cbfa
+Author: Jeff Davis <jdavis at sitka.bclibraries.ca>
+Date:   Tue Mar 6 10:46:49 2018 -0800
+
+    LP#1738499: barcode completion for copy buckets
+    
+    Signed-off-by: Jeff Davis <jdavis at sitka.bclibraries.ca>
+    Signed-off-by: Chris Sharp <csharp at georgialibraries.org>
+
+82	13	Open-ILS/web/js/ui/default/staff/cat/bucket/copy/app.js
+
+commit 7a78d03100756d91f92b930f5fef4858f9659194
+Author: Michele Morgan <mmorgan at noblenet.org>
+Date:   Thu Sep 14 11:48:31 2017 -0400
+
+    LP#1692116 - Action trigger validator fix for paid Long Overdue items
+    
+    Adds a check for a NULL xact_finish to the CircIsOpen validator. The
+    result is that overdue notification a/t events for Long Overdue items that
+    have been paid for, and the transaction closed, will be invalid.
+    
+    Signed-off-by: Michele Morgan <mmorgan at noblenet.org>
+    Signed-off-by: Chris Sharp <csharp at georgialibraries.org>
+
+1	0	Open-ILS/src/perlmods/lib/OpenILS/Application/Trigger/Validator.pm
+
+commit 6996a3630dea3d6fd967c127417a800aba561603
+Author: Jason Etheridge <jason at EquinoxInitiative.org>
+Date:   Tue Jul 10 19:46:04 2018 -0400
+
+    lp1739286 default search box in Z39.50
+    
+    This change tweaks the layout of search fields in the web client Z39.50
+    interface and adds radio buttons for the default search field to auto-focus.
+    The behavior is "sticky" without the need for an explicit Save action.  If the
+    current default field is not present due to a given combination of selected
+    services, then no field will be focused by default.
+    
+    Signed-off-by: Jason Etheridge <jason at EquinoxInitiative.org>
+    Signed-off-by: Chris Sharp <csharp at georgialibraries.org>
+
+15	5	Open-ILS/src/templates/staff/cat/z3950/t_search_fields.tt2
+19	0	Open-ILS/web/js/ui/default/staff/cat/services/z3950.js
+
+commit 9d9e666731d5751ebbf261f19baa0a322b523088
+Author: Jason Boyer <jboyer at library.in.gov>
+Date:   Mon Jul 9 12:47:10 2018 -0400
+
+    LP1736243: SMS Carrier Editing in Patron Editor
+    
+    The XUL Client treats many user setting entries as
+    quoted strings. Angular needs some help to recognize
+    that it needs to convert these incoming "strings"
+    to ints for use as the data model when editing. The
+    str-to-int directive gives it this hint.
+    
+    Signed-off-by: Jason Boyer <jboyer at library.in.gov>
+    Signed-off-by: Chris Sharp <csharp at georgialibraries.org>
+
+1	1	Open-ILS/src/templates/staff/circ/patron/t_edit.tt2
+
+commit ee26db318caa6de461c13ff07c2c9b5a510e4aa0
+Author: Jane Sandberg <sandbej at linnbenton.edu>
+Date:   Fri Jul 6 15:49:07 2018 -0700
+
+    Docs: fixing physical characteristics wizard representation in consolidated docs
+    
+    Signed-off-by: Jane Sandberg <sandbej at linnbenton.edu>
+
+8	5	docs/root.adoc
+
+commit 7fc716fda3bf7454dfb66ad35b040be293dafca5
+Author: Jane Sandberg <sandbej at linnbenton.edu>
+Date:   Fri Jul 6 15:30:52 2018 -0700
+
+    Docs: adding indexterms to physical characteristics wizard docs
+    
+    Signed-off-by: Jane Sandberg <sandbej at linnbenton.edu>
+
+3	0	docs/admin/physical_char_wizard_db.adoc
+
+commit fbcd1913279b62d9d0363aaee25ffdd4c845c4c9
+Author: Jane Sandberg <sandbej at linnbenton.edu>
+Date:   Fri Jul 6 15:30:20 2018 -0700
+
+    Docs: configuring fixed field dropdown menus
+    
+    Signed-off-by: Jane Sandberg <sandbej at linnbenton.edu>
+
+25	0	docs/admin/MARC_RAD_MVF_CRA.adoc
+
+commit 35f31652a6e366fa0c84a8cd57a4bf57e9850eb5
+Author: Jane Sandberg <sandbej at linnbenton.edu>
+Date:   Fri Jul 6 15:23:27 2018 -0700
+
+    Docs: removing broken link
+    
+    Signed-off-by: Jane Sandberg <sandbej at linnbenton.edu>
+
+1	1	docs/admin_initial_setup/importing_via_staff_client.adoc
+
+commit 5e5f1c04b958ba5bfa19c38d5af30e2dfe6c0b39
+Author: Jason Boyer <jboyer at library.in.gov>
+Date:   Fri Jun 29 14:09:51 2018 -0400
+
+    LP1779392: Stop sending broken queries
+    
+    It's possible to send invalid parameters to the
+    search.highlight_display_fields function which
+    wastes a db roundtrip and fills the logs with
+    errors. Checking to be sure there's anything in
+    the parameter will prevent both.
+    
+    Signed-off-by: Jason Boyer <jboyer at library.in.gov>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+2	3	Open-ILS/src/perlmods/lib/OpenILS/Application/Search/Biblio.pm
+
+commit 8cf7ead11f42ea7cb661497d6609a11713f78371
+Author: Jason Stephenson <jason at sigio.com>
+Date:   Thu May 24 09:34:17 2018 -0400
+
+    LP 1772993: Ability to blank Age Hold Protection in Vol/Copy Editor.
+    
+    Add the <NONE> option to the age-based hold protection field in the
+    web staff client Vol/Copy Editor.
+    
+    To test:
+    
+    1. Add a value for age-based hold protection to a copy.
+    
+    2. Attempt to remove the value in the copy editor.  Note that the
+       dropdown does not allow you to do so.
+    
+    3. Apply this commit.
+    
+    4. Repeat step 2.  Now there is a <NONE> option that removes the value
+       from the copy.
+    
+    Signed-off-by: Jason Stephenson <jason at sigio.com>
+    Signed-off-by: Jeff Davis <jdavis at sitka.bclibraries.ca>
+
+3	2	Open-ILS/src/templates/staff/cat/volcopy/t_attr_edit.tt2
+
+commit 132669daa4f43736ae150e17a13726fa891d59d1
+Author: Dan Wells <dbw2 at calvin.edu>
+Date:   Fri Jun 29 12:42:05 2018 -0400
+
+    Forward-port 3.1.3 upgrade script
+    
+    Signed-off-by: Dan Wells <dbw2 at calvin.edu>
+
+15	0	Open-ILS/src/sql/Pg/version-upgrade/3.1.2-3.1.3-upgrade-db.sql
+ create mode 100644 Open-ILS/src/sql/Pg/version-upgrade/3.1.2-3.1.3-upgrade-db.sql
diff --git a/Open-ILS/src/perlmods/lib/OpenILS/Application.pm b/Open-ILS/src/perlmods/lib/OpenILS/Application.pm
index d750216..550057f 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-4";
 }
 
 __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 5527d7d..dd03862 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 ('1114', :eg_version); -- JBoyer/miker
+INSERT INTO config.upgrade_log (version, applied_to) VALUES ('3.1.4', :eg_version);
 
 CREATE TABLE config.bib_source (
 	id		SERIAL	PRIMARY KEY,
diff --git a/Open-ILS/src/sql/Pg/version-upgrade/3.1.3-3.1.4-upgrade-db.sql b/Open-ILS/src/sql/Pg/version-upgrade/3.1.3-3.1.4-upgrade-db.sql
new file mode 100644
index 0000000..e594f35
--- /dev/null
+++ b/Open-ILS/src/sql/Pg/version-upgrade/3.1.3-3.1.4-upgrade-db.sql
@@ -0,0 +1,257 @@
+--Upgrade Script for 3.1.3 to 3.1.4
+\set eg_version '''3.1.4'''
+BEGIN;
+INSERT INTO config.upgrade_log (version, applied_to) VALUES ('3.1.4', :eg_version);
+
+SELECT evergreen.upgrade_deps_block_check('1113', :eg_version); 
+
+CREATE OR REPLACE FUNCTION acq.rollover_funds_by_org_tree(
+    old_year INTEGER,
+    user_id INTEGER,
+    org_unit_id INTEGER,
+    encumb_only BOOL DEFAULT FALSE,
+    include_desc BOOL DEFAULT TRUE
+) RETURNS VOID AS $$
+DECLARE
+--
+new_fund    INT;
+new_year    INT := old_year + 1;
+org_found   BOOL;
+perm_ous    BOOL;
+xfer_amount NUMERIC := 0;
+roll_fund   RECORD;
+deb         RECORD;
+detail      RECORD;
+roll_distrib_forms BOOL;
+--
+BEGIN
+    --
+    -- Sanity checks
+    --
+    IF old_year IS NULL THEN
+        RAISE EXCEPTION 'Input year argument is NULL';
+    ELSIF old_year NOT BETWEEN 2008 and 2200 THEN
+        RAISE EXCEPTION 'Input year is out of range';
+    END IF;
+    --
+    IF user_id IS NULL THEN
+        RAISE EXCEPTION 'Input user id argument is NULL';
+    END IF;
+    --
+    IF org_unit_id IS NULL THEN
+        RAISE EXCEPTION 'Org unit id argument is NULL';
+    ELSE
+        --
+        -- Validate the org unit
+        --
+        SELECT TRUE
+        INTO org_found
+        FROM actor.org_unit
+        WHERE id = org_unit_id;
+        --
+        IF org_found IS NULL THEN
+            RAISE EXCEPTION 'Org unit id % is invalid', org_unit_id;
+        ELSIF encumb_only THEN
+            SELECT INTO perm_ous value::BOOL FROM
+            actor.org_unit_ancestor_setting(
+                'acq.fund.allow_rollover_without_money', org_unit_id
+            );
+            IF NOT FOUND OR NOT perm_ous THEN
+                RAISE EXCEPTION 'Encumbrance-only rollover not permitted at org %', org_unit_id;
+            END IF;
+        END IF;
+    END IF;
+    --
+    -- Loop over the propagable funds to identify the details
+    -- from the old fund plus the id of the new one, if it exists.
+    --
+    FOR roll_fund in
+    SELECT
+        oldf.id AS old_fund,
+        oldf.org,
+        oldf.name,
+        oldf.currency_type,
+        oldf.code,
+        oldf.rollover,
+        newf.id AS new_fund_id
+    FROM
+        acq.fund AS oldf
+        LEFT JOIN acq.fund AS newf
+            ON ( oldf.code = newf.code AND oldf.org = newf.org )
+    WHERE
+            oldf.year = old_year
+        AND oldf.propagate
+        AND newf.year = new_year
+        AND ( ( include_desc AND oldf.org IN ( SELECT id FROM actor.org_unit_descendants( org_unit_id ) ) )
+                OR (NOT include_desc AND oldf.org = org_unit_id ) )
+    LOOP
+        --RAISE NOTICE 'Processing fund %', roll_fund.old_fund;
+        --
+        IF roll_fund.new_fund_id IS NULL THEN
+            --
+            -- The old fund hasn't been propagated yet.  Propagate it now.
+            --
+            INSERT INTO acq.fund (
+                org,
+                name,
+                year,
+                currency_type,
+                code,
+                rollover,
+                propagate,
+                balance_warning_percent,
+                balance_stop_percent
+            ) VALUES (
+                roll_fund.org,
+                roll_fund.name,
+                new_year,
+                roll_fund.currency_type,
+                roll_fund.code,
+                true,
+                true,
+                roll_fund.balance_warning_percent,
+                roll_fund.balance_stop_percent
+            )
+            RETURNING id INTO new_fund;
+
+                PERFORM acq.copy_fund_tags(roll_fund.id,new_fund);
+
+        ELSE
+            new_fund = roll_fund.new_fund_id;
+        END IF;
+        --
+        -- Determine the amount to transfer
+        --
+        SELECT amount
+        INTO xfer_amount
+        FROM acq.fund_spent_balance
+        WHERE fund = roll_fund.old_fund;
+        --
+        IF xfer_amount <> 0 THEN
+            IF NOT encumb_only AND roll_fund.rollover THEN
+                --
+                -- Transfer balance from old fund to new
+                --
+                --RAISE NOTICE 'Transferring % from fund % to %', xfer_amount, roll_fund.old_fund, new_fund;
+                --
+                PERFORM acq.transfer_fund(
+                    roll_fund.old_fund,
+                    xfer_amount,
+                    new_fund,
+                    xfer_amount,
+                    user_id,
+                    'Rollover'
+                );
+            ELSE
+                --
+                -- Transfer balance from old fund to the void
+                --
+                -- RAISE NOTICE 'Transferring % from fund % to the void', xfer_amount, roll_fund.old_fund;
+                --
+                PERFORM acq.transfer_fund(
+                    roll_fund.old_fund,
+                    xfer_amount,
+                    NULL,
+                    NULL,
+                    user_id,
+                    'Rollover into the void'
+                );
+            END IF;
+        END IF;
+        --
+        IF roll_fund.rollover THEN
+            --
+            -- Move any lineitems from the old fund to the new one
+            -- where the associated debit is an encumbrance.
+            --
+            -- Any other tables tying expenditure details to funds should
+            -- receive similar treatment.  At this writing there are none.
+            --
+            UPDATE acq.lineitem_detail
+            SET fund = new_fund
+            WHERE
+                fund = roll_fund.old_fund -- this condition may be redundant
+                AND fund_debit in
+                (
+                    SELECT id
+                    FROM acq.fund_debit
+                    WHERE
+                        fund = roll_fund.old_fund
+                        AND encumbrance
+                );
+            --
+            -- Move encumbrance debits from the old fund to the new fund
+            --
+            UPDATE acq.fund_debit
+            SET fund = new_fund
+            wHERE
+                fund = roll_fund.old_fund
+                AND encumbrance;
+        END IF;
+
+        -- Rollover distribution formulae funds
+        SELECT INTO roll_distrib_forms value::BOOL FROM
+            actor.org_unit_ancestor_setting(
+                'acq.fund.rollover_distrib_forms', org_unit_id
+            );
+
+        IF roll_distrib_forms THEN
+            UPDATE acq.distribution_formula_entry 
+                SET fund = roll_fund.new_fund_id
+                WHERE fund = roll_fund.old_fund;
+        END IF;
+
+        --
+        -- Mark old fund as inactive, now that we've closed it
+        --
+        UPDATE acq.fund
+        SET active = FALSE
+        WHERE id = roll_fund.old_fund;
+    END LOOP;
+END;
+$$ LANGUAGE plpgsql;
+
+
+
+SELECT evergreen.upgrade_deps_block_check('1114', :eg_version);
+
+CREATE OR REPLACE FUNCTION asset.copy_state (cid BIGINT) RETURNS TEXT AS $$
+DECLARE
+    last_circ_stop      TEXT;
+    the_copy        asset.copy%ROWTYPE;
+BEGIN
+
+    SELECT * INTO the_copy FROM asset.copy WHERE id = cid;
+    IF NOT FOUND THEN RETURN NULL; END IF;
+
+    IF the_copy.status = 3 THEN -- Lost
+        RETURN 'LOST';
+    ELSIF the_copy.status = 4 THEN -- Missing
+        RETURN 'MISSING';
+    ELSIF the_copy.status = 14 THEN -- Damaged
+        RETURN 'DAMAGED';
+    ELSIF the_copy.status = 17 THEN -- Lost and paid
+        RETURN 'LOST_AND_PAID';
+    END IF;
+
+    SELECT stop_fines INTO last_circ_stop
+      FROM  action.circulation
+      WHERE target_copy = cid AND checkin_time IS NULL
+      ORDER BY xact_start DESC LIMIT 1;
+
+    IF FOUND THEN
+        IF last_circ_stop IN (
+            'CLAIMSNEVERCHECKEDOUT',
+            'CLAIMSRETURNED',
+            'LONGOVERDUE'
+        ) THEN
+            RETURN last_circ_stop;
+        END IF;
+    END IF;
+
+    RETURN 'NORMAL';
+END;
+$$ 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 b2b87b6..1830484 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_4</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 0613a13..c626c9f 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_4");
 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 a954357..ae0bbdf 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 1ee2103..0000000
--- 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 0000000..2f31634
--- /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_4 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 dacb5a3..debc272 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.4, open-ils-dev at list.georgialibraries.org)
+AM_INIT_AUTOMAKE([OpenILS], [3.1.4])
 AC_REVISION($Revision: 0.1 $)
 AC_CONFIG_SRCDIR([configure.ac])
 AC_CONFIG_SUBDIRS([Open-ILS/xul/staff_client/external/libmar])
diff --git a/docs/installation/server_upgrade.adoc b/docs/installation/server_upgrade.adoc
index 72f4cf6..8554fc7 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.4 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.4:
 +
 [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.4.tar.gz
+tar xzf Evergreen-ILS-3.1.4.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.4
 ---------------------------------------------
 +
 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.4
 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.4
+make STAFF_CLIENT_STAMP_ID=rel_3_1_4 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_4/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.4
 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.4/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.4/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.4/Open-ILS/examples/apache/eg.conf /etc/apache2/sites-available/eg.conf
 ----------------------------------------------------------
 
 Upgrade the Evergreen database schema
@@ -225,8 +225,11 @@ 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
+cd /home/opensrf/Evergreen-ILS-3.1.4/Open-ILS/src/sql/Pg
 psql -U evergreen -h localhost -f version-upgrade/3.1.0-3.1.1-upgrade-db.sql evergreen
+psql -U evergreen -h localhost -f version-upgrade/3.1.1-3.1.2-upgrade-db.sql evergreen
+psql -U evergreen -h localhost -f version-upgrade/3.1.2-3.1.3-upgrade-db.sql evergreen
+psql -U evergreen -h localhost -f version-upgrade/3.1.3-3.1.4-upgrade-db.sql evergreen
 ----------------------------------------------------------
 
 [TIP]

commit 3e5c76f925f97bbc29b8222028013b858c6184a3
Author: blake <blake at mobiusconsortium.org>
Date:   Wed Jul 25 15:33:38 2018 -0500

    bumping Perl version string for 3.1.4
    
    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 d7235ce..2c64f79 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.0104';
 
 1;

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


hooks/post-receive
-- 
Evergreen ILS


More information about the open-ils-commits mailing list