[open-ils-commits] [GIT] Evergreen ILS branch tags/rel_3_4_4 created. c8e6e2432ebeeab24da1f84f6c44f6e48cfd50d4

Evergreen Git git at git.evergreen-ils.org
Wed Aug 12 12:19:22 EDT 2020


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_4_4 has been created
        at  c8e6e2432ebeeab24da1f84f6c44f6e48cfd50d4 (commit)

- Log -----------------------------------------------------------------
commit c8e6e2432ebeeab24da1f84f6c44f6e48cfd50d4
Author: Chris Sharp <csharp at georgialibraries.org>
Date:   Tue Aug 11 20:30:09 2020 -0400

    Bumping version numbers, adding Upgrade Script and Changelog
    
    Signed-off-by: Chris Sharp <csharp at georgialibraries.org>

diff --git a/ChangeLog b/ChangeLog
index 1f72b2c73e..cd4c9ada08 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,1409 @@
-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 ce4422e352852935c658f69059ea375a5c96ff6d
+Author: Chris Sharp <csharp at georgialibraries.org>
+Date:   Tue Aug 11 20:28:32 2020 -0400
+
+    Updating upgrade docs for 3.4.4.
+    
+    Signed-off-by: Chris Sharp <csharp at georgialibraries.org>
+
+17	16	docs/installation/server_upgrade.adoc
+
+commit 4737705238e6f1ece8fe012c8338ca2d0989f2d6
+Author: Chris Sharp <csharp at georgialibraries.org>
+Date:   Tue Aug 11 20:28:26 2020 -0400
+
+    Bumping Perl version string for 3.4.4
+    
+    Signed-off-by: Chris Sharp <csharp at georgialibraries.org>
+
+1	1	Open-ILS/src/perlmods/lib/OpenILS.pm
+
+commit 310793468727887a164c852b88b5b670972e2769
+Author: Jane Sandberg <sandbej at linnbenton.edu>
+Date:   Tue Aug 11 16:09:51 2020 -0700
+
+    Docs: asciidoc syntax correction for 3.4 release notes
+    
+    Signed-off-by: Jane Sandberg <sandbej at linnbenton.edu>
+
+3	3	docs/RELEASE_NOTES_3_4.adoc
+
+commit efce227c3ecfcd51f52b4922f35f3e092e658fc5
+Author: Jane Sandberg <sandbej at linnbenton.edu>
+Date:   Tue Aug 11 13:10:44 2020 -0700
+
+    Docs: tweaks to 3.4.4 release notes
+    
+    Signed-off-by: Jane Sandberg <sandbej at linnbenton.edu>
+
+31	1	docs/RELEASE_NOTES_3_4.adoc
+
+commit 3d71e0808bc69a137c5a00a92830c982a18158ef
+Author: Jane Sandberg <sandbej at linnbenton.edu>
+Date:   Tue Aug 11 11:24:46 2020 -0700
+
+    Docs: 3.4.4 release notes
+    
+    Signed-off-by: Jane Sandberg <sandbej at linnbenton.edu>
+
+160	0	docs/RELEASE_NOTES_3_4.adoc
+
+commit 6e0886e75789aaf40a46e7e7d2e4d61f6d88200b
+Author: Michele Morgan <mmorgan at noblenet.org>
+Date:   Tue Aug 27 08:55:06 2019 -0400
+
+    LP1811466 Add fields to holdings editor column pickers
+    
+    Adds item fields creator, editor and last edit date to the working and
+    completed grids in the holdings editor.
+    
+    Signed-off-by: Michele Morgan <mmorgan at noblenet.org>
+    Signed-off-by: Rogan Hamby <rogan.hamby at gmail.com>
+    Signed-off-by: Jane Sandberg <sandbej at linnbenton.edu>
+
+9	3	Open-ILS/src/templates/staff/cat/volcopy/t_edit.tt2
+1	1	Open-ILS/web/js/ui/default/staff/cat/volcopy/app.js
+
+commit a199e3b5ef2e1c765a88c3427d8c53e8055e407e
+Author: Galen Charlton <gmc at equinoxinitiative.org>
+Date:   Mon Aug 3 17:14:12 2020 -0400
+
+    LP#1839369: (follow-up) tweak button and styles
+    
+    - Change the button text from "Search" to "Search Catalog"
+    - adjust the styling on the AngularJS side to cuddle the
+      button with the search input
+    - standardize the placeholder text as "Search for..."
+    
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+    Signed-off-by: Jane Sandberg <sandbej at linnbenton.edu>
+
+1	1	Open-ILS/src/eg2/src/app/staff/splash.component.html
+9	9	Open-ILS/src/templates/staff/t_splash.tt2
+
+commit 6a3a03751cffbe7409ac5967eec2df6923f71f76
+Author: Terran McCanna <tmccanna at georgialibraries.org>
+Date:   Tue Oct 22 16:16:35 2019 -0400
+
+    LP#1839369 Accessibility for Search Box
+    
+    This adds an accessible label to the Search box on the splash
+    page of the staff client as well as to the Angular version of
+    the splash page.
+    
+    Signed-off-by: Terran McCanna <tmccanna at georgialibraries.org>
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+    Signed-off-by: Jane Sandberg <sandbej at linnbenton.edu>
+
+2	1	Open-ILS/src/eg2/src/app/staff/splash.component.html
+1	0	Open-ILS/src/templates/staff/t_splash.tt2
+
+commit 5a35074c9479cd20503f9543221d11c477446a96
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Wed Mar 18 12:41:38 2020 -0400
+
+    LP1867834 Staffcat clear basket on logout
+    
+    Tell the browser/local store service to treat the staff catalog basket
+    cache key as a "login item", meaning it should be cleared upon logout.
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Jane Sandberg <sandbej at linnbenton.edu>
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+
+3	0	Open-ILS/src/eg2/src/app/share/catalog/basket.service.ts
+
+commit f9491973457baf525d8165f6ff8d981e222b4cac
+Author: Galen Charlton <gmc at equinoxinitiative.org>
+Date:   Tue Jul 28 11:09:45 2020 -0400
+
+    LP#1889251: make call number affix sort keys read-only
+    
+    This patch makes the call number prefix and suffix label sort
+    key fields read-only on their respective Server Administration
+    pages, as any values that a user would try to set for them
+    would get overwritten by a database trigger.
+    
+    To test
+    -------
+    [1] Apply the patch.
+    [2] Go to Server Administration -> Call Number Prefixes (or Suffixes)
+        and attempt create and edit new affixes.
+    [3] Verify that the label sort key is a read-only display field on the
+        edit modal.
+    
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+    Signed-off-by: Rogan Hamby <rogan.hamby at gmail.com>
+
+10	0	Open-ILS/src/eg2/src/app/staff/admin/server/routing.module.ts
+
+commit bbb14ec1dba963cb808e72ef7d0564902dce7424
+Author: Josh Stompro <stompro at stompro.org>
+Date:   Mon Mar 4 11:16:56 2019 -0600
+
+    LP#1674364 - Use database bib id for cover art lookup
+    
+    Export the 901c as the URN:BIBID identifier to allow the
+    ATOM2XHTML.xsl to construct a cover art img link using it.
+    
+    Testing Notes:
+    
+    I used a bookbag to test this out.
+    1. Create a public bookbag of items and grab the bookbag id.
+    2. View the source of these links on your system to see the current output.
+     /opac/extras/feed/bookbag/atom/<bookbagid>
+     /opac/extras/feed/bookbag/html-full/<bookbagid>
+       Make note that the jacket img link uses the ISBN to lookup cover art.
+    
+    Make changes.
+    1. Restart supercat to re-load xsl transfor files.
+      osrf_control -l --service open-ils.supercat --restart
+    2. View the source and output of these links on your system to see the changes.
+     /opac/extras/feed/bookbag/atom/<bookbagid>
+     /opac/extras/feed/bookbag/html-full/<bookbagid>
+       The cover art images should show up now in the html-full, and the
+       URN:BIBID: identifier should be populated in the atom file.
+    
+    Signed-off-by: Josh Stompro <stompro at stompro.org>
+    Signed-off-by: Terran McCanna <tmccanna at georgialibraries.org>
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+
+3	17	Open-ILS/xsl/ATOM2XHTML.xsl
+9	0	Open-ILS/xsl/MARC21slim2ATOM.xsl
+
+commit 657acd544dd51a6ea81681bd1961c8514c530afb
+Author: Galen Charlton <gmc at equinoxinitiative.org>
+Date:   Mon Aug 3 17:38:48 2020 -0400
+
+    LP#1731370: (follow-up) fix a typo that was causing console noise
+    
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+
+1	1	Open-ILS/web/js/ui/default/staff/cat/volcopy/app.js
+
+commit d973477eaac04e7f7142cf1c107da37670ddfc82
+Author: Galen Charlton <gmc at equinoxinitiative.org>
+Date:   Mon Aug 3 17:31:32 2020 -0400
+
+    LP#1761142: (follow-up) tweak field-change style
+    
+    [1] Ensure that the border is displayed.
+    [2] Change the border color to one that has more contrast
+        as compared to the bg-success background color.
+    
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+
+1	1	Open-ILS/src/templates/staff/cat/volcopy/t_attr_edit.tt2
+
+commit 22e866890d1e4e70359a627d15d1f77292a18caf
+Author: a. bellenir <abelleni at grpl.org>
+Date:   Thu Mar 28 12:26:37 2019 -0400
+
+    LP1761142 Volume Copy Editor Changed Fields Hard to Discern
+    
+    Add a changed_fields object to the scope and update it as copies are
+    changed. The function field_changed(field) determines if any of the
+    selected copies have altered the given field.  finally, a CSS class,
+    field-changed, is applied to add a green border to fields whose values
+    have been modified.
+    
+    Signed-off-by: a. bellenir <abelleni at grpl.org>
+    Signed-off-by: Ruth Frasur <rfrasur at gmail.com>
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+
+21	18	Open-ILS/src/templates/staff/cat/volcopy/t_attr_edit.tt2
+11	0	Open-ILS/web/js/ui/default/staff/cat/volcopy/app.js
+
+commit 95b9fb7f9f12bbfbb2246857ca5c6a5b04f016d0
+Author: Josh Stompro <stompro at stompro.org>
+Date:   Tue Jan 28 10:04:02 2020 -0600
+
+    LP#1783793 - Suspend holds when activation date set in web client angularjs
+    
+    1. Modify Dates popup changed to not allow picking dates in the past for hold
+      activation date both in the date picker, and if typed in manually.  If a
+      date in the past is typed in, it is changed to today's date and an alert
+      message is displayed.  The date picker just won't allow past days to be
+      selected.  The alert message remains until a date in the future is selected.
+    
+    2. Suspend holds when the activation date is set and saved.
+    
+    3. Adds a note about the fact that the hold will be suspended when the hold
+      activation date is selected for editing.  This makes the behavior clear so
+      staff don't have to figure it out by trial and error.
+    
+    4. Updates several sr-only (Screen Reader Only) labels in the holds date popup
+      template that were set to the wrong values.  The file was copied from the hold
+      notification popup and the screen reader descriptions were left unchanged from
+      those values.
+    
+    Signed-off-by: Josh Stompro <stompro at stompro.org>
+    Signed-off-by: Terran McCanna <tmccanna at georgialibraries.org>
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+
+9	4	Open-ILS/src/templates/staff/circ/share/t_hold_dates.tt2
+17	1	Open-ILS/web/js/ui/default/staff/circ/services/holds.js
+
+commit ffdf63e9f79d8ae85cf7dfd2a6d43b837f4f9ae6
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Tue Jun 30 15:33:23 2020 -0400
+
+    LP#1885759: Count months and quarters across year boundaries
+    
+    We need to add year-multiples of months or quarters when using the
+    months_ago or quarters_ago transforms in the reporter.
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Rogan Hamby <rogan.hamby at gmail.com>
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+
+4	2	Open-ILS/src/perlmods/lib/OpenILS/Reporter/SQLBuilder.pm
+
+commit 70856ddb9fcccc997677eb64890ca2e8713f4fe5
+Author: Jeff Davis <jdavis at sitka.bclibraries.ca>
+Date:   Tue Oct 8 16:00:12 2019 -0700
+
+    LP#1847343: fix Exclude Electronic Resources checkbox when locale picker is enabled
+    
+    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>
+
+2	4	Open-ILS/web/js/ui/default/opac/simple.js
+
+commit 99ebe4e7df8fce5fccaf3707bb489ce5fb1b4a69
+Author: Jane Sandberg <sandbej at linnbenton.edu>
+Date:   Fri Oct 25 21:11:49 2019 -0700
+
+    LP #1717996 (follow-up) Change label for shareable user buckets
+    
+    Signed-off-by: Jane Sandberg <sandbej at linnbenton.edu>
+    Signed-off-by: Jason Boyer <JBoyer at equinoxinitiative.org>
+
+2	1	Open-ILS/src/templates/staff/circ/patron/bucket/t_bucket_create.tt2
+2	1	Open-ILS/src/templates/staff/circ/patron/bucket/t_bucket_edit.tt2
+
+commit a00d9db7cbdf5fc1c857c2f52465d1840bd94525
+Author: Tiffany Little <tlittle at georgialibraries.org>
+Date:   Mon Oct 21 15:00:30 2019 -0400
+
+    LP #1717996 Change label for shareable buckets
+    
+    Changes 'publicly visible' label on buckets and also adds a tooltip with an explanation. Also makes sure that clicking the tooltip does not check the checkbox automatically.
+    
+    Signed-off-by: Tiffany Little <tlittle at georgialibraries.org>
+    Signed-off-by: Jane Sandberg <sandbej at linnbenton.edu>
+    Signed-off-by: Jason Boyer <JBoyer at equinoxinitiative.org>
+
+2	1	Open-ILS/src/templates/staff/cat/bucket/share/t_bucket_create.tt2
+2	1	Open-ILS/src/templates/staff/cat/bucket/share/t_bucket_edit.tt2
+
+commit 9175916ae1b709e85d19a18dfc4c2fb091d53b51
+Author: Jason Boyer <JBoyer at equinoxinitiative.org>
+Date:   Fri Jul 31 12:39:23 2020 -0400
+
+    LP1842431: Add a release note
+    
+    Signed-off-by: Jason Boyer <JBoyer at equinoxinitiative.org>
+
+11	0	docs/RELEASE_NOTES_NEXT/Administration/autorenewal_action_trigger_result_code.adoc
+ create mode 100644 docs/RELEASE_NOTES_NEXT/Administration/autorenewal_action_trigger_result_code.adoc
+
+commit e39a35e5ec7c1be4b16b0b36744f0bdf1778e517
+Author: Jason Boyer <JBoyer at equinoxinitiative.org>
+Date:   Fri Jul 31 11:10:24 2020 -0400
+
+    LP1842431: Remove redundant description field
+    
+    This branch brings about a good change, but I think having reason
+    and description be identical in the case of a failure and blank /
+    'SUCCESS' in the case of, well, success, is redundant and potentially
+    confusing. Also, if it's not used in the default template I doubt
+    anyone ever realizes it's there. :) Template editors can use
+    is_renewed to decide if they want to display success as a result
+    and that way the capitalization won't look like THE EIGHTIES have come
+    back in fashion again. :D
+    
+    Signed-off-by: Jason Boyer <JBoyer at equinoxinitiative.org>
+    Signed-off-by: Jason Stephenson <jason at sigio.com>
+
+0	1	Open-ILS/src/perlmods/lib/OpenILS/Application/Trigger/Reactor/Circ/AutoRenew.pm
+
+commit ec7db5a9bcfddec860b48f5112abc79f63197468
+Author: Jason Stephenson <jason at sigio.com>
+Date:   Fri Sep 6 11:09:18 2019 -0400
+
+    LP#1842431 Split textcode and desc fields for AutoRenew user data
+    
+    Split the event textcode and desc fields into textcode and description
+    fields, respectively, in the AutoRenew reactor's user data, but also
+    leave the reason field alone.  This permits sites to show only the
+    description of the event if they want.
+    
+    Signed-off-by: Jason Stephenson <jason at sigio.com>
+    Signed-off-by: Michele Morgan <mmorgan at noblenet.org>
+    Signed-off-by: Jason Boyer <JBoyer at equinoxinitiative.org>
+
+2	0	Open-ILS/src/perlmods/lib/OpenILS/Application/Trigger/Reactor/Circ/AutoRenew.pm
+
+commit d47ba05830155323028e935c1be3eee6a8f0d1a6
+Author: Michele Morgan <mmorgan at noblenet.org>
+Date:   Thu Sep 12 16:30:47 2019 -0400
+
+    LP#1842431 Make renewal failure reason more appropriate for patron notifications
+    
+    Changes the failure reason for the autorenewal to include only the desc,
+    Removes the textcode of the event, which shouldn't be included in a patron notice.
+    
+    Signed-off-by: Michele Morgan <mmorgan at noblenet.org>
+    Signed-off-by: Jason Stephenson <jason at sigio.com>
+    Signed-off-by: Jason Boyer <JBoyer at equinoxinitiative.org>
+
+1	1	Open-ILS/src/perlmods/lib/OpenILS/Application/Trigger/Reactor/Circ/AutoRenew.pm
+
+commit d4185338f2726761d479e77765038189c4867f2e
+Author: Jane Sandberg <sandbej at linnbenton.edu>
+Date:   Mon Oct 8 17:24:20 2018 -0700
+
+    LP1731370: Distinguishing new copies and volumes with aditional means (WCAG 1.4.1)
+    
+    Signed-off-by: Jane Sandberg <sandbej at linnbenton.edu>
+    Signed-off-by: Elaine Hardy <ehardy at georgialibraries.org>
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+
+2	0	Open-ILS/src/templates/staff/cat/volcopy/index.tt2
+1	2	Open-ILS/src/templates/staff/css/cat.css.tt2
+6	4	Open-ILS/web/js/ui/default/staff/cat/volcopy/app.js
+
+commit 745b43a9118dc9bee802bb8cf2f773da9a5ca394
+Author: Jason Etheridge <jason at EquinoxInitiative.org>
+Date:   Wed Sep 12 08:10:32 2018 -0400
+
+    lp1731370 CSS styling for new items and volumes
+    
+    previous commit just handled volumes, this handles copies
+    
+    Signed-off-by: Jason Etheridge <jason at EquinoxInitiative.org>
+    Signed-off-by: Elaine Hardy <ehardy at georgialibraries.org>
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+
+1	0	Open-ILS/src/templates/staff/css/cat.css.tt2
+3	1	Open-ILS/web/js/ui/default/staff/cat/volcopy/app.js
+
+commit 017cce2a57304a8f473730a23b643d891bb64552
+Author: Jason Etheridge <jason at EquinoxInitiative.org>
+Date:   Wed Sep 5 09:13:49 2018 -0400
+
+    lp1731370 CSS styling for new items and volumes
+    
+    in vol/copy editor
+    
+    Signed-off-by: Jason Etheridge <jason at EquinoxInitiative.org>
+    Signed-off-by: Elaine Hardy <ehardy at georgialibraries.org>
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+
+3	1	Open-ILS/src/templates/staff/css/cat.css.tt2
+1	1	Open-ILS/web/js/ui/default/staff/cat/volcopy/app.js
+
+commit 8c8aafcbe26d24dd549015afdd5cbecaefb5de65
+Author: Josh Stompro <stompro at stompro.org>
+Date:   Wed Nov 6 12:24:36 2019 -0600
+
+    LP#1851541 - Add audio alert for item alert popups
+    
+    Signed-off-by: Josh Stompro <stompro at stompro.org>
+    Signed-off-by: Terran McCanna <tmccanna at georgialibraries.org>
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+
+1	0	Open-ILS/web/js/ui/default/staff/circ/services/circ.js
+
+commit cd055be633d8f2d129a92b5c6949247dcbd528f9
+Author: Christine Morgan <cmorgan at noblenet.org>
+Date:   Thu Nov 21 12:53:11 2019 -0500
+
+    LP1735568, LP1830443: MARC Editor Fixes
+    
+    These style changes to the current MARC Editor fix the indicator box
+    resize problem and the blank subfield problem while improving usability.
+    Colors were tested using the Chrome extension Colorblindly, a
+    colorblindness simulator.
+    
+    Signed-off-by: Christine Morgan <cmorgan at noblenet.org>
+    Signed-off-by: Elaine Hardy <ehardy at georgialibraries.org>
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+
+24	21	Open-ILS/src/templates/staff/cat/share/t_marcedit.tt2
+3	3	Open-ILS/src/templates/staff/cat/share/t_marcedit_editable.tt2
+27	11	Open-ILS/src/templates/staff/css/cat.css.tt2
+
+commit 5517094ec404001cf8fbae51f66570e4a709f677
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Tue Jul 28 17:21:28 2020 -0400
+
+    LP1889296 Staffcat holds request time includes time
+    
+    Display the hold request time as date plus time in the general purpose
+    Angluar holds grid.
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Jane Sandberg <sandbej at linnbenton.edu>
+
+2	1	Open-ILS/src/eg2/src/app/staff/share/holds/grid.component.html
+
+commit 89b5bf9a7a750da48300ab23e6e4b6aa32e8f778
+Author: Galen Charlton <gmc at equinoxinitiative.org>
+Date:   Tue Jul 28 10:43:25 2020 -0400
+
+    LP#1776757: (follow-up) keep input for amount as type "number"
+    
+    Doing this preserves the form validation that ensures that
+    the user cannot submit the form with a non-numeric amount.
+    
+    This does lose forcing the display of default amounts such as
+    "1.50" to two decimal places, but I'm figuring that form validation
+    takes priority pending a longer-term solution such as a custom
+    value validator or using ng-currency.
+    
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+
+1	1	Open-ILS/src/templates/staff/circ/share/t_bill_patron_dialog.tt2
+1	1	Open-ILS/web/js/ui/default/staff/circ/services/billing.js
+
+commit 7d86d434a323b15e0d4d17cbf6cc0ae562346b5e
+Author: Mike Risher <mrisher at catalyte.io>
+Date:   Wed Jan 29 20:20:35 2020 +0000
+
+    lp1776757 Default Billing Price Not Updating
+    
+    Fix the following bug: When billing a patron and one switches from
+    one billing type to a different billing type, the price isn't updating
+    to show the new default price
+    
+    Signed-off-by: Mike Risher <mrisher at catalyte.io>
+    Signed-off-by: Terran McCanna <tmccanna at georgialibraries.org>
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+
+1	1	Open-ILS/src/templates/staff/circ/share/t_bill_patron_dialog.tt2
+5	2	Open-ILS/web/js/ui/default/staff/circ/services/billing.js
+
+commit bb9a04aff2da25a0f7b7a7bf8bd11bbf61a77f87
+Author: Jane Sandberg <sandbej at linnbenton.edu>
+Date:   Wed Oct 3 09:04:54 2018 -0700
+
+    LP1795469: Opac holdings sort now considers CN suffix
+    
+    To test:
+    1) Create a bunch of Call Number suffixes in Administration
+    -> Server Administration -> Call Number Suffixes.
+    2) Go to a bib record, and add a bunch of holdings,
+    all with the same call number label, owning/circ libraries,
+    item numbers, and parts (if using parts) but with different
+    barcodes and CN suffixes.
+    3) Look at the OPAC view of these holdings.  Note that they
+    are in order by barcode, without any consideration for
+    the CN suffix.
+    4) Apply this commit.
+    5) Look at the OPAC view again.  Note that they are now sorted
+    by CN suffix, and then by barcode.
+    
+    Signed-off-by: Jane Sandberg <sandbej at linnbenton.edu>
+    Signed-off-by: Josh Stompro <stompro at stompro.org>
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+
+1	0	Open-ILS/src/perlmods/lib/OpenILS/Application/AppUtils.pm
+
+commit ed894762a29d90ddb0eb5faff2166668355cd9fd
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Mon Jun 8 16:03:14 2020 -0400
+
+    LP1882591 Empty combobox avoids default selection
+    
+    When clearing a combobox value, no combobox options are displayed in the
+    dropdown.  This allows users to clear the value then tab out of the box
+    without the typeahead magic forcing selection of the first entry.
+    
+    The full list can still be displayed by clicking on the combobox.
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+
+7	6	Open-ILS/src/eg2/src/app/share/combobox/combobox.component.ts
+
+commit 8ed4dce43fadcfe0dbbb38f8a34c3259101fb82c
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Mon Jul 27 10:58:52 2020 -0400
+
+    LP1878079 Staffcat Add Holdings action support
+    
+    Teaches the staff catalog Add Holdings button to open the holdings
+    editor using the appropriate parameters.  If the holdings maintenance
+    grid is active, arguments to pass are based on the grid selection.
+    Otherwise it simply open the item editor with a single call number /
+    copy to be created 'here'.
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Jane Sandberg <sandbej at linnbenton.edu>
+
+5	7	Open-ILS/src/eg2/src/app/staff/catalog/record/actions.component.ts
+2	2	Open-ILS/src/eg2/src/app/staff/catalog/record/holdings.component.ts
+3	2	Open-ILS/src/eg2/src/app/staff/catalog/record/record.component.html
+30	0	Open-ILS/src/eg2/src/app/staff/catalog/record/record.component.ts
+
+commit 4a6f6153a5d36b1db9b3f3486c8032406d27b759
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Wed May 13 12:17:19 2020 -0400
+
+    LP1878079 Staffcat 'Edit' items / call numbers support
+    
+    Adds support to the Angular staff catalog to properly handle requests
+    to Edit Items, Edit Call Numbers, and Edit Call Numbers and Items.
+    Prior to his change, these operations would behave more like Add
+    operations than Edit operations.
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Jane Sandberg <sandbej at linnbenton.edu>
+
+6	6	Open-ILS/src/eg2/src/app/staff/catalog/record/holdings.component.html
+42	4	Open-ILS/src/eg2/src/app/staff/catalog/record/holdings.component.ts
+14	12	Open-ILS/src/eg2/src/app/staff/share/holdings/holdings.service.ts
+
+commit 92ef6cc3fb080486ce90e512a9d25e04fe4b965b
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Mon May 11 15:10:37 2020 -0400
+
+    LP1878079 Staffcat Add Call Nums honors selected orgs
+    
+    When adding new call numbers from the Angular staff catalog Holdings
+    View grid, take all selected grid rows into consideration when
+    determining how many call numbers to add and what their owning libs
+    should be.
+    
+    To test:
+    * Navigate to the Holdings View tab of a record detail page in the Angular
+      staff catalog.
+    * Select multiple rows in the grid which are org unit-only rows (i.e.
+      the row does not refer to a specific call number or item).
+    * From the action menu / right client menu, select "Add Callnumbers"
+    * Confirm that a call number entry for each selected org unit is present
+      in the spawned holdings editor.
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Jane Sandberg <sandbej at linnbenton.edu>
+
+15	10	Open-ILS/src/eg2/src/app/staff/catalog/record/holdings.component.ts
+
+commit e0b6a271e23b9b3ebcf4d0e3cda44d615ac33681
+Author: Galen Charlton <gmc at equinoxinitiative.org>
+Date:   Mon Jul 27 10:55:19 2020 -0400
+
+    LP#1802166: stamp schema update
+    
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+
+1	1	Open-ILS/src/sql/Pg/002.schema.config.sql
+1	1	Open-ILS/src/sql/Pg/upgrade/{XXXX.function.actor_usr_delete.sql => 1211.function.actor_usr_delete.sql}
+ rename Open-ILS/src/sql/Pg/upgrade/{XXXX.function.actor_usr_delete.sql => 1211.function.actor_usr_delete.sql} (96%)
+
+commit 2a71751067376f5ab2e1fb758169bdb14a8bc384
+Author: Galen Charlton <gmc at equinoxinitiative.org>
+Date:   Mon Jul 27 10:51:37 2020 -0400
+
+    LP#1802166: (follow-up) document a way to clear names from already-purged patron records
+    
+    For reference, the following SQL will clear the preferred name
+    and name keyword fields from already-purged records:
+    
+    UPDATE actor.usr
+    SET pref_prefix = NULL,
+        pref_first_given_name = NULL,
+        pref_second_given_name = NULL,
+        pref_family_name = NULL,
+        pref_suffix = NULL,
+        name_keywords = NULL
+    WHERE usrname ~ ('^' || id || '-PURGED')
+    AND NOT active
+    AND deleted
+    AND (
+        pref_prefix IS NOT NULL OR
+        pref_first_given_name IS NOT NULL OR
+        pref_second_given_name IS NOT NULL OR
+        pref_family_name IS NOT NULL OR
+        pref_suffix IS NOT NULL OR
+        name_keywords IS NOT NULL
+    );
+    
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+
+25	0	docs/RELEASE_NOTES_NEXT/Circulation/purge_usr_pref_names.adoc
+
+commit dcde76f08fbc64584796dc8cb3c55641bec05ace
+Author: Jason Stephenson <jason at sigio.com>
+Date:   Fri Feb 15 13:33:08 2019 -0500
+
+    Lp 1802166: Purge User Name Keywords
+    
+    Add the name_keywords field to the fields that get set to null in
+    actor.usr_delete.
+    
+    Signed-off-by: Jason Stephenson <jason at sigio.com>
+    Signed-off-by: Rogan Hamby <rogan.hamby at gmail.com>
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+
+1	0	Open-ILS/src/sql/Pg/999.functions.global.sql
+1	0	Open-ILS/src/sql/Pg/upgrade/XXXX.function.actor_usr_delete.sql
+
+commit e1b585db43cff2ae52aa1431838aacb7ca4c306b
+Author: Jason Stephenson <jason at sigio.com>
+Date:   Fri Feb 15 12:21:19 2019 -0500
+
+    Lp 1802166: Purge User Preferred Names
+    
+    When the preferred names feature was added, the new fields were not
+    added to the update in the actor.usr_delete function.  This commit
+    sets those new fields to NULL in that function.
+    
+    Signed-off-by: Jason Stephenson <jason at sigio.com>
+    Signed-off-by: Rogan Hamby <rogan.hamby at gmail.com>
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+
+5	0	Open-ILS/src/sql/Pg/999.functions.global.sql
+124	0	Open-ILS/src/sql/Pg/upgrade/XXXX.function.actor_usr_delete.sql
+5	0	docs/RELEASE_NOTES_NEXT/Circulation/purge_usr_pref_names.adoc
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.function.actor_usr_delete.sql
+ create mode 100644 docs/RELEASE_NOTES_NEXT/Circulation/purge_usr_pref_names.adoc
+
+commit 418306e61c2abbe05c9bdffda3bce6758cac1b1e
+Author: Jason Etheridge <jason at EquinoxInitiative.org>
+Date:   Fri Jun 5 09:00:53 2020 -0400
+
+    LP1819542 Hanging transits can cause checkins to fail
+    
+    So two bits of defensive programming for do_checkin:
+    
+        sub fix_broken_transit_status
+        sub cancel_transit_if_circ_exists
+    
+    I don't know if the first one does anything useful, but the idea is that it'll
+    at least temporarily set the copy status to In Transit for any status checks
+    within the do_checkin method that test for that.  It doesn't actually repair
+    the status permanently (at least in the case of, say, an existing transit being
+    re-used for a ROUTE_ITEM event).  We may want to do that.
+    
+    The second one will abort an associated transit (including retargeting a hold
+    for a hold transit) if both an active transit and an active circulation exist
+    for the item.  This handles the situation I've been using to test the bug:
+    
+        1) transit an item (CONC90000436 in Concerto)
+        2) artificially change its status directly in the database (for example, to
+           Available)
+        3) check it out to a patron (99999376864 in Concerto), noting
+           that the Cancel Transit prompt does not get triggered
+        4) check in the item
+    
+    Signed-off-by: Jason Etheridge <jason at EquinoxInitiative.org>
+    Signed-off-by: Rogan Hamby <rogan.hamby at gmail.com>
+    Signed-off-by: John Amundson <jamundson at cwmars.org>
+    Signed-off-by: Jane Sandberg <sandbej at linnbenton.edu>
+
+42	15	Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Circulate.pm
+
+commit 58a13e6728f95689ea594868c8b5e35d15904611
+Author: Jason Boyer <JBoyer at eoli.info>
+Date:   Wed Jan 8 13:37:01 2020 -0500
+
+    LP1858701: prevent doubles slashes in opac iframe urls
+    
+    The CGI module (used by mkurl()) does not like it
+    if we have two slashes in a URL sort/of/like//this.
+    Things work but the path portion of the URL is doubled
+    each time mkurl is used on it. This branch fixes 2
+    causes in the staff OPAC.
+    
+    Signed-off-by: Jason Boyer <JBoyer at eoli.info>
+    Signed-off-by: Rogan Hamby <rogan.hamby at gmail.com>
+    Signed-off-by: Jane Sandberg <sandbej at linnbenton.edu>
+
+2	2	Open-ILS/web/js/ui/default/staff/cat/catalog/app.js
+
+commit 84c5a4ecf588990a448f88ed47330c88b98580e6
+Author: Jeff Davis <jdavis at sitka.bclibraries.ca>
+Date:   Tue Jun 18 13:48:44 2019 -0700
+
+    LP#1833300: wrap SRU query in parentheses before appending site param
+    
+    Signed-off-by: Jeff Davis <jdavis at sitka.bclibraries.ca>
+    Signed-off-by: Mike Risher <mrisher at catalyte.io>
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+
+1	1	Open-ILS/src/perlmods/lib/OpenILS/WWW/SuperCat.pm
+
+commit 210adb585bfa4ca6715bdbecd0ec659f20079d79
+Author: Jane Sandberg <sandbej at linnbenton.edu>
+Date:   Mon Aug 19 12:43:33 2019 -0700
+
+    LP1739288: report back on invalid barcodes in Item Status screen
+    
+    To test:
+    
+    1) Make a text file with both valid and invalid item barcodes.
+    2) Go to Circulation > Item Status and upload your file.
+    3) Note that the valid barcodes result in rows in the item status
+    screen, and the invalid barcodes are not displayed anywhere.
+    4) Apply this commit.
+    5) Repeat step 2.
+    6) Notice that the invalid barcodes are now reported in a new alert.
+    7) Make a text file with only valid barcodes and upload it.
+    8) Upload it.  Notice that the alert disappears.
+    
+    Signed-off-by: Jane Sandberg <sandbej at linnbenton.edu>
+    Signed-off-by: Josh Stompro <stompro at stompro.org>
+    
+    LP1739288: Add a summary report to the list of bad barcodes.
+    
+    (^^ squash of commit written by Josh Stompro)
+    
+    Signed-off-by: Jane Sandberg <sandbej at linnbenton.edu>
+    Signed-off-by: Josh Stompro <stompro at stompro.org>
+    Signed-off-by: Rogan Hamby <rogan.hamby at gmail.com>
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+
+21	0	Open-ILS/src/templates/staff/cat/item/index.tt2
+11	1	Open-ILS/web/js/ui/default/staff/cat/item/app.js
+
+commit 7827f05da1006492ce2883cfbb83e145e0af9abb
+Author: Galen Charlton <gmc at equinoxinitiative.org>
+Date:   Tue Oct 15 18:32:19 2019 -0400
+
+    LP#1847784: (docs) refer to the badge score generator cron job by name
+    
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+2	2	docs/admin/popularity_badges_web_client.adoc
+
+commit 40a28f954b24d41e91c684dc0bcf12f6fa20d33d
+Author: Galen Charlton <gmc at equinoxinitiative.org>
+Date:   Tue Oct 15 18:29:40 2019 -0400
+
+    LP#1847784: install badge_score_generator.pl by default
+    
+    To test
+    -------
+    [1] Perform an Evergreen installation/upgrade.
+    [2] Verify that badge_score_generator.pl is present
+        in /openils/bin (or an alternative installation
+        location specified during the ./configure step).
+    
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+1	0	Open-ILS/src/Makefile.am
+
+commit c0ff29694e69162742e2807fe303aff53b1bc4c5
+Author: Jane Sandberg <sandbej at linnbenton.edu>
+Date:   Sun Mar 15 08:49:48 2020 -0700
+
+    LP1867524: Add a help popover to the End field in the Closed Dates Editor
+    
+    To test:
+    1) Go to Administration > Local Administration > Closed Dates Editor.
+    2) Click Add Closing.
+    3) Under closing type, choose Multiple Day.
+    4) Note that the End field has no guidance for the user.
+    5) Apply this commit.
+    6) Repeat steps 1-3.
+    7) Notice that the End field has some clarifying guidance for the user.
+    
+    Signed-off-by: Jane Sandberg <sandbej at linnbenton.edu>
+    Signed-off-by: Mike Risher <mrisher at catalyte.io>
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+
+1	0	Open-ILS/src/templates/staff/admin/local/actor/edit_closed_dates.tt2
+
+commit 9af1b3b0446c20aaa34bca65d04ebc6d1a70ed6b
+Author: Chris Sharp <csharp at georgialibraries.org>
+Date:   Wed Nov 13 10:28:53 2019 -0500
+
+    LP#1852443 - Re-label duplicate-named "all circulations" source
+    
+    Signed-off-by: Chris Sharp <csharp at georgialibraries.org>
+    Signed-off-by: Rogan Hamby <rogan.hamby at gmail.com>
+    Signed-off-by: Jane Sandberg <sandbej at linnbenton.edu>
+
+1	1	Open-ILS/examples/fm_IDL.xml
+13	0	docs/RELEASE_NOTES_NEXT/Reports/change_aacs_label.adoc
+ create mode 100644 docs/RELEASE_NOTES_NEXT/Reports/change_aacs_label.adoc
+
+commit de58d01d5104b590e4eeb1d1ef8860e232afcb69
+Author: Jason Boyer <JBoyer at equinoxinitiative.org>
+Date:   Fri Jul 24 09:53:16 2020 -0400
+
+    LP1747542: Stamp upgrade script
+    
+    Signed-off-by: Jason Boyer <JBoyer at equinoxinitiative.org>
+
+1	1	Open-ILS/src/sql/Pg/002.schema.config.sql
+1	1	Open-ILS/src/sql/Pg/upgrade/{XXXX.lp1747542_action_item_user_circ_test.sql => 1209.lp1747542_action_item_user_circ_test.sql}
+ rename Open-ILS/src/sql/Pg/upgrade/{XXXX.lp1747542_action_item_user_circ_test.sql => 1209.lp1747542_action_item_user_circ_test.sql} (99%)
+
+commit 466c103cce7af38671f5bee6bc86d42ce3a4a82b
+Author: Chris Sharp <csharp at georgialibraries.org>
+Date:   Mon Feb 5 18:58:43 2018 -0500
+
+    LP#1747542 - Repair item/user circulation test
+    
+    The action.item_user_circ_test function was previously
+    ignoring lost or longoverdue and paid-for circulations.
+    Adding a check for whether the circulation is closed
+    fixes this.
+    
+    Signed-off-by: Chris Sharp <csharp at georgialibraries.org>
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+    Signed-off-by: Jason Boyer <JBoyer at equinoxinitiative.org>
+
+1	0	Open-ILS/src/sql/Pg/100.circ_matrix.sql
+237	0	Open-ILS/src/sql/Pg/upgrade/XXXX.lp1747542_action_item_user_circ_test.sql
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.lp1747542_action_item_user_circ_test.sql
+
+commit c88dce86daa5fa72a9e73afa30d3441d62ad1163
+Author: Galen Charlton <gmc at equinoxinitiative.org>
+Date:   Tue Jul 7 16:24:49 2020 -0400
+
+    LP#1886713: fix issue where AngularJS hotkeys fail to initialize
+    
+    Fixes a race condition where the navbar service can look for
+    eg-accesskey attributes before all of the elements that have
+    them meet the conditions to show up in the DOM.
+    
+    To test
+    -------
+    [1] From an AngularJS part of the staff interface, note that
+        hitting F8 sometimes does not perform the retrieve
+        last patron action, nor does F8 show up on the list of
+        hot keys when you hit "?" outside of an input.
+    [2] Apply the patch and repeat step 1. This time, the F8
+        hotkey should consistently work.
+    
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+    
+    Signed-off-by: Rogan Hamby <rogan.hamby at gmail.com>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+7	4	Open-ILS/web/js/ui/default/staff/services/navbar.js
+
+commit 5d6e9eddbd6f1ec4e9c9c0c4c631d059202a46b7
+Author: Jane Sandberg <sandbej at linnbenton.edu>
+Date:   Thu Jun 6 18:15:56 2019 -0700
+
+    LP1474874: Consistent page headers in the Angular client
+    
+    This commit ensures that each screen in the Angular staff client uses
+    the <eg-staff-banner> component to better orient its users.
+    
+    This commit also gives the eg-staff-banner some <h1> semantics, per
+    WebAIM's guidance: "Pages should be structured in a hierarchical manner,
+    generally with one 1st degree headings (<h1>) being the most important
+    (usually page titles or main content heading)" -- https://webaim.org/techniques/semanticstructure/
+    
+    To test:
+    
+    1) Go to [your-server]/eg2/en-US/staff/catalog/search
+    2) Confirm that there is a header that gives the page title at the top
+    of the page.
+    3) Go to an Angular Vandelay page.
+    4) Confirm that you see a similar header as in step 2.
+    5) Go to an Angular Administration page.
+    6) repeat step 4.
+    
+    Signed-off-by: Jane Sandberg <sandbej at linnbenton.edu>
+    Signed-off-by: Jason Boyer <JBoyer at equinoxinitiative.org>
+
+2	1	Open-ILS/src/eg2/src/app/staff/cat/vandelay/vandelay.component.html
+2	0	Open-ILS/src/eg2/src/app/staff/catalog/browse.component.html
+2	0	Open-ILS/src/eg2/src/app/staff/catalog/catalog.component.html
+2	0	Open-ILS/src/eg2/src/app/staff/catalog/cnbrowse.component.html
+1	1	Open-ILS/src/eg2/src/app/staff/share/staff-banner.component.ts
+
+commit b221b4935e69320b6accbe8fb41a6abcd1004a61
+Author: Jason Boyer <JBoyer at equinoxinitiative.org>
+Date:   Fri Jul 24 08:41:49 2020 -0400
+
+    LP1870605: Stamp upgrade script
+    
+    Signed-off-by: Jason Boyer <JBoyer at equinoxinitiative.org>
+
+1	1	Open-ILS/src/sql/Pg/002.schema.config.sql
+1	1	Open-ILS/src/sql/Pg/upgrade/{xxxx.schema.emergency_closing_fines_fix.sql => 1208.schema.emergency_closing_fines_fix.sql}
+ rename Open-ILS/src/sql/Pg/upgrade/{xxxx.schema.emergency_closing_fines_fix.sql => 1208.schema.emergency_closing_fines_fix.sql} (99%)
+
+commit 873cd4848a7f2ea33ec00661020294b6838cffff
+Author: Steven Callender <stevecallender at esilibrary.com>
+Date:   Fri Apr 3 15:20:39 2020 -0400
+
+    LP1870605: Fix typo in emergency closing functions
+    
+    The emergency closing handler was ignoring any
+    circulations that already had fines due to a typo
+    in the stage 2 circ and reservation functions.
+    
+    Signed-off-by: Steven Callender <stevecallender at esilibrary.com>
+    Signed-off-by: Rogan Hamby <rogan.hamby at gmail.com>
+    Signed-off-by: Jason Boyer <JBoyer at equinoxinitiative.org>
+
+2	2	Open-ILS/src/sql/Pg/096.schema.emergency_closing.sql
+191	0	Open-ILS/src/sql/Pg/upgrade/xxxx.schema.emergency_closing_fines_fix.sql
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/xxxx.schema.emergency_closing_fines_fix.sql
+
+commit bf398f0fac0bf694d8b22ac47c85c0e00bffc6b1
+Author: Jane Sandberg <sandbej at linnbenton.edu>
+Date:   Thu Jul 23 06:37:07 2020 -0700
+
+    LP#1705302: Stamping Upgrade Script
+    
+    Signed-off-by: Jane Sandberg <sandbej at linnbenton.edu>
+
+1	1	Open-ILS/src/sql/Pg/002.schema.config.sql
+1	1	Open-ILS/src/sql/Pg/upgrade/{XXXX.data.lp1705302-update-receipt-template-setting-descriptions.sql => 1207.data.lp1705302-update-receipt-template-setting-descriptions.sql}
+ rename Open-ILS/src/sql/Pg/upgrade/{XXXX.data.lp1705302-update-receipt-template-setting-descriptions.sql => 1207.data.lp1705302-update-receipt-template-setting-descriptions.sql} (96%)
+
+commit 84818d35249d3e8e3d5d0f3346aabc59d3f0313d
+Author: Mike Risher <mrisher at catalyte.io>
+Date:   Tue Jun 11 09:57:58 2019 -0700
+
+    lp1705302 update description of receipt template
+    
+    Updated editing instructions to give correct syntax and changing name
+    from receipt templates to Print Templates
+    
+    Signed-off-by: Mike Risher <mrisher at catalyte.io>
+    
+     Changes to be committed:
+            modified:   src/sql/Pg/950.data.seed-values.sql
+            new file:   src/sql/Pg/upgrade/XXXX.data.lp1705302-update-receipt-template-setting-descriptions.sql
+    
+    Signed-off-by: Terran McCanna <tmccanna at georgialibraries.org>
+    Signed-off-by: Jane Sandberg <sandbej at linnbenton.edu>
+
+5	5	Open-ILS/src/sql/Pg/950.data.seed-values.sql
+36	0	Open-ILS/src/sql/Pg/upgrade/XXXX.data.lp1705302-update-receipt-template-setting-descriptions.sql
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.data.lp1705302-update-receipt-template-setting-descriptions.sql
+
+commit 4e97cedc212bff316606730c7248c1a3febc0572
+Author: Jason Stephenson <jason at sigio.com>
+Date:   Wed Jan 29 12:33:30 2020 -0500
+
+    LP#1775940: Archived Penalties/Messages does not Respect Date Range
+    
+    This patch implements a.bellenir's suggestion of switching from
+    setQuery to watchQury in the archiveGrid of the web client circulation
+    patron app.  It does now appear to respect the date range entered by
+    the user.
+    
+    Signed-off-by: Jason Stephenson <jason at sigio.com>
+    Signed-off-by: John Amundson <jamundson at cwmars.org>
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+
+1	1	Open-ILS/web/js/ui/default/staff/circ/patron/app.js
+
+commit 73d4c1dbf9bc1535c0b0379d104b99e0f93584b8
+Author: Josh Stompro <stompro at stompro.org>
+Date:   Mon Feb 3 13:42:08 2020 -0600
+
+    LP#1754387 - User Buckets - Pending Users Enhancement
+    
+    It wasn't possible to load more than 100 users from a barcode file import in
+    user buckets because of two issues.  The pager was limited to only showing 100
+    barcodes at a time, and moving any users from the pending list would clear the
+    pending list.
+    
+    Here is a branch that makes the following changes.
+    
+    1. Sets the default number of items to 100 and allows choosing the
+      500,1000,10000 options for the pager.
+    
+    2. When moving users from pending to a bucket, only removes the moved users
+      from the pending list.  This allows the user to move a larger number of
+      users to a bucket from pending, a batch at a time.
+    
+    Testing Plan:
+    
+    Before Changes:
+    
+    1. Load a file with 110 patron barcodes in the User Buckets, Pending Users interface.
+    2. See that the pager only allows a max of 100 for the page size.
+    3. Move one user to a bucket and note that the pending list gets cleared.
+    
+    After Changes:
+    
+    1. Load a file with 110 patron barcodes.
+    2. See that the pager allows for picking larger page sizes.
+    3. Move one user to a bucket, and note that the pending list removes just that one user.
+    
+    Another way to see the changes is to pick a pager size of 25, and select all the
+    entries.  Then move them to a bucket and see that you can continue to move
+    batches of 25 until you have moved all the pending users.
+    
+    Signed-off-by: Josh Stompro <stompro at stompro.org>
+    Signed-off-by: Gina Monti <gmonti at biblio.org>
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+
+2	1	Open-ILS/src/templates/staff/circ/patron/bucket/t_pending.tt2
+18	2	Open-ILS/web/js/ui/default/staff/circ/patron/bucket/app.js
+
+commit 94bf31cd20e3fb1a6d596702fe479d8cea342318
+Author: Jane Sandberg <sandbej at linnbenton.edu>
+Date:   Sun Mar 8 07:58:09 2020 -0700
+
+    LP1845241: Use the correct API call to Undelete a bib record
+    
+    To test:
+    
+    1) Open up a delete-ready bibliographic record in the Web client
+    (no attached holdings, no located URI, no open orders attached, etc.)
+    2) Delete it.
+    3) Undelete it.  Note that the "Undelete" button briefly turns into a
+    "Delete" button before changing back to an "Undelete" button.  Note that
+    the bib record does not show up in search results within the Web client.
+    4) Apply this commit.
+    5) Now try undeleting the record again.  Notice that the "Delete" button
+    does not revert to an "Undelete" button.  Note also that the record is
+    once again showing up in search results (although you may have to be a
+    bit creative using search terms, due to search results caching).
+    
+    Signed-off-by: Jane Sandberg <sandbej at linnbenton.edu>
+    Signed-off-by: blake <blake at mobiusconsortium.org>
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+
+2	0	Open-ILS/src/templates/staff/cat/share/marcedit_strings.tt2
+18	2	Open-ILS/web/js/ui/default/staff/cat/services/marcedit.js
+
+commit 41214e31852477e63106f83fb0271fb3ea4302d7
+Author: Dan Scott <dan at coffeecode.net>
+Date:   Tue Jan 7 15:05:06 2020 -0500
+
+    LP1805860: Display long patron names without obscuring input fields
+    
+    Long patron names can obscure the input fields and menu items on patron
+    action screens. The only workaround is to reduce the font size using the
+    browser controls until the input fields and menu items are visible.
+    
+    While the fixed position saves space at the top of the screen for
+    typical cases, it can be hard for staff to remember the font-reduction
+    workaround when they hit a long patron name.
+    
+    Removing the fixed position CSS also better supports the display of
+    regular patron names on browsers that are not wide enough to display the
+    top menu (Search/Circulation/Cataloging/.../Workstation name/Locale) all
+    on a single line.
+    
+    Signed-off-by: Dan Scott <dan at coffeecode.net>
+    Signed-off-by: Terran McCanna <tmccanna at georgialibraries.org>
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+
+0	6	Open-ILS/src/templates/staff/css/circ.css.tt2
+
+commit d2534cdc70601b29269b2894ea0a0deec9203d96
+Author: Galen Charlton <gmc at equinoxinitiative.org>
+Date:   Mon Jun 22 11:40:08 2020 -0400
+
+    LP#1844365: fix initialization of stat cats in patron registration form
+    
+    If you edit a patron and it has (or gets added) a stat cat entry,
+    then from the registration form click on its inline patron search
+    link, fetch a patron that has no stat cats, then edit it, the
+    first patron's stat cats can show up in the registration form.
+    If the second patron does have stat cats, but not values set
+    for all of them, then the first patron's stat cat entries can
+    fill in cases where no entry was previously set.
+    
+    This patch fixes patronRegSvc's initialization when loading
+    an existing patron record to avoid this.
+    
+    To test
+    -------
+    [1] Edit a patron and ensure that it has at least one
+        statistical category set.
+    [2] From the patron search link in the patron app tab
+        bar, NOT the Search | Patron menu item, search for
+        and retrieve a patron that has no stat cats assigned.
+    [3] Edit the patron. Observe that the first patron's
+        stat cat entry displays in the second patron's
+        registration form.
+    [4] Apply the patch and repeats steps 1-3. This time,
+        the previous patron's stat cats should not infect
+        the second patron's registration form.
+    
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+    Signed-off-by: Mike Risher <mrisher at catalyte.io>
+
+1	0	Open-ILS/web/js/ui/default/staff/circ/patron/regctl.js
+
+commit 5418f1b851eb79c323dfaf72f321dbedf49ff3c6
+Author: Kyle Huckins <khuckins at catalyte.io>
+Date:   Thu May 23 21:47:02 2019 +0000
+
+    lp1775286 Color Indication of Overdue on Items Out
+    
+    - Overdue items are highlighted in red in the Items Out UI.
+    - Ensure overdue-row and lost-row classes handle visited links
+    
+    Signed-off-by: Kyle Huckins <khuckins at catalyte.io>
+    Signed-off-by: Jennifer Pringle <jennifer.pringle at bc.libraries.coop>
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+
+3	2	Open-ILS/src/templates/staff/circ/patron/t_items_out.tt2
+1	1	Open-ILS/src/templates/staff/css/style.css.tt2
+9	0	Open-ILS/web/js/ui/default/staff/circ/patron/items_out.js
+
+commit de8e1a075264a629191cd33c23d9f1c8f79f9dfc
+Author: Jeff Davis <jdavis at sitka.bclibraries.ca>
+Date:   Tue May 5 10:34:36 2020 -0700
+
+    LP#1840294: use dedicated UI for match set admin, rather than auto-generated admin pages
+    
+    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/eg2/src/app/staff/admin/server/admin-server-splash.component.html
+
+commit 5aa2f703e5a6c8e0c292bea55c757d9e942530e9
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Fri Apr 24 16:09:57 2020 -0400
+
+    LP1874897 Staff catalog honors classification scheme
+    
+    Use the org unit setting "cat.default_classification_scheme" to
+    determine which scheme to use when extracting the bib-level call number
+    for display in the Angular staff catalog.
+    
+    This also modifies the API to look the value up so future calls to the
+    API will Just Work (and it's one less bit of data the browser has to
+    retrieve).
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Jane Sandberg <sandbej at linnbenton.edu>
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+
+1	4	Open-ILS/src/eg2/src/app/share/catalog/bib-record.service.ts
+13	3	Open-ILS/src/perlmods/lib/OpenILS/Application/Cat.pm
+
+commit fe27ffee96efcffb0ac9f8c26599f1492e1c5c3d
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Fri Jul 3 10:05:33 2020 -0400
+
+    LP1886118 Staff catalog search format repair
+    
+    Fixes an error in the staff catalog search params builder with regard to
+    encoding the search format.  The 'format' param should be 'search_format'.
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Jane Sandberg <sandbej at linnbenton.edu>
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+
+1	1	Open-ILS/src/eg2/src/app/share/catalog/search-context.ts
+
+commit 1f2e3549a2d744aa57ad248566eb5e1bb14070a7
+Author: Jason Stephenson <jason at sigio.com>
+Date:   Fri Jul 17 07:09:29 2020 -0400
+
+    LP#1886852: Stamping Upgrade Script
+    
+    Signed-off-by: Jason Stephenson <jason at sigio.com>
+
+1	1	Open-ILS/src/sql/Pg/002.schema.config.sql
+1	1	Open-ILS/src/sql/Pg/upgrade/{XXXX.function.distinct-regen_copy_map.sql => 1206.function.distinct-regen_copy_map.sql}
+ rename Open-ILS/src/sql/Pg/upgrade/{XXXX.function.distinct-regen_copy_map.sql => 1206.function.distinct-regen_copy_map.sql} (82%)
+
+commit a78747a609f3db4b557bb2305cb85d9c0adc9b79
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Wed Jul 8 13:18:52 2020 -0400
+
+    LP#1886852: Protect against dupes in hold-copy map function
+    
+    If the DB function that regenerates the hold-copy maps for a hold
+    receives duplicate copies in its second parameter, it blows up.  This
+    commit prevents that by making the list unique at use time.
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Jason Stephenson <jason at sigio.com>
+
+1	1	Open-ILS/src/sql/Pg/090.schema.action.sql
+12	0	Open-ILS/src/sql/Pg/upgrade/XXXX.function.distinct-regen_copy_map.sql
+ create mode 100755 Open-ILS/src/sql/Pg/upgrade/XXXX.function.distinct-regen_copy_map.sql
+
+commit f043d0180c10d7fffc8c65e87d2527c582f7b5ea
+Author: Jane Sandberg <sandbej at linnbenton.edu>
+Date:   Sun Jul 12 08:10:26 2020 -0700
+
+    LP1848573: follow-up: minor changes to IDL labels for the ccs class
+    
+    Signed-off-by: Jane Sandberg <sandbej at linnbenton.edu>
+
+2	2	Open-ILS/examples/fm_IDL.xml
+
+commit bdc7d1bba8484ec10657b5638e8e47f448453245
+Author: Shula Link <slink at gchrl.org>
+Date:   Mon Mar 16 10:30:27 2020 -0400
+
+    LP1848573: Added nice labels to Open-ILS\examples\fm_IDL.xml
+    for copy status
+    
+    Signed-off-by: Shula Link <slink at gchrl.org>
+    Signed-off-by: Rogan Hamby <rogan.hamby at gmail.com>
+    Signed-off-by: Mike Risher <mrisher at catalyte.io>
+    Signed-off-by: Jane Sandberg <sandbej at linnbenton.edu>
+
+7	7	Open-ILS/examples/fm_IDL.xml
+
+commit fd0742990053634894b5d10254b812543a5f59fd
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Wed Sep 12 09:14:58 2018 -0400
+
+    LP#1712854: Disable all server-side sorting, but provide a stub for later, if we move that way
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: John Yorio <jyorio at equinoxinitiative.org>
+    Signed-off-by: Jane Sandberg <sandbej at linnbenton.edu>
+
+1	1	Open-ILS/src/templates/staff/circ/holds/t_shelf_list.tt2
+3	1	Open-ILS/web/js/ui/default/staff/cat/catalog/app.js
+34	1	Open-ILS/web/js/ui/default/staff/circ/holds/app.js
+
+commit 10dee660124e542ea6fb1e736958b241cb2dda6c
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Tue Sep 11 17:36:30 2018 -0400
+
+    LP#1712854: Add User Alias and User Alias or Display Name columns to shelf list
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: John Yorio <jyorio at equinoxinitiative.org>
+    Signed-off-by: Jane Sandberg <sandbej at linnbenton.edu>
+
+1	0	Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Publisher/action.pm
+2	0	Open-ILS/src/templates/staff/circ/holds/t_shelf_list.tt2
+
+commit f594911fc97dc53035f871e68507fa6e646320ae
+Author: Jason Boyer <JBoyer at eoli.info>
+Date:   Fri Feb 21 16:08:36 2020 -0500
+
+    LP1864056: Don't compare multiple new Date()s
+    
+    This branch addresses a race condition when
+    checking out or renewing items.
+    (The use of minDate in items_out was implicitly
+    immune to this issue, but that is made explicit
+    with this patch.)
+    
+    To test
+    -------
+    [1] The race condition would be difficult to reliably
+        reproduce directly, although a tool like
+        https://github.com/mattzeunert/javascript-clock-speedup
+        might help simulate the problem, so to test, verify
+        that the following actions do not break:
+    
+        * checking out a loan, both with and without
+          setting a specific due date
+        * renewing a loan with a specific due date
+          from the patron items out tab
+        * renewing a loan from Circulation -> Renew Items,
+          both with and without setting a specific due date.
+    
+    Signed-off-by: Jason Boyer <JBoyer at eoli.info>
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+    Signed-off-by: Jane Sandberg <sandbej at linnbenton.edu>
+
+3	2	Open-ILS/web/js/ui/default/staff/circ/patron/checkout.js
+3	2	Open-ILS/web/js/ui/default/staff/circ/patron/items_out.js
+3	3	Open-ILS/web/js/ui/default/staff/circ/renew/app.js
+
+commit e6160c20dfa79b82eb392e857dbb8132f8c355b1
+Author: Mike Risher <mrisher at catalyte.io>
+Date:   Thu Feb 20 23:07:30 2020 +0000
+
+    lp1735828 Copy Bucket multi show status
+    
+    Revise the web client so that when one is in the copy bucket one can
+    select multiple entries and do "show status" on all of them.
+    
+    Signed-off-by: Mike Risher <mrisher at catalyte.io>
+    Signed-off-by: Tiffany Little <tlittle at georgialibraries.org>
+    Signed-off-by: Jane Sandberg <sandbej at linnbenton.edu>
+
+2	0	Open-ILS/src/templates/staff/cat/bucket/copy/t_view.tt2
+9	0	Open-ILS/web/js/ui/default/staff/cat/bucket/copy/app.js
+
+commit 473ea12f85e76e6a4de40afde3101d55b31b7631
+Author: Galen Charlton <gmc at equinoxinitiative.org>
+Date:   Thu Jun 25 10:29:57 2020 -0400
+
+    LP#1884787: check in package-lock.json updates
+    
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+
+2069	2114	Open-ILS/src/eg2/package-lock.json
+
+commit b6ca1003e403f16283d02e0d3ba6ea0294e93853
+Author: Galen Charlton <gmc at equinoxinitiative.org>
+Date:   Thu Jun 25 10:28:09 2020 -0400
+
+    LP#1884787: pin moment-timezone to 0.5.27
+    
+    This updates moment-timezone to pull in an updated
+    tzdb but pins it to avoid future build errors if
+    npm update is run. Unlike the version of this patch
+    series for rel_3_5+, no attempt is made to update
+    moment-timezone to the version that includes built-in
+    TypeScript types.
+    
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+
+1	1	Open-ILS/src/eg2/package.json
+
+commit b97ad773a18f008f8697b1e25a4a540f195424a2
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Fri Jun 12 11:20:29 2020 -0400
+
+    LP1883267 Minor release note tweaks
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+5	5	docs/RELEASE_NOTES_NEXT/Architecture/do-not-cache-angular-root.adoc
+
+commit e3fc6af20ee13f34c534789f2b19e2cd1553497c
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Fri Jun 12 10:55:29 2020 -0400
+
+    LP#1883267: Adding release notes
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+36	0	docs/RELEASE_NOTES_NEXT/Architecture/do-not-cache-angular-root.adoc
+ create mode 100644 docs/RELEASE_NOTES_NEXT/Architecture/do-not-cache-angular-root.adoc
+
+commit d893d1c7bfd98f38117e554aa2c59a4e01687f8b
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Fri Jun 12 10:36:48 2020 -0400
+
+    LP#1883267: Never cache Angular index.html
+    
+    If we cache index.html then clients will be delayed seeing updates in
+    normal circumstances.
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+14	0	Open-ILS/examples/apache_24/eg_vhost.conf.in
+
+commit ae3c1fa9b18f470b8831a3a851db5798bf731bdb
+Author: Dan Wells <dbw2 at calvin.edu>
+Date:   Thu Jun 11 17:03:34 2020 -0400
+
+    Forward-port 3.4.3 upgrade script
+    
+    Signed-off-by: Dan Wells <dbw2 at calvin.edu>
+
+171	0	Open-ILS/src/sql/Pg/version-upgrade/3.4.2-3.4.3-upgrade-db.sql
+ create mode 100644 Open-ILS/src/sql/Pg/version-upgrade/3.4.2-3.4.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 d750216454..ff1a5fae10 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-4-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 d24eda74da..07864d58bc 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 ('1211', :eg_version); -- Dyrcona/rhamby/gmcharlt
+INSERT INTO config.upgrade_log (version, applied_to) VALUES ('3.4.4', :eg_version);
 
 CREATE TABLE config.bib_source (
 	id		SERIAL	PRIMARY KEY,
diff --git a/Open-ILS/src/sql/Pg/version-upgrade/3.4.3-3.4.4-upgrade-db.sql b/Open-ILS/src/sql/Pg/version-upgrade/3.4.3-3.4.4-upgrade-db.sql
new file mode 100644
index 0000000000..070d779d51
--- /dev/null
+++ b/Open-ILS/src/sql/Pg/version-upgrade/3.4.3-3.4.4-upgrade-db.sql
@@ -0,0 +1,600 @@
+--Upgrade Script for 3.4.3 to 3.4.4
+\set eg_version '''3.4.4'''
+BEGIN;
+INSERT INTO config.upgrade_log (version, applied_to) VALUES ('3.4.4', :eg_version);
+
+SELECT evergreen.upgrade_deps_block_check('1206', :eg_version);
+
+CREATE OR REPLACE FUNCTION
+    action.hold_request_regen_copy_maps(
+        hold_id INTEGER, copy_ids INTEGER[]) RETURNS VOID AS $$
+    DELETE FROM action.hold_copy_map WHERE hold = $1;
+    INSERT INTO action.hold_copy_map (hold, target_copy) SELECT DISTINCT $1, UNNEST($2);
+$$ LANGUAGE SQL;
+
+
+SELECT evergreen.upgrade_deps_block_check('1207', :eg_version);
+
+UPDATE config.org_unit_setting_type 
+        SET description = oils_i18n_gettext(
+            'circ.staff_client.receipt.alert_text',
+            'Text to be inserted into Print Templates in place of {{includes.alert_text}}',
+            'cwst', 'label') 
+        WHERE name = 'circ.staff_client.receipt.alert_text';
+UPDATE config.org_unit_setting_type 
+        SET description = oils_i18n_gettext(
+            'circ.staff_client.receipt.event_text',
+            'Text to be inserted into Print Templates in place of {{includes.event_text}}',
+            'cwst', 'label') 
+        WHERE name = 'circ.staff_client.receipt.event_text';
+UPDATE config.org_unit_setting_type 
+        SET description = oils_i18n_gettext(
+            'circ.staff_client.receipt.footer_text',
+            'Text to be inserted into Print Templates in place of {{includes.footer_text}}',
+            'cwst', 'label') 
+        WHERE name = 'circ.staff_client.receipt.footer_text';
+UPDATE config.org_unit_setting_type 
+        SET description = oils_i18n_gettext(
+            'circ.staff_client.receipt.header_text',
+            'Text to be inserted into Print Templates in place of {{includes.header_text}}',
+            'cwst', 'label') 
+        WHERE name = 'circ.staff_client.receipt.header_text';
+UPDATE config.org_unit_setting_type 
+        SET description = oils_i18n_gettext(
+            'circ.staff_client.receipt.notice_text',
+            'Text to be inserted into Print Templates in place of {{includes.notice_text}}',
+            'cwst', 'label') 
+        WHERE name = 'circ.staff_client.receipt.notice_text';
+
+
+SELECT evergreen.upgrade_deps_block_check('1208', :eg_version);
+
+CREATE OR REPLACE FUNCTION action.emergency_closing_stage_2_circ ( circ_closing_entry INT )
+    RETURNS BOOL AS $$
+DECLARE
+    circ            action.circulation%ROWTYPE;
+    e_closing       action.emergency_closing%ROWTYPE;
+    e_c_circ        action.emergency_closing_circulation%ROWTYPE;
+    closing         actor.org_unit_closed%ROWTYPE;
+    adjacent        actor.org_unit_closed%ROWTYPE;
+    bill            money.billing%ROWTYPE;
+    last_bill       money.billing%ROWTYPE;
+    day_number      INT;
+    hoo_close       TIME WITHOUT TIME ZONE;
+    plus_days       INT;
+    avoid_negative  BOOL;
+    extend_grace    BOOL;
+    new_due_date    TEXT;
+BEGIN
+    -- Gather objects involved
+    SELECT  * INTO e_c_circ
+      FROM  action.emergency_closing_circulation
+      WHERE id = circ_closing_entry;
+
+    IF e_c_circ.process_time IS NOT NULL THEN
+        -- Already processed ... moving on
+        RETURN FALSE;
+    END IF;
+
+    SELECT  * INTO e_closing
+      FROM  action.emergency_closing
+      WHERE id = e_c_circ.emergency_closing;
+
+    IF e_closing.process_start_time IS NULL THEN
+        -- Huh... that's odd. And wrong.
+        RETURN FALSE;
+    END IF;
+
+    SELECT  * INTO closing
+      FROM  actor.org_unit_closed
+      WHERE emergency_closing = e_closing.id;
+
+    SELECT  * INTO circ
+      FROM  action.circulation
+      WHERE id = e_c_circ.circulation;
+
+    -- Record the processing
+    UPDATE  action.emergency_closing_circulation
+      SET   original_due_date = circ.due_date,
+            process_time = NOW()
+      WHERE id = circ_closing_entry;
+
+    UPDATE  action.emergency_closing
+      SET   last_update_time = NOW()
+      WHERE id = e_closing.id;
+
+    SELECT value::BOOL INTO avoid_negative FROM actor.org_unit_ancestor_setting('bill.prohibit_negative_balance_on_overdues', circ.circ_lib);
+    SELECT value::BOOL INTO extend_grace FROM actor.org_unit_ancestor_setting('circ.grace.extend', circ.circ_lib);
+
+    new_due_date := evergreen.find_next_open_time( closing.org_unit, circ.due_date, EXTRACT(EPOCH FROM circ.duration)::INT % 86400 > 0 )::TEXT;
+    UPDATE action.circulation SET due_date = new_due_date::TIMESTAMPTZ WHERE id = circ.id;
+
+    -- Now, see if we need to get rid of some fines
+    SELECT  * INTO last_bill
+      FROM  money.billing b
+      WHERE b.xact = circ.id
+            AND NOT b.voided
+            AND b.btype = 1
+      ORDER BY billing_ts DESC
+      LIMIT 1;
+
+    FOR bill IN
+        SELECT  *
+          FROM  money.billing b
+          WHERE b.xact = circ.id
+                AND b.btype = 1
+                AND NOT b.voided
+                AND (
+                    b.billing_ts BETWEEN closing.close_start AND new_due_date::TIMESTAMPTZ
+                    OR (extend_grace AND last_bill.billing_ts <= new_due_date::TIMESTAMPTZ + circ.grace_period)
+                )
+                AND NOT EXISTS (SELECT 1 FROM money.account_adjustment a WHERE a.billing = b.id)
+          ORDER BY billing_ts
+    LOOP
+        IF avoid_negative THEN
+            PERFORM FROM money.materialized_billable_xact_summary WHERE id = circ.id AND balance_owed < bill.amount;
+            EXIT WHEN FOUND; -- We can't go negative, and voiding this bill would do that...
+        END IF;
+
+        UPDATE  money.billing
+          SET   voided = TRUE,
+                void_time = NOW(),
+                note = COALESCE(note,'') || ' :: Voided by emergency closing handler'
+          WHERE id = bill.id;
+    END LOOP;
+    
+    RETURN TRUE;
+END;
+$$ LANGUAGE PLPGSQL;
+
+CREATE OR REPLACE FUNCTION action.emergency_closing_stage_2_reservation ( res_closing_entry INT )
+    RETURNS BOOL AS $$
+DECLARE
+    res             booking.reservation%ROWTYPE;
+    e_closing       action.emergency_closing%ROWTYPE;
+    e_c_res         action.emergency_closing_reservation%ROWTYPE;
+    closing         actor.org_unit_closed%ROWTYPE;
+    adjacent        actor.org_unit_closed%ROWTYPE;
+    bill            money.billing%ROWTYPE;
+    day_number      INT;
+    hoo_close       TIME WITHOUT TIME ZONE;
+    plus_days       INT;
+    avoid_negative  BOOL;
+    new_due_date    TEXT;
+BEGIN
+    -- Gather objects involved
+    SELECT  * INTO e_c_res
+      FROM  action.emergency_closing_reservation
+      WHERE id = res_closing_entry;
+
+    IF e_c_res.process_time IS NOT NULL THEN
+        -- Already processed ... moving on
+        RETURN FALSE;
+    END IF;
+
+    SELECT  * INTO e_closing
+      FROM  action.emergency_closing
+      WHERE id = e_c_res.emergency_closing;
+
+    IF e_closing.process_start_time IS NULL THEN
+        -- Huh... that's odd. And wrong.
+        RETURN FALSE;
+    END IF;
+
+    SELECT  * INTO closing
+      FROM  actor.org_unit_closed
+      WHERE emergency_closing = e_closing.id;
+
+    SELECT  * INTO res
+      FROM  booking.reservation
+      WHERE id = e_c_res.reservation;
+
+    IF res.pickup_lib IS NULL THEN -- Need to be far enough along to have a pickup lib
+        RETURN FALSE;
+    END IF;
+
+    -- Record the processing
+    UPDATE  action.emergency_closing_reservation
+      SET   original_end_time = res.end_time,
+            process_time = NOW()
+      WHERE id = res_closing_entry;
+
+    UPDATE  action.emergency_closing
+      SET   last_update_time = NOW()
+      WHERE id = e_closing.id;
+
+    SELECT value::BOOL INTO avoid_negative FROM actor.org_unit_ancestor_setting('bill.prohibit_negative_balance_on_overdues', res.pickup_lib);
+
+    new_due_date := evergreen.find_next_open_time( closing.org_unit, res.end_time, EXTRACT(EPOCH FROM res.booking_interval)::INT % 86400 > 0 )::TEXT;
+    UPDATE booking.reservation SET end_time = new_due_date::TIMESTAMPTZ WHERE id = res.id;
+
+    -- Now, see if we need to get rid of some fines
+    FOR bill IN
+        SELECT  *
+          FROM  money.billing b
+          WHERE b.xact = res.id
+                AND b.btype = 1
+                AND NOT b.voided
+                AND b.billing_ts BETWEEN closing.close_start AND new_due_date::TIMESTAMPTZ
+                AND NOT EXISTS (SELECT 1 FROM money.account_adjustment a WHERE a.billing = b.id)
+    LOOP
+        IF avoid_negative THEN
+            PERFORM FROM money.materialized_billable_xact_summary WHERE id = res.id AND balance_owed < bill.amount;
+            EXIT WHEN FOUND; -- We can't go negative, and voiding this bill would do that...
+        END IF;
+
+        UPDATE  money.billing
+          SET   voided = TRUE,
+                void_time = NOW(),
+                note = COALESCE(note,'') || ' :: Voided by emergency closing handler'
+          WHERE id = bill.id;
+    END LOOP;
+    
+    RETURN TRUE;
+END;
+$$ LANGUAGE PLPGSQL;
+
+
+
+SELECT evergreen.upgrade_deps_block_check('1209', :eg_version);
+
+CREATE OR REPLACE FUNCTION action.item_user_circ_test( circ_ou INT, match_item BIGINT, match_user INT, renewal BOOL ) RETURNS SETOF action.circ_matrix_test_result AS $func$
+DECLARE
+    user_object             actor.usr%ROWTYPE;
+    standing_penalty        config.standing_penalty%ROWTYPE;
+    item_object             asset.copy%ROWTYPE;
+    item_status_object      config.copy_status%ROWTYPE;
+    item_location_object    asset.copy_location%ROWTYPE;
+    result                  action.circ_matrix_test_result;
+    circ_test               action.found_circ_matrix_matchpoint;
+    circ_matchpoint         config.circ_matrix_matchpoint%ROWTYPE;
+    circ_limit_set          config.circ_limit_set%ROWTYPE;
+    hold_ratio              action.hold_stats%ROWTYPE;
+    penalty_type            TEXT;
+    items_out               INT;
+    context_org_list        INT[];
+    done                    BOOL := FALSE;
+    item_prox               INT;
+    home_prox               INT;
+BEGIN
+    -- Assume success unless we hit a failure condition
+    result.success := TRUE;
+
+    -- Need user info to look up matchpoints
+    SELECT INTO user_object * FROM actor.usr WHERE id = match_user AND NOT deleted;
+
+    -- (Insta)Fail if we couldn't find the user
+    IF user_object.id IS NULL THEN
+        result.fail_part := 'no_user';
+        result.success := FALSE;
+        done := TRUE;
+        RETURN NEXT result;
+        RETURN;
+    END IF;
+
+    -- Need item info to look up matchpoints
+    SELECT INTO item_object * FROM asset.copy WHERE id = match_item AND NOT deleted;
+
+    -- (Insta)Fail if we couldn't find the item 
+    IF item_object.id IS NULL THEN
+        result.fail_part := 'no_item';
+        result.success := FALSE;
+        done := TRUE;
+        RETURN NEXT result;
+        RETURN;
+    END IF;
+
+    SELECT INTO circ_test * FROM action.find_circ_matrix_matchpoint(circ_ou, item_object, user_object, renewal);
+
+    circ_matchpoint             := circ_test.matchpoint;
+    result.matchpoint           := circ_matchpoint.id;
+    result.circulate            := circ_matchpoint.circulate;
+    result.duration_rule        := circ_matchpoint.duration_rule;
+    result.recurring_fine_rule  := circ_matchpoint.recurring_fine_rule;
+    result.max_fine_rule        := circ_matchpoint.max_fine_rule;
+    result.hard_due_date        := circ_matchpoint.hard_due_date;
+    result.renewals             := circ_matchpoint.renewals;
+    result.grace_period         := circ_matchpoint.grace_period;
+    result.buildrows            := circ_test.buildrows;
+
+    -- (Insta)Fail if we couldn't find a matchpoint
+    IF circ_test.success = false THEN
+        result.fail_part := 'no_matchpoint';
+        result.success := FALSE;
+        done := TRUE;
+        RETURN NEXT result;
+        RETURN;
+    END IF;
+
+    -- All failures before this point are non-recoverable
+    -- Below this point are possibly overridable failures
+
+    -- Fail if the user is barred
+    IF user_object.barred IS TRUE THEN
+        result.fail_part := 'actor.usr.barred';
+        result.success := FALSE;
+        done := TRUE;
+        RETURN NEXT result;
+    END IF;
+
+    -- Fail if the item can't circulate
+    IF item_object.circulate IS FALSE THEN
+        result.fail_part := 'asset.copy.circulate';
+        result.success := FALSE;
+        done := TRUE;
+        RETURN NEXT result;
+    END IF;
+
+    -- Fail if the item isn't in a circulateable status on a non-renewal
+    IF NOT renewal AND item_object.status <> 8 AND item_object.status NOT IN (
+        (SELECT id FROM config.copy_status WHERE is_available) ) THEN 
+        result.fail_part := 'asset.copy.status';
+        result.success := FALSE;
+        done := TRUE;
+        RETURN NEXT result;
+    -- Alternately, fail if the item isn't checked out on a renewal
+    ELSIF renewal AND item_object.status <> 1 THEN
+        result.fail_part := 'asset.copy.status';
+        result.success := FALSE;
+        done := TRUE;
+        RETURN NEXT result;
+    END IF;
+
+    -- Fail if the item can't circulate because of the shelving location
+    SELECT INTO item_location_object * FROM asset.copy_location WHERE id = item_object.location;
+    IF item_location_object.circulate IS FALSE THEN
+        result.fail_part := 'asset.copy_location.circulate';
+        result.success := FALSE;
+        done := TRUE;
+        RETURN NEXT result;
+    END IF;
+
+    -- Use Circ OU for penalties and such
+    SELECT INTO context_org_list ARRAY_AGG(id) FROM actor.org_unit_full_path( circ_ou );
+
+    -- Proximity of user's home_ou to circ_ou to see if penalties should be ignored.
+    SELECT INTO home_prox prox FROM actor.org_unit_proximity WHERE from_org = user_object.home_ou AND to_org = circ_ou;
+
+    -- Proximity of user's home_ou to item circ_lib to see if penalties should be ignored.
+    SELECT INTO item_prox prox FROM actor.org_unit_proximity WHERE from_org = user_object.home_ou AND to_org = item_object.circ_lib;
+
+    IF renewal THEN
+        penalty_type = '%RENEW%';
+    ELSE
+        penalty_type = '%CIRC%';
+    END IF;
+
+    FOR standing_penalty IN
+        SELECT  DISTINCT csp.*
+          FROM  actor.usr_standing_penalty usp
+                JOIN config.standing_penalty csp ON (csp.id = usp.standing_penalty)
+          WHERE usr = match_user
+                AND usp.org_unit IN ( SELECT * FROM unnest(context_org_list) )
+                AND (usp.stop_date IS NULL or usp.stop_date > NOW())
+                AND (csp.ignore_proximity IS NULL
+                     OR csp.ignore_proximity < home_prox
+                     OR csp.ignore_proximity < item_prox)
+                AND csp.block_list LIKE penalty_type LOOP
+
+        result.fail_part := standing_penalty.name;
+        result.success := FALSE;
+        done := TRUE;
+        RETURN NEXT result;
+    END LOOP;
+
+    -- Fail if the test is set to hard non-circulating
+    IF circ_matchpoint.circulate IS FALSE THEN
+        result.fail_part := 'config.circ_matrix_test.circulate';
+        result.success := FALSE;
+        done := TRUE;
+        RETURN NEXT result;
+    END IF;
+
+    -- Fail if the total copy-hold ratio is too low
+    IF circ_matchpoint.total_copy_hold_ratio IS NOT NULL THEN
+        SELECT INTO hold_ratio * FROM action.copy_related_hold_stats(match_item);
+        IF hold_ratio.total_copy_ratio IS NOT NULL AND hold_ratio.total_copy_ratio < circ_matchpoint.total_copy_hold_ratio THEN
+            result.fail_part := 'config.circ_matrix_test.total_copy_hold_ratio';
+            result.success := FALSE;
+            done := TRUE;
+            RETURN NEXT result;
+        END IF;
+    END IF;
+
+    -- Fail if the available copy-hold ratio is too low
+    IF circ_matchpoint.available_copy_hold_ratio IS NOT NULL THEN
+        IF hold_ratio.hold_count IS NULL THEN
+            SELECT INTO hold_ratio * FROM action.copy_related_hold_stats(match_item);
+        END IF;
+        IF hold_ratio.available_copy_ratio IS NOT NULL AND hold_ratio.available_copy_ratio < circ_matchpoint.available_copy_hold_ratio THEN
+            result.fail_part := 'config.circ_matrix_test.available_copy_hold_ratio';
+            result.success := FALSE;
+            done := TRUE;
+            RETURN NEXT result;
+        END IF;
+    END IF;
+
+    -- Fail if the user has too many items out by defined limit sets
+    FOR circ_limit_set IN SELECT ccls.* FROM config.circ_limit_set ccls
+      JOIN config.circ_matrix_limit_set_map ccmlsm ON ccmlsm.limit_set = ccls.id
+      WHERE ccmlsm.active AND ( ccmlsm.matchpoint = circ_matchpoint.id OR
+        ( ccmlsm.matchpoint IN (SELECT * FROM unnest(result.buildrows)) AND ccmlsm.fallthrough )
+        ) LOOP
+            IF circ_limit_set.items_out > 0 AND NOT renewal THEN
+                SELECT INTO context_org_list ARRAY_AGG(aou.id)
+                  FROM actor.org_unit_full_path( circ_ou ) aou
+                    JOIN actor.org_unit_type aout ON aou.ou_type = aout.id
+                  WHERE aout.depth >= circ_limit_set.depth;
+                IF circ_limit_set.global THEN
+                    WITH RECURSIVE descendant_depth AS (
+                        SELECT  ou.id,
+                            ou.parent_ou
+                        FROM  actor.org_unit ou
+                        WHERE ou.id IN (SELECT * FROM unnest(context_org_list))
+                            UNION
+                        SELECT  ou.id,
+                            ou.parent_ou
+                        FROM  actor.org_unit ou
+                            JOIN descendant_depth ot ON (ot.id = ou.parent_ou)
+                    ) SELECT INTO context_org_list ARRAY_AGG(ou.id) FROM actor.org_unit ou JOIN descendant_depth USING (id);
+                END IF;
+                SELECT INTO items_out COUNT(DISTINCT circ.id)
+                  FROM action.circulation circ
+                    JOIN asset.copy copy ON (copy.id = circ.target_copy)
+                    LEFT JOIN action.circulation_limit_group_map aclgm ON (circ.id = aclgm.circ)
+                  WHERE circ.usr = match_user
+                    AND circ.circ_lib IN (SELECT * FROM unnest(context_org_list))
+                    AND circ.checkin_time IS NULL
+                    AND circ.xact_finish IS NULL
+                    AND (circ.stop_fines IN ('MAXFINES','LONGOVERDUE') OR circ.stop_fines IS NULL)
+                    AND (copy.circ_modifier IN (SELECT circ_mod FROM config.circ_limit_set_circ_mod_map WHERE limit_set = circ_limit_set.id)
+                        OR copy.location IN (SELECT copy_loc FROM config.circ_limit_set_copy_loc_map WHERE limit_set = circ_limit_set.id)
+                        OR aclgm.limit_group IN (SELECT limit_group FROM config.circ_limit_set_group_map WHERE limit_set = circ_limit_set.id)
+                    );
+                IF items_out >= circ_limit_set.items_out THEN
+                    result.fail_part := 'config.circ_matrix_circ_mod_test';
+                    result.success := FALSE;
+                    done := TRUE;
+                    RETURN NEXT result;
+                END IF;
+            END IF;
+            SELECT INTO result.limit_groups result.limit_groups || ARRAY_AGG(limit_group) FROM config.circ_limit_set_group_map WHERE limit_set = circ_limit_set.id AND NOT check_only;
+    END LOOP;
+
+    -- If we passed everything, return the successful matchpoint
+    IF NOT done THEN
+        RETURN NEXT result;
+    END IF;
+
+    RETURN;
+END;
+$func$ LANGUAGE plpgsql;
+
+
+SELECT evergreen.upgrade_deps_block_check('1211', :eg_version); -- Dyrcona/rhamby/gmcharlt
+
+CREATE OR REPLACE FUNCTION actor.usr_delete(
+	src_usr  IN INTEGER,
+	dest_usr IN INTEGER
+) RETURNS VOID AS $$
+DECLARE
+	old_profile actor.usr.profile%type;
+	old_home_ou actor.usr.home_ou%type;
+	new_profile actor.usr.profile%type;
+	new_home_ou actor.usr.home_ou%type;
+	new_name    text;
+	new_dob     actor.usr.dob%type;
+BEGIN
+	SELECT
+		id || '-PURGED-' || now(),
+		profile,
+		home_ou,
+		dob
+	INTO
+		new_name,
+		old_profile,
+		old_home_ou,
+		new_dob
+	FROM
+		actor.usr
+	WHERE
+		id = src_usr;
+	--
+	-- Quit if no such user
+	--
+	IF old_profile IS NULL THEN
+		RETURN;
+	END IF;
+	--
+	perform actor.usr_purge_data( src_usr, dest_usr );
+	--
+	-- Find the root grp_tree and the root org_unit.  This would be simpler if we 
+	-- could assume that there is only one root.  Theoretically, someday, maybe,
+	-- there could be multiple roots, so we take extra trouble to get the right ones.
+	--
+	SELECT
+		id
+	INTO
+		new_profile
+	FROM
+		permission.grp_ancestors( old_profile )
+	WHERE
+		parent is null;
+	--
+	SELECT
+		id
+	INTO
+		new_home_ou
+	FROM
+		actor.org_unit_ancestors( old_home_ou )
+	WHERE
+		parent_ou is null;
+	--
+	-- Truncate date of birth
+	--
+	IF new_dob IS NOT NULL THEN
+		new_dob := date_trunc( 'year', new_dob );
+	END IF;
+	--
+	UPDATE
+		actor.usr
+		SET
+			card = NULL,
+			profile = new_profile,
+			usrname = new_name,
+			email = NULL,
+			passwd = random()::text,
+			standing = DEFAULT,
+			ident_type = 
+			(
+				SELECT MIN( id )
+				FROM config.identification_type
+			),
+			ident_value = NULL,
+			ident_type2 = NULL,
+			ident_value2 = NULL,
+			net_access_level = DEFAULT,
+			photo_url = NULL,
+			prefix = NULL,
+			first_given_name = new_name,
+			second_given_name = NULL,
+			family_name = new_name,
+			suffix = NULL,
+			alias = NULL,
+            guardian = NULL,
+			day_phone = NULL,
+			evening_phone = NULL,
+			other_phone = NULL,
+			mailing_address = NULL,
+			billing_address = NULL,
+			home_ou = new_home_ou,
+			dob = new_dob,
+			active = FALSE,
+			master_account = DEFAULT, 
+			super_user = DEFAULT,
+			barred = FALSE,
+			deleted = TRUE,
+			juvenile = DEFAULT,
+			usrgroup = 0,
+			claims_returned_count = DEFAULT,
+			credit_forward_balance = DEFAULT,
+			last_xact_id = DEFAULT,
+			alert_message = NULL,
+			pref_prefix = NULL,
+			pref_first_given_name = NULL,
+			pref_second_given_name = NULL,
+			pref_family_name = NULL,
+			pref_suffix = NULL,
+			name_keywords = NULL,
+			create_date = now(),
+			expire_date = now()
+	WHERE
+		id = src_usr;
+END;
+$$ LANGUAGE plpgsql;
+
+COMMIT;
+
+-- Update auditor tables to catch changes to source tables.
+--   Can be removed/skipped if there were no schema changes.
+SELECT auditor.update_auditors();
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..ea4572b554 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_4_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 0613a13ddf..6804084833 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_4_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 a9543579a8..7f20eae48f 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.4"
 !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..e2a93a9c2a
--- /dev/null
+++ b/README
@@ -0,0 +1,649 @@
+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.6.
+  * **Linux**: Evergreen has been tested on 
+    Debian Buster (10), 
+    Debian Stretch (9), 
+    Debian Jessie (8), 
+    Ubuntu Bionic Beaver (18.04), 
+    and Ubuntu Xenial Xerus (16.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.2.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.2.0 or later).
+   You can download OpenSRF releases from http://evergreen-ils.org/opensrf-downloads/
++
+2. Issue the following commands as the *root* Linux account to install
+   prerequisites using the `Makefile.install` prerequisite installer,
+   substituting `debian-buster`,`debian-stretch`,`debian-jessie`,`ubuntu-bionic`, or
+   `ubuntu-xenial` for <osname> below:
++
+[source, bash]
+------------------------------------------------------------------------------
+make -f Open-ILS/src/extras/Makefile.install <osname>
+------------------------------------------------------------------------------
++
+[[optional_developer_additions]]
+3. OPTIONAL: Developer additions
++
+To perform certain developer tasks from a Git source code checkout, 
+including the testing of the Angular web client components,
+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 web
+   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. Otherwise, ensure you have installed the
+<<optional_developer_additions,optional developer additions>> before proceeding.
+
+[[install_files_for_web_staff_client]]
+Install AngularJS 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, concat+minify
+npm run build-prod
+------------------------------------------------------------------------------
++
+4. OPTIONAL: Test web client code if the <osname>-developer packages were installed.
+   CHROME_BIN should be set to the path to chrome or chromimum, e.g.,
+   `/usr/bin/chromium`:
++
+[source,sh]
+------------------------------------------------------------------------------
+CHROME_BIN=/path/to/chrome npm run test
+------------------------------------------------------------------------------
+
+[[install_files_for_angular_web_staff_client]]
+Install Angular files for web staff client
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+1. Building, Testing, Minification: The remaining steps all take place within
+   the Angular staff root:
++
+[source,sh]
+------------------------------------------------------------------------------
+cd $EVERGREEN_ROOT/Open-ILS/src/eg2/
+------------------------------------------------------------------------------
++
+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 and run tests
+ng build --prod
+------------------------------------------------------------------------------
++
+4. OPTIONAL: Test eg2 web client code if the <osname>-developer packages were installed:
+   CHROME_BIN should be set to the path to chrome or chromimum, e.g.,
+   `/usr/bin/chromium`:
++
+[source,sh]
+------------------------------------------------------------------------------
+CHROME_BIN=/path/to/chrome 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 and copy
+   example configuration files to `/openils/conf`.
++
+[source, bash]
+------------------------------------------------------------------------------
+make install
+------------------------------------------------------------------------------
+
+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 / Buster, 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 to configure your Web server for 
+the Evergreen catalog, web staff client, Web services, and administration
+interfaces. Issue the following commands as the *root* Linux account:
++
+[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_24/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
+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):
+     * Replace `Require host 10.0.0.0/8` with `Require all granted`
+. Change the user for the Apache server.
+  * 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.
+  * 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:
++
+.`/etc/apache2/mods-available/mpm_prefork.conf`
+[source,bash]
+------------------------------------------------------------------------------
+<IfModule mpm_prefork_module>
+   StartServers            15
+   MinSpareServers          5
+   MaxSpareServers         15
+   MaxRequestWorkers       75
+   MaxConnectionsPerChild 500
+</IfModule>
+------------------------------------------------------------------------------
++
+. As the *root* user, enable the mpm_prefork module:
++
+[source,bash]
+------------------------------------------------------------------------------
+a2dismod mpm_event
+a2enmod mpm_prefork
+------------------------------------------------------------------------------
++
+. As the *root* Linux account, enable the Evergreen site:
++
+[source,bash]
+------------------------------------------------------------------------------
+a2dissite 000-default  # OPTIONAL: disable the default site (the "It Works" page)
+a2ensite eg.conf
+------------------------------------------------------------------------------
++
+. 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:
+
+. 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-buster
+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-ubuntu-xenial
+make -f Open-ILS/src/extras/Makefile.install postgres-server-ubuntu-bionic
+------------------------------------------------------------------------------
+
+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.6 and later
+^^^^^^^^^^^^^^^^^^^^^^^^
+To create the database instance on a remote database server running PostgreSQL
+9.6 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 web 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 web 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..c792514b6b 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.4.4, open-ils-dev at list.georgialibraries.org)
+AM_INIT_AUTOMAKE([OpenILS], [3.4.4])
 AC_REVISION($Revision: 0.1 $)
 AC_CONFIG_SRCDIR([configure.ac])
 AC_CONFIG_SUBDIRS([Open-ILS/xul/staff_client/external/libmar])

commit ce4422e352852935c658f69059ea375a5c96ff6d
Author: Chris Sharp <csharp at georgialibraries.org>
Date:   Tue Aug 11 20:28:32 2020 -0400

    Updating upgrade docs for 3.4.4.
    
    Signed-off-by: Chris Sharp <csharp at georgialibraries.org>

diff --git a/docs/installation/server_upgrade.adoc b/docs/installation/server_upgrade.adoc
index 32388deb10..5ea337b4a6 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.6.
-  * **Linux**: Evergreen 3.X.X has been tested on Debian Stretch (9.0),
+  * **Linux**: Evergreen 3.4.4 has been tested on Debian Stretch (9.0),
     Debian Jessie (8.0), Ubuntu Xenial Xerus (16.04), and Ubuntu Bionic Beaver (18.04).
     If you are running an older version of these distributions, you may want
     to upgrade before upgrading Evergreen. For instructions on upgrading these
@@ -42,12 +42,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.X.X:
+. As the *opensrf* user, download and extract Evergreen 3.4.4:
 +
 [source, bash]
 -----------------------------------------------
-wget https://evergreen-ils.org/downloads/Evergreen-ILS-3.X.X.tar.gz
-tar xzf Evergreen-ILS-3.X.X.tar.gz
+wget https://evergreen-ils.org/downloads/Evergreen-ILS-3.4.4.tar.gz
+tar xzf Evergreen-ILS-3.4.4.tar.gz
 -----------------------------------------------
 +
 [NOTE]
@@ -57,7 +57,7 @@ For the latest edition of Evergreen, check the https://evergreen-ils.org/egdownl
 +
 [source, bash]
 ---------------------------------------------
-cd /home/opensrf/Evergreen-ILS-3.X.X
+cd /home/opensrf/Evergreen-ILS-3.4.4
 ---------------------------------------------
 +
 On the next command, replace `[distribution]` with one of these values for your
@@ -80,7 +80,7 @@ make -f Open-ILS/src/extras/Makefile.install [distribution]
 +
 [source, bash]
 ------------------------------------------------------------
-cd /home/opensrf/Evergreen-ILS-3.X.X
+cd /home/opensrf/Evergreen-ILS-3.4.4
 PATH=/openils/bin:$PATH ./configure --prefix=/openils --sysconfdir=/openils/conf
 make
 ------------------------------------------------------------
@@ -91,7 +91,7 @@ These instructions assume that you have also installed OpenSRF under /openils/.
 +
 [source, bash]
 ------------------------------------------------------------
-cd /home/opensrf/Evergreen-ILS-3.X.X
+cd /home/opensrf/Evergreen-ILS-3.4.4
 make install
 ------------------------------------------------------------
 +
@@ -102,8 +102,8 @@ can supply `STAFF_CLIENT_STAMP` during the `make install` step like this:
 +
 [source, bash]
 ------------------------------------------------------------
-cd /home/opensrf/Evergreen-ILS-3.X.X
-make STAFF_CLIENT_STAMP_ID=rel_3_x_x install
+cd /home/opensrf/Evergreen-ILS-3.4.4
+make STAFF_CLIENT_STAMP_ID=rel_3_4_4 install
 ------------------------------------------------------------
 +
 . As the *root* user, change all files to be owned by the opensrf user and group:
@@ -120,7 +120,7 @@ chown -R opensrf:opensrf /openils
 ------------------------------------------------------------
 cd /openils/var/web/xul/
 rm server
-ln -sf rel_3_x_x/server server
+ln -sf rel_3_4_4/server server
 ------------------------------------------------------------
 +
 . As the *opensrf* user, update opensrf_core.xml and opensrf.xml by copying the
@@ -140,7 +140,7 @@ Copying these configuration files will remove any customizations you have made t
 +
 [source, bash]
 -------------------------------------------------------------------------
-cd /home/opensrf/Evergreen-ILS-3.X.X
+cd /home/opensrf/Evergreen-ILS-3.4.4
 perl Open-ILS/src/support-scripts/eg_db_config --update-config --service all \
 --create-offline --database evergreen --host localhost --user evergreen --password evergreen
 -------------------------------------------------------------------------
@@ -164,21 +164,21 @@ The diff command can be used to show the differences between the distribution ve
 +
 [source, bash]
 ----------------------------------------------------------
-cp /home/opensrf/Evergreen-ILS-3.X.X/Open-ILS/examples/apache/eg_startup /etc/apache2/eg_startup
+cp /home/opensrf/Evergreen-ILS-3.4.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.X.X/Open-ILS/examples/apache/eg_vhost.conf /etc/apache2/eg_vhost.conf
+cp /home/opensrf/Evergreen-ILS-3.4.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.X.X/Open-ILS/examples/apache/eg.conf /etc/apache2/sites-available/eg.conf
+cp /home/opensrf/Evergreen-ILS-3.4.4/Open-ILS/examples/apache/eg.conf /etc/apache2/sites-available/eg.conf
 ----------------------------------------------------------
 
 Upgrade the Evergreen database schema
@@ -235,8 +235,9 @@ as a user with the ability to connect to the database server.
 
 [source, bash]
 ----------------------------------------------------------
-cd /home/opensrf/Evergreen-ILS-3.X.X/Open-ILS/src/sql/Pg
-psql -U evergreen -h localhost -f version-upgrade/3.X.W-3.X.X-upgrade-db.sql evergreen
+cd /home/opensrf/Evergreen-ILS-3.4.4/Open-ILS/src/sql/Pg
+psql -U evergreen -h localhost -f version-upgrade/3.4.3-3.4.4-upgrade-db.sql evergreen
+- 3.4.3-3.4.4-upgrade-db.sql
 ----------------------------------------------------------
 
 [TIP]

commit 4737705238e6f1ece8fe012c8338ca2d0989f2d6
Author: Chris Sharp <csharp at georgialibraries.org>
Date:   Tue Aug 11 20:28:26 2020 -0400

    Bumping Perl version string for 3.4.4
    
    Signed-off-by: Chris Sharp <csharp at georgialibraries.org>

diff --git a/Open-ILS/src/perlmods/lib/OpenILS.pm b/Open-ILS/src/perlmods/lib/OpenILS.pm
index d7235ce61a..b3e55d6b6a 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.044';
 
 1;

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


hooks/post-receive
-- 
Evergreen ILS


More information about the open-ils-commits mailing list