Bumping version numbers, adding Upgrade Script and Changelog rel_3_4_2_stock
authorJason Stephenson <jason@sigio.com>
Thu, 23 Jan 2020 22:50:48 +0000 (17:50 -0500)
committerJason Stephenson <jason@sigio.com>
Thu, 23 Jan 2020 22:50:48 +0000 (17:50 -0500)
Signed-off-by: Jason Stephenson <jason@sigio.com>
ChangeLog
Open-ILS/src/perlmods/lib/OpenILS/Application.pm
Open-ILS/src/sql/Pg/002.schema.config.sql
Open-ILS/src/sql/Pg/version-upgrade/3.4.1-3.4.2-upgrade-db.sql [new file with mode: 0644]
Open-ILS/xul/staff_client/chrome/content/main/about.html
Open-ILS/xul/staff_client/defaults/preferences/prefs.js
Open-ILS/xul/staff_client/windowssetup.nsi
README [changed from symlink to file mode: 0644]
configure.ac
docs/installation/server_upgrade.adoc

index 1f72b2c..ddaa0f9 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
-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 e8b8a2839332fe6ee484fc5285a09eca36c87f23
+Author: Jason Stephenson <jason@sigio.com>
+Date:   Thu Jan 23 17:43:21 2020 -0500
+
+    Bumping Perl version string for 3.4.2
+    
+    Signed-off-by: Jason Stephenson <jason@sigio.com>
+
+1      1       Open-ILS/src/perlmods/lib/OpenILS.pm
+
+commit 1b1a2981f4bbc15619b4cc64265dcb1e0b17822f
+Author: Jane Sandberg <sandbej@linnbenton.edu>
+Date:   Thu Jan 23 07:12:42 2020 -0800
+
+    Docs: release notes for 3.3.6
+    
+    Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
+
+86     0       docs/RELEASE_NOTES_3_3.adoc
+
+commit 928734e1036b82a6a2ee94378d437ae039dc62e7
+Author: Jane Sandberg <sandbej@linnbenton.edu>
+Date:   Thu Jan 23 07:11:17 2020 -0800
+
+    Docs: release notes for 3.4.2
+    
+    Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
+
+104    0       docs/RELEASE_NOTES_3_4.adoc
+
+commit 8eb50bde112efb128a7cbc2b98675ea681fbbab8
+Author: Galen Charlton <gmc@equinoxinitiative.org>
+Date:   Fri Jan 3 17:55:10 2020 -0500
+
+    LP#1801163: (follow-up) deal with header fields that contain Unicode strings
+    
+    Since Email::MIME->header_str_set() expects Unicode strings, not octets,
+    use decode_utf8() on the header values to
+    
+    To test
+    -------
+    [1] Update the biblio.format.record_entry.print A/T event definition
+        to include non-ASCII characters in the subject and from headers.
+    [2] Upon applying the patch series, verifying that the strings provided
+        in step 1 are not mangled when the email is sent.
+    
+    Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
+    Signed-off-by: Jason Boyer <JBoyer@eoli.info>
+
+2      2       Open-ILS/src/perlmods/lib/OpenILS/Application/Trigger/Reactor/SendEmail.pm
+
+commit 2a3dcc0624d38de4fcc14b815b3fe2df1afa83e4
+Author: Galen Charlton <gmc@equinoxinitiative.org>
+Date:   Fri Jan 3 17:19:56 2020 -0500
+
+    LP#1801163: update Debian Buster and Fedora installation deps
+    
+    Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
+    Signed-off-by: Jason Boyer <JBoyer@eoli.info>
+
+1      0       Open-ILS/src/extras/install/Makefile.debian-buster
+1      0       Open-ILS/src/extras/install/Makefile.fedora
+
+commit 9d12223513271a2c7c8ac57b1cbccdf808b2f10e
+Author: Jason Stephenson <jason@sigio.com>
+Date:   Fri Feb 8 15:47:41 2019 -0500
+
+    Lp 1801163: Switch to Email::MIME in SendEmail A/T Reactor
+    
+    Switch from Email::Simple to Email::MIME Perl module in the SendEmail
+    Action/Trigger Reactor.  Email::MIME properly encodes unescaped header
+    fields when added to the message with the header_str_set method.
+    
+    We allow only 1 of each address field to be created while doing the
+    encoding, so that messages conform to RFC 2822.
+    
+    This commit adds a new prerequisite as mentioned in the release notes,
+    so be sure to install the prerequisites for your Linux distribution
+    before installing.
+    
+    You can test this with concerto data from a fresh installation by:
+    
+    1. Configuring your test system to send email.
+    
+    2. Updating all actor.usr entries to have your email address.
+    
+    3. Updating the New User Created Welcome Notice event definiton to
+       active = true.
+    
+    4. Run the action_trigger_runner with --process-hooks --run-pending.
+    
+    5. You should get 237 new user welcome emails.  The exact number is
+       subject to change.
+    
+    Signed-off-by: Jason Stephenson <jason@sigio.com>
+    Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
+    Signed-off-by: Jason Boyer <JBoyer@eoli.info>
+
+1      0       Open-ILS/src/extras/install/Makefile.debian-jessie
+1      0       Open-ILS/src/extras/install/Makefile.debian-stretch
+1      0       Open-ILS/src/extras/install/Makefile.ubuntu-bionic
+1      0       Open-ILS/src/extras/install/Makefile.ubuntu-xenial
+13     6       Open-ILS/src/perlmods/lib/OpenILS/Application/Trigger/Reactor/SendEmail.pm
+8      0       docs/RELEASE_NOTES_NEXT/Administration/sendemail-reactor-mime.adoc
+ create mode 100644 docs/RELEASE_NOTES_NEXT/Administration/sendemail-reactor-mime.adoc
+
+commit 2b565d778de776c0cc62d0eac6b865de982b84d1
+Author: Josh Stompro <stompro@stompro.org>
+Date:   Thu Nov 7 22:00:21 2019 -0600
+
+    LP1832735 - Allow copy alerts to be applied to multiple copies
+    
+    Signed-off-by: Josh Stompro <stompro@stompro.org>
+    Signed-off-by: Beth Willis <willis@noblenet.org>
+    Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
+
+3      0       Open-ILS/web/js/ui/default/staff/cat/volcopy/app.js
+
+commit eab367038619cc93d43cf76c9c65c093781956a5
+Author: Josh Stompro <stompro@stompro.org>
+Date:   Tue Nov 5 15:31:21 2019 -0600
+
+    LP#1851434 - Allow COPY_NOT_AVAILABLE.override during renewal
+    
+    Also addresses LP#1827901 - Allow PATRON_EXCEEDS_LONGOVERDUE_COUNT
+    override during checkout and renew.
+    
+    Test Plan:
+    1. Check out an item to a patron.
+    2. Mark item lost by patron to change status to lost.
+    3. In web client, log in as user with COPY_NOT_AVAILABLE.override
+    4. Try to renew item for patron, see that it isn't allowed.
+    
+    After fix:
+    1. Try to renew item for patron, see that the override is now allowed.
+    
+    Also try checkouts and renews for patrons that have the PATRON_EXCEEDS_LONGOVERDUE_COUNT block.
+    
+    Signed-off-by: Josh Stompro <stompro@stompro.org>
+    Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
+    Signed-off-by: Bill Erickson <berickxx@gmail.com>
+
+5      1       Open-ILS/web/js/ui/default/staff/circ/services/circ.js
+
+commit e47ac8e9ff6c046d7f677a6678f0e23c08942142
+Author: Bill Erickson <berickxx@gmail.com>
+Date:   Wed Aug 21 17:18:09 2019 -0400
+
+    LP1840982 Replace troublesome catalog icons
+    
+    Replace 'arrow_right' icon with 'keyboard_arrow_right' (ditto left) in
+    the Angular catalog holdings maintenance grid.  This resolves an issue
+    where the 'arrow_right' icon presents with excess padding, causing the
+    barcode / call number values to appear to be empty in the
+    'Location/Barcode' column of the holdings grid.
+    
+    See also LP1830912 for icon padding issues.
+    
+    Signed-off-by: Bill Erickson <berickxx@gmail.com>
+    Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
+
+2      2       Open-ILS/src/eg2/src/app/staff/catalog/record/holdings.component.html
+
+commit 7e57c0bab70b7ae56b3a60a9ecd04a375d60de55
+Author: Bill Erickson <berickxx@gmail.com>
+Date:   Mon Oct 21 14:23:07 2019 -0400
+
+    LP1849182 Angular catalog result/detail tab titles
+    
+    Add tab/page titles to the Angular staff catalog Search Results and
+    Record Details pages.
+    
+    Search results offers 1 of 2 titles, depending on whether a search has
+    be run:
+    
+    "Catalog Search"
+    "Catalog Search - <count> Results"
+    
+    The record detail title shows the bib ID and bib title:
+    
+    "Bib <bib TCN> - <bib title>"
+    
+    Signed-off-by: Bill Erickson <berickxx@gmail.com>
+    Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
+
+5      0       Open-ILS/src/eg2/src/app/staff/catalog/record/record.component.html
+6      0       Open-ILS/src/eg2/src/app/staff/catalog/result/results.component.html
+
+commit 1e14372cbf133d616883b099948eae689a4b76ba
+Author: Jane Sandberg <sandbej@linnbenton.edu>
+Date:   Thu Oct 17 11:11:34 2019 -0700
+
+    LP1735566: Ask before deleting items in non-ideal statuses in AngularJS
+    
+    To test:
+    
+    1) Apply this commit.
+    2) Log in as a user with COPY_DELETE_WARNING.override permission.
+    3) Go to item status and scan an item in a non-ideal status (like #1:
+    checked out)
+    4) Delete the item.  Note that you are alerted of the item's non-ideal
+    status, and you can confirm that you actually want to delete it.
+    5) Repeat steps 3-4 with an item in an ideal status (like #0:
+    Available). Note that no such alert appears.
+    6) Open the holdings view and repeat steps 4-5.
+    7) Log in as a user without the COPY_DELETE_WARNING.override
+    permission. Note that you are still informed about the non-ideal status,
+    but you aren't able to continue with the deletion without an admin
+    using their credentials.
+    
+    Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
+    Signed-off-by: Garry Collum <gcollum@gmail.com>
+    Signed-off-by: Rogan Hamby <rogan.hamby@gmail.com>
+    Signed-off-by: Bill Erickson <berickxx@gmail.com>
+
+4      0       Open-ILS/src/templates/staff/cat/catalog/index.tt2
+4      0       Open-ILS/src/templates/staff/circ/share/circ_strings.tt2
+25     5       Open-ILS/web/js/ui/default/staff/cat/catalog/app.js
+22     3       Open-ILS/web/js/ui/default/staff/circ/services/item.js
+
+commit 9dcf7eae8d9425c592583c56762136d2e1398d56
+Author: Galen Charlton <gmc@equinoxinitiative.org>
+Date:   Sun Jan 19 14:47:40 2020 -0500
+
+    LP#1860351: fix hasWorkPermHere() in Angular client
+    
+    Fixes a bug where the Angular client's hasWorkPermHere() check
+    could return incorrect results and thus incorrectly report
+    whether or not the staff user currently has particularl permissions
+    at their current workstation.
+    
+    To test
+    -------
+    [1] Arrange for a workstation whose internal ID is larger than
+        any of the org unit IDs.
+    [2] Log in to that workstation with a user who has permission
+        to update monograph parts.
+    [4] In the experimental Angular staff catalog, go to a record
+        (e.g., /eg2/en-US/staff/catalog/record/21/monoparts) and note
+        that the New Monograph Part button is disabled.
+    [5] Apply the patch and repeat step 4. This time, the button
+        should be active.
+    
+    Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
+    
+    Signed-off-by: Bill Erickson <berickxx@gmail.com>
+
+2      1       Open-ILS/src/eg2/src/app/core/perm.service.ts
+
+commit 7ab7f355d311726a8e42b38c78198535e1a4ed76
+Author: Josh Stompro <stompro@stompro.org>
+Date:   Thu Nov 21 14:01:36 2019 -0600
+
+    LP1739609 - Add Monographic Part to check in grid.
+    
+    Signed-off-by: Josh Stompro <stompro@stompro.org>
+    Signed-off-by: John Amundson <jamundson@cwmars.org>
+    Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
+
+1      0       Open-ILS/src/templates/staff/circ/checkin/t_checkin_table.tt2
+
+commit 0d539758a4fb001e7ca4d1bc1a8f7e10e475761b
+Author: Jane Sandberg <sandbej@linnbenton.edu>
+Date:   Sat Jan 18 10:44:02 2020 -0800
+
+    LP#1835982 follow-up: Add cellTextGenerator to booking schedule grid
+    
+    Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
+
+2      1       Open-ILS/src/eg2/src/app/staff/booking/create-reservation.component.html
+15     1       Open-ILS/src/eg2/src/app/staff/booking/create-reservation.component.ts
+
+commit 7f739e61b87cae7329226b89db6a9a0488761061
+Author: Bill Erickson <berickxx@gmail.com>
+Date:   Fri Jan 3 15:41:03 2020 -0500
+
+    LPLP1835982 Holds grid user barcode text generator; handle null
+    
+    Adds a new text generator for the patron barcode template in the staff
+    catalog holds grid.  Also adds a name field to the <eg-grid-column/>
+    to support the text generator.
+    
+    Teach the cell text generator internals to translate undefined and null
+    values to '' so generator authors don't have to.
+    
+    Signed-off-by: Bill Erickson <berickxx@gmail.com>
+    Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
+
+2      1       Open-ILS/src/eg2/src/app/share/grid/grid.ts
+1      1       Open-ILS/src/eg2/src/app/staff/share/holds/grid.component.html
+2      1       Open-ILS/src/eg2/src/app/staff/share/holds/grid.component.ts
+
+commit f4b0b5a8477da7ff41ee38bf013be9aacd54096c
+Author: Galen Charlton <gmc@equinoxinitiative.org>
+Date:   Fri Jan 3 11:50:05 2020 -0500
+
+    LP#1835982: tweak a few of the new GridCellTextGenerator
+    
+    - do not display 'null' for Vandelay import errors and
+      holds table current copy barcodes
+    - trim leading and trailing whitespace from the items table
+      call number
+    
+    Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
+    Signed-off-by: Bill Erickson <berickxx@gmail.com>
+    Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
+
+1      1       Open-ILS/src/eg2/src/app/staff/cat/vandelay/queue.component.ts
+2      2       Open-ILS/src/eg2/src/app/staff/catalog/record/copies.component.ts
+1      1       Open-ILS/src/eg2/src/app/staff/share/holds/grid.component.ts
+
+commit 0163433f15a1111e2361e456a3960b50a789a33a
+Author: Galen Charlton <gmc@equinoxinitiative.org>
+Date:   Fri Jan 3 11:33:19 2020 -0500
+
+    LP#1835982: add GridCellTextGenerator to the btGrid in the sandbox
+    
+    This patch also adds a usage note: since the GridCellTextGenerator
+    only has access to the row object but a cellTemplate can be passed
+    arbitrary context in addition to the row, a GridCellTextGenerator
+    that needs that additional context to have the print content match
+    the displayed content may require that the caller stick it in the
+    row object.
+    
+    Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
+    Signed-off-by: Bill Erickson <berickxx@gmail.com>
+    Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
+
+7      0       Open-ILS/src/eg2/src/app/share/grid/grid.ts
+1      0       Open-ILS/src/eg2/src/app/staff/sandbox/sandbox.component.html
+10     1       Open-ILS/src/eg2/src/app/staff/sandbox/sandbox.component.ts
+
+commit 87fe1497dbba62fb15d6516562ce676831fc65a0
+Author: Bill Erickson <berickxx@gmail.com>
+Date:   Wed Nov 20 11:57:26 2019 -0500
+
+    LP1835982 Remove more deprecated cellPrintValue refs
+    
+    cellPrintValue inputs were replaced with grid-wide cellTextGenerator
+    handlers.  This patch removes a few remaining references to
+    cellPrintValue inputs.  Having them linger was breaking --prod builds,
+    since they referred to nonexistent methods.
+    
+    Signed-off-by: Bill Erickson <berickxx@gmail.com>
+    Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
+    Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
+
+0      2       Open-ILS/src/eg2/src/app/share/grid/grid-column.component.ts
+0      4       Open-ILS/src/eg2/src/app/share/grid/grid.ts
+3      4       Open-ILS/src/eg2/src/app/staff/cat/vandelay/queue.component.html
+1      2       Open-ILS/src/eg2/src/app/staff/catalog/record/copies.component.html
+
+commit 221969150882efa347932d7fd109a1eb35bc0b2c
+Author: Bill Erickson <berickxx@gmail.com>
+Date:   Fri Aug 9 12:47:37 2019 -0400
+
+    LP1835982 Grid cell text generator API migration
+    
+    Migrate cell-specific cellPrintValue handlers to a grid-wide
+    cellTextGenerator handler.  This simplifies the client-side API and
+    helps to formalize the API a bit more by providing a new
+    GridCellTextGenerator interface.
+    
+    Warning messages are now display at page load time when a grid cell uses
+    a cellTemplate but does not have a matching text generator.
+    
+    Signed-off-by: Bill Erickson <berickxx@gmail.com>
+    Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
+    Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
+
+6      0       Open-ILS/src/eg2/src/app/share/grid/grid-column.component.ts
+0      7       Open-ILS/src/eg2/src/app/share/grid/grid-print.component.ts
+6      1       Open-ILS/src/eg2/src/app/share/grid/grid.component.ts
+14     2       Open-ILS/src/eg2/src/app/share/grid/grid.ts
+2      2       Open-ILS/src/eg2/src/app/staff/cat/vandelay/match-set-list.component.html
+4      8       Open-ILS/src/eg2/src/app/staff/cat/vandelay/match-set-list.component.ts
+1      1       Open-ILS/src/eg2/src/app/staff/cat/vandelay/queue.component.html
+6      9       Open-ILS/src/eg2/src/app/staff/cat/vandelay/queue.component.ts
+3      2       Open-ILS/src/eg2/src/app/staff/cat/vandelay/queued-record-matches.component.html
+5      8       Open-ILS/src/eg2/src/app/staff/cat/vandelay/queued-record-matches.component.ts
+3      3       Open-ILS/src/eg2/src/app/staff/catalog/record/copies.component.html
+7      13      Open-ILS/src/eg2/src/app/staff/catalog/record/copies.component.ts
+2      4       Open-ILS/src/eg2/src/app/staff/catalog/record/holdings.component.html
+6      11      Open-ILS/src/eg2/src/app/staff/catalog/record/holdings.component.ts
+3      3       Open-ILS/src/eg2/src/app/staff/share/holds/grid.component.html
+5      7       Open-ILS/src/eg2/src/app/staff/share/holds/grid.component.ts
+
+commit 26b547f50419ca60d07fd1b28234d8cea0aa08e7
+Author: Bill Erickson <berickxx@gmail.com>
+Date:   Fri Aug 9 11:52:05 2019 -0400
+
+    LP1835982 More grid cell print generators
+    
+    Adds additional print content generators for Angular grid cells which
+    are rendered via cell templates.
+    
+    * Vandelay match set list grid
+    * Vandelay queue contents grid
+    * Vandelay queued record matches grid
+    * Catalog holds grid.
+    
+    Also adds a warning to the grid component when an attempt is made to
+    print a templated cell which has no print content generator.
+    
+    Signed-off-by: Bill Erickson <berickxx@gmail.com>
+    Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
+    Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
+
+7      0       Open-ILS/src/eg2/src/app/share/grid/grid-print.component.ts
+1      1       Open-ILS/src/eg2/src/app/staff/cat/vandelay/match-set-list.component.html
+10     0       Open-ILS/src/eg2/src/app/staff/cat/vandelay/match-set-list.component.ts
+6      5       Open-ILS/src/eg2/src/app/staff/cat/vandelay/queue.component.html
+10     0       Open-ILS/src/eg2/src/app/staff/cat/vandelay/queue.component.ts
+2      2       Open-ILS/src/eg2/src/app/staff/cat/vandelay/queued-record-matches.component.html
+11     0       Open-ILS/src/eg2/src/app/staff/cat/vandelay/queued-record-matches.component.ts
+3      3       Open-ILS/src/eg2/src/app/staff/share/holds/grid.component.html
+11     1       Open-ILS/src/eg2/src/app/staff/share/holds/grid.component.ts
+
+commit 82ee9ee0675ef853f5962746941bb6fff711c5c8
+Author: Galen Charlton <gmc@equinoxinitiative.org>
+Date:   Tue Jul 30 12:02:26 2019 -0400
+
+    LP#1835982: add cell value print handlers to holdings grid
+    
+    This patch adds cell value print handlers for the barcode
+    and holdable columns of the Angular staff catalog holdings
+    view.
+    
+    To test
+    -------
+    [1] After applying the patches for this bug, perform a "Download
+        Full CSV" or "Print Full Grid" action on the Holdings View
+        grid in the Angular staff catalog.
+    [2] Verify that the Location/Barcode and Holdable? columns in the
+        output contain appropriate values.
+    
+    Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
+    Signed-off-by: Bill Erickson <berickxx@gmail.com>
+    Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
+
+3      1       Open-ILS/src/eg2/src/app/staff/catalog/record/holdings.component.html
+14     1       Open-ILS/src/eg2/src/app/staff/catalog/record/holdings.component.ts
+
+commit f1acbd0c7cd2932c4859dc54b1165a3af7e07b8b
+Author: Bill Erickson <berickxx@gmail.com>
+Date:   Tue Jul 16 12:10:36 2019 -0400
+
+    LP1835982 Grid cell print values option
+    
+    Allow grid callers to implement functions that return plain text
+    (printable) values for a given cell.  These are primarily useful when a
+    cell is rendered via cellTemplate, which may not produce content which
+    is ideal for printing. Such functions are specified by the cellPrintValue
+    attribute in the eg-grid-column element.
+    
+    Includes sample implementation for the Angular record detail copies
+    grid, which uses several cellTemplate cells.
+    
+    Signed-off-by: Bill Erickson <berickxx@gmail.com>
+    Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
+    Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
+
+2      0       Open-ILS/src/eg2/src/app/share/grid/grid-column.component.ts
+12     4       Open-ILS/src/eg2/src/app/share/grid/grid.ts
+5      4       Open-ILS/src/eg2/src/app/staff/catalog/record/copies.component.html
+16     1       Open-ILS/src/eg2/src/app/staff/catalog/record/copies.component.ts
+
+commit 9d9f1b667c042e2e6ed2d386d9c532016579286f
+Author: Galen Charlton <gmc@equinoxinitiative.org>
+Date:   Fri Dec 20 12:40:34 2019 -0500
+
+    LP#1843599: AngularJS MARC editor once again sets bib source
+    
+    This patch fixes a regression introduced by the patch for bug 1693580
+    that prevent changes to the bib source from being made via the AngularJS
+    MARC editor.
+    
+    To test
+    -------
+    [1] Apply the patch.
+    [2] Create a new bib record and save it with a non-empty source. Verify
+        that the record sets the source as expected.
+    [3] Edit a bib record and change the source. Verify that the new source
+        is retained when the record is saved.
+    [4] Edit an authority record and save it. Verify that it can be updated
+        without error. (Note that authority records do not have sources in
+        the same way that bib records do.)
+    
+    Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
+    Signed-off-by: Rogan Hamby <rhamby@esilibrary.com>
+    Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org>
+
+6      3       Open-ILS/web/js/ui/default/staff/cat/services/marcedit.js
+
+commit 402660642396a9f13ecc6206b1ab2e3db4c4de8a
+Author: Mike Rylander <mrylander@gmail.com>
+Date:   Thu Dec 5 15:12:57 2019 -0500
+
+    LP#1855329: Hold shelf query speed problem
+    
+    In bug 1827250 I suggested Jason Stephenson look at an alternate SQL
+    formulation to solve the original problem. He did, and deemed it faster,
+    so went with that. Unfortunately, on PG 9.6, we're seeing some data sets
+    that decide on a /very/ poor plan for the wide-hold query with the
+    solution as implemented, but the original suggestion from Jason works
+    fine.
+    
+    In the face of evidence controverting my thought that giving PG more
+    options for planning is better in this case, this commit moves to his
+    original query change.
+    
+    Signed-off-by: Mike Rylander <mrylander@gmail.com>
+    Signed-off-by: Jason Stephenson <jason@sigio.com>
+    Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
+
+2      1       Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Publisher/action.pm
+
+commit 640f7aeed4a6a2262921fef2e0cd6f184a0f0415
+Author: Galen Charlton <gmc@equinoxinitiative.org>
+Date:   Fri Jan 3 11:02:29 2020 -0500
+
+    LP#1858138: (follow-up) flesh creator and editor in sandbox's acp grid
+    
+    Doing so ensures that the usrnames are displayed in the respective
+    grid columns rather than the au ID.
+    
+    Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
+    Signed-off-by: Bill Erickson <berickxx@gmail.com>
+
+1      1       Open-ILS/src/eg2/src/app/staff/sandbox/sandbox.component.ts
+
+commit 3e918827f4a92d6dcf87468f8bebc18a904ea371
+Author: Galen Charlton <gmc@equinoxinitiative.org>
+Date:   Fri Jan 3 10:35:56 2020 -0500
+
+    LP#1858138: remove remaining uses of showLinkSelector
+    
+    Now that showLinkSelector is deprecated and does nothing,
+    remove current uses of it.
+    
+    To test
+    -------
+    [1] Apply the patch.
+    [2] Visit Angular admin interfaces that have grids that
+        refer to linked IDL classes, e.g.,
+    
+        - Local Admin -> Carousels (carousel type)
+        - Server Admin -> Weights Association (circ weights and hold
+                                               weights)
+        - Local Admin -> Item Tags (copy tag type)
+        - Acq Admin -> EDI Accounts (provider)
+    
+    [3] Verify that the columns for linked fields display the
+        appropriate selector field rather than the numeric ID.
+    
+    Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
+    
+    Signed-off-by: Bill Erickson <berickxx@gmail.com>
+
+1      1       Open-ILS/src/eg2/src/app/staff/admin/local/admin-carousel.component.html
+0      1       Open-ILS/src/eg2/src/app/staff/sandbox/sandbox.component.html
+1      1       Open-ILS/src/eg2/src/app/staff/share/admin-page/admin-page.component.html
+
+commit 26b4fc98de4222b95c1fcd599903ef7f31343e6f
+Author: Bill Erickson <berickxx@gmail.com>
+Date:   Thu Jan 2 16:31:31 2020 -0500
+
+    LP1858138 Sandbox example of simple grid filtering
+    
+    Adds a trimmed down grid example demonstrating consistent filtering and
+    link selector display for auto and manual fields without requiring any
+    additional grid markup to define basic column behevior.
+    
+    Signed-off-by: Bill Erickson <berickxx@gmail.com>
+    Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
+
+12     0       Open-ILS/src/eg2/src/app/staff/sandbox/sandbox.component.html
+28     0       Open-ILS/src/eg2/src/app/staff/sandbox/sandbox.component.ts
+
+commit 8943923a86a06abb1be82d05e802420f22d38c18
+Author: Bill Erickson <berickxx@gmail.com>
+Date:   Thu Jan 2 16:28:46 2020 -0500
+
+    LP1858138 Link selector consolidation/repairs
+    
+    Signed-off-by: Bill Erickson <berickxx@gmail.com>
+    Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
+
+1      1       Open-ILS/src/eg2/src/app/core/idl.service.ts
+
+commit 0328879b1ae5ff04b1e86550d97ee0709478bb11
+Author: Bill Erickson <berickxx@gmail.com>
+Date:   Thu Jan 2 16:22:34 2020 -0500
+
+    LP1858138 Grid IDL field definition repairs and more
+    
+    * Deprecate showLinkSelectors, since FormatService now performs that
+      logic under the covers.  Includes deprecation console warning.
+    
+    * Fix Grid field IDL class extraction off-by-one error.  The code was
+      stamping the source field with the class of the field's link target
+      instead of the class the field actually belonged to.
+    
+    * Allow for IDL field info extraction from the 'name' attribute when no
+      'path' attribute is defined.
+    
+    * Avoid console errors when clearing combobox values in grid filters.
+    
+    Signed-off-by: Bill Erickson <berickxx@gmail.com>
+    Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
+
+9      2       Open-ILS/src/eg2/src/app/share/grid/grid-filter-control.component.ts
+5      13      Open-ILS/src/eg2/src/app/share/grid/grid.component.ts
+20     20      Open-ILS/src/eg2/src/app/share/grid/grid.ts
+
+commit d24cf32e42fd6d624b69122d8d4c72e8eaba50ae
+Author: Bill Erickson <berickxx@gmail.com>
+Date:   Thu Jan 2 16:17:59 2020 -0500
+
+    LP1858138 Link selector consolidation/repairs
+    
+    Move more of the IDL link class selector extraction logic into the IDL
+    service.
+    
+    Avoid using 'name' as a fall-through selector field when no 'name' field
+    exists on the class.
+    
+    Teach the idl service to log warnings on invalid class and field name
+    combinations in selector lookups.
+    
+    Modify fm-editor and combobox to use the new idl link selector
+    functions.
+    
+    While we're in there, avoid unnecessary API calls from the combobox
+    by preventing async data lookups with a search term of "_CLICK_".
+    
+    Signed-off-by: Bill Erickson <berickxx@gmail.com>
+    Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
+
+24     2       Open-ILS/src/eg2/src/app/core/idl.service.ts
+7      3       Open-ILS/src/eg2/src/app/share/combobox/combobox.component.ts
+3      14      Open-ILS/src/eg2/src/app/share/fm-editor/fm-editor.component.ts
+
+commit f892fc8015233118998b8aa66a2a83a4215f1848
+Author: Bill Erickson <berickxx@gmail.com>
+Date:   Thu Jan 2 15:19:16 2020 -0500
+
+    LP1858138 Action/Trigger IDL selector additions
+    
+    Adds selector field entries for Action/Trigger hook, collector,
+    validator, reactor, and cleanup classes for ease of admin page building.
+    
+    Signed-off-by: Bill Erickson <berickxx@gmail.com>
+    Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
+
+5      5       Open-ILS/examples/fm_IDL.xml
+
+commit 0248527260f8c95157cf945b3e641be4b79e47e3
+Author: Galen Charlton <gmc@equinoxinitiative.org>
+Date:   Fri Dec 20 12:55:16 2019 -0500
+
+    LP#1857156: handle HHH:MM:SS durations in loans
+    
+    This patch fixes a problem where loan durations of the form
+    HHH:MM:SS, where the hours component is longer than 2 digits, could
+    cause checkouts to fail. This sort of duration has been observed
+    in cases where a library wanted a long-term reserves loan that
+    doesn't have the due time bumped up to midnight.
+    
+    To test
+    -------
+    [1] Set up a circulation policy that has a loan duration of 167:59:59.
+    [2] Attempt a checkout that uses that policy. Note that the checkout
+        will fail.
+    [3] Apply the patch and repeat step 2. This time, the checkout should
+        succeed.
+    
+    Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
+    Signed-off-by: Dan Scott <dan@coffeecode.net>
+    Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
+
+1      1       Open-ILS/src/perlmods/lib/OpenILS/Utils/DateTime.pm
+2      1       Open-ILS/src/perlmods/t/14-OpenILS-Utils.t
+
+commit 0125fa23f468469d78eb563273ea3213e9c83258
+Author: Bill Erickson <berickxx@gmail.com>
+Date:   Tue Nov 12 15:13:39 2019 -0500
+
+    LP1858118 Hatch enabled check repairs
+    
+    Teach code asking Hatch whether printing is enabled to properly handle
+    the asynchronous response of the setting which now exists as a
+    workstation setting instead of a localStorage setting.
+    
+    Related, if Hatch is unavailable, use browser printing regardless of the
+    hatch printing workstation setting.
+    
+    Additionally update the "reprint last" handling to store the
+    last_printed value in localStorage instead of attempting to save its
+    value as a workstation setting.
+    
+    Signed-off-by: Bill Erickson <berickxx@gmail.com>
+    Signed-off-by: Dan Scott <dan@coffeecode.net>
+    Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
+
+4      1       Open-ILS/web/js/ui/default/staff/circ/checkin/app.js
+3      1       Open-ILS/web/js/ui/default/staff/circ/patron/checkout.js
+3      0       Open-ILS/web/js/ui/default/staff/services/hatch.js
+20     28      Open-ILS/web/js/ui/default/staff/services/print.js
+
+commit 69619e2df9f15c82af3713e7a11d4862fd04b1f2
+Author: Jane Sandberg <sandbej@linnbenton.edu>
+Date:   Mon Dec 30 14:50:47 2019 -0800
+
+    Docs: Fixing asciidoc syntax so fop doesn't complain about staff client admin manual
+    
+    Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
+
+3      0       docs/admin_initial_setup/designing_your_catalog.adoc
+
+commit 7f8992f44cf8af8e42e9fe9fe240389dd5cea799
+Author: Jane Sandberg <sandbej@linnbenton.edu>
+Date:   Mon Dec 30 14:24:58 2019 -0800
+
+    Docs: LP1767378 follow up: adding manual anchor
+    
+    Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
+
+1      0       docs/admin/librarysettings.adoc
+2      2       docs/admin/lsa-work_log.adoc
+
+commit 598319b54491023ccfaebe0cc5db0cf939f9ca08
+Author: lfloyd <lfloyd@library.in.gov>
+Date:   Mon Dec 23 12:53:04 2019 -0500
+
+    Docs: fixed a spacing issue
+    
+    Signed-off-by: Lynn Floyd <lfloyd@library.in.gov>
+    Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
+
+1      1       docs/admin/lsa-work_log.adoc
+
+commit bec0e597b031e60cbea2fd0b30e5a00a6e2eb035
+Author: lfloyd <lfloyd@library.in.gov>
+Date:   Mon Dec 23 11:25:40 2019 -0500
+
+    DOCS: LP 1767378 Work Log documentation
+    
+    Updated Work Log documentation with new image.
+    Deleted old image files, noted which holds log.
+    
+    Signed-off-by: Lynn Floyd <lfloyd1@library.in.gov>
+    Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
+
+9      15      docs/admin/lsa-work_log.adoc
+-      -       docs/media/Expanding_the_Work_Log1.jpg
+-      -       docs/media/Expanding_the_Work_Log2.jpg
+-      -       docs/media/worklog.png
+ delete mode 100644 docs/media/Expanding_the_Work_Log1.jpg
+ delete mode 100644 docs/media/Expanding_the_Work_Log2.jpg
+ create mode 100644 docs/media/worklog.png
+
+commit 3f741a5e254796fef5cdd8516974f48536b8bc08
+Author: Galen Charlton <gmc@equinoxinitiative.org>
+Date:   Fri Dec 27 16:45:42 2019 -0500
+
+    LP#1855931: (follow-up) make grid filter control cells wrap as well
+    
+    This patch applies "word-wrap: normal" to filter control cells
+    as well, making it more likely that they will stay aligned with
+    the width of their corresponding header cells. This can be tested
+    by adding visible columns to the "Grid with filtering" table in
+    the Angular sandbox (/eg2/en-US/staff/sandbox) and verifying that
+    the column after "Circulating Library" continues to have its
+    filter widget stay aligned with its label.
+    
+    Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
+    Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
+
+2      1       Open-ILS/src/eg2/src/app/share/grid/grid.component.css
+
+commit e503499f59dd36a99aa6fdc4d5c517d11cf49956
+Author: Mike Risher <mrisher@catalyte.io>
+Date:   Tue Dec 10 23:15:35 2019 +0000
+
+    lp1855931 wrap text for wide Angular eg-grid column headers
+    
+    Make column headers text wrap so that you can fully read the header even if
+    it's several words long.  This will help when there are multiple headers
+    that start with the same word and they show up identically.
+    
+    Signed-off-by: Mike Risher <mrisher@catalyte.io>
+    Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
+    Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
+
+19     18      Open-ILS/src/eg2/src/app/share/grid/grid.component.css
+
+commit 12ae55c06e54c1631f1d4d6d5f578940da2fa895
+Author: Galen Charlton <gmc@equinoxinitiative.org>
+Date:   Fri Dec 27 17:50:08 2019 -0500
+
+    LP#1857350: (follow-up) fix lint issue
+    
+    Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
+    Signed-off-by: Bill Erickson <berickxx@gmail.com>
+
+2      2       Open-ILS/src/eg2/src/app/share/org-select/org-select.component.ts
+
+commit b26e29d6ada7b194a1226ba8d6813cdc45aba49d
+Author: Bill Erickson <berickxx@gmail.com>
+Date:   Thu Dec 26 13:18:26 2019 -0500
+
+    LP1857350 Org selector sorts by display value
+    
+    When displaying the org unit selector, sort each set of children by the
+    display label (defaults to shortname).
+    
+    Fixes issues with the org server sortTree function and adds a unit test
+    to test the repaired sort function.
+    
+    Signed-off-by: Bill Erickson <berickxx@gmail.com>
+    Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
+
+2      2       Open-ILS/src/eg2/src/app/core/org.service.ts
+6      0       Open-ILS/src/eg2/src/app/core/org.spec.ts
+11     1       Open-ILS/src/eg2/src/app/share/org-select/org-select.component.ts
+2      0       Open-ILS/src/eg2/src/test_data/eg_mock.js
+
+commit 7fe992abef62c3beb6438b9c7af0801ed175ff69
+Author: Mike Risher <mrisher@catalyte.io>
+Date:   Fri Sep 13 21:53:42 2019 +0000
+
+    lp1843640 Standing Penalty Followup
+    Fix 2 issues:  grid not updating when a new record is created and
+    double clicking a row doesn't edit it
+    
+    Signed-off-by: Mike Risher <mrisher@catalyte.io>
+    
+    Changes to be committed:
+       modified:   Open-ILS/src/eg2/src/app/staff/admin/local/standing-penalty.component.html
+       modified:   Open-ILS/src/eg2/src/app/staff/admin/local/standing-penalty.component.ts
+    
+    Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
+
+3      0       Open-ILS/src/eg2/src/app/staff/admin/local/standing-penalty.component.html
+4      0       Open-ILS/src/eg2/src/app/staff/admin/local/standing-penalty.component.ts
+
+commit 72b080f331cfd5c7701209a6dc8819e4842cd616
+Author: Bill Erickson <berickxx@gmail.com>
+Date:   Fri Oct 18 13:47:17 2019 -0400
+
+    LP1848778 Use consistent MARC breaker delimiter
+    
+    Use the '$' delimiter in the read-only MARC breaker view for
+    consistency with the flat text MARC editor to easy copy/paste from one
+    to the other.
+    
+    To test
+    -------
+    [1] Apply the patch.
+    [2] Set up two records in a record bucket and initiate a merge. Note
+        that when you select a lead record and choose to edit it in
+        flat text mode, you can copy and paste fields from the subordinate
+        record display without having to change the subfield delimiter
+        character.
+    [3] Mark a record for overlay, perform a Z39.50 search, then select
+        a hit and choose the overlay action. Note that you can copy and
+        paste fields from the record to overlay when editing the incoming
+        record using the flat text editor.
+    
+    Signed-off-by: Bill Erickson <berickxx@gmail.com>
+    Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
+
+3      0       Open-ILS/web/js/ui/default/staff/cat/services/record.js
+
+commit 6f861ba9498f2c6311c4f5c5fa041d506d1e5c8c
+Author: Dan Briem <dbriem@wlsmail.org>
+Date:   Thu Aug 8 23:45:40 2019 -0400
+
+    LP#1780283 Checking One Bill Checks Them All
+    
+    Under Patron->Bills->History if Bill # isn't visible for the Transactions
+    grid or Payment ID isn't visible for Payments grid, rows can't be selected
+    individually. This adds the required attribute to those field directives.
+    
+    1. Under a patron account with multiple bills, go to Bills->History
+    2. Remove Bill # from the Transactions grid
+    3. Try to select an individual row (note all rows are selected)
+    4. Apply patch and repeat steps 1-3 (note rows are selected individually)
+    
+    Signed-off-by: Dan Briem <dbriem@wlsmail.org>
+    Signed-off-by: Josh Stompro <stompro@stompro.org>
+    Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
+
+1      1       Open-ILS/src/templates/staff/circ/patron/t_bill_history_payments.tt2
+1      1       Open-ILS/src/templates/staff/circ/patron/t_bill_history_xacts.tt2
+
+commit bd8f92a1852f2e5ab20fbe3a25511da6b4a6f508
+Author: Katlyn Beck <kbeck@catalyte.io>
+Date:   Mon Nov 26 21:23:48 2018 +0000
+
+    lp1712644 Prevent check out due date in past
+    
+    - Prevents selecting past due date when checking out an item
+    - Prevents saving a due date with hatch when input date is invalid
+    
+    Signed-off-by: Katlyn Beck <kbeck@catalyte.io>
+    Signed-off-by: Kyle Huckins <khuckins@catalyte.io>
+    Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org>
+    Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
+
+5      2       Open-ILS/src/templates/staff/circ/patron/t_checkout.tt2
+10     3       Open-ILS/web/js/ui/default/staff/circ/patron/checkout.js
+6      7       Open-ILS/web/js/ui/default/staff/services/ui.js
+
+commit 21616b507941b9b35ff092045f10ea0d5d7144ed
+Author: Galen Charlton <gmc@equinoxinitiative.org>
+Date:   Fri Dec 27 13:21:15 2019 -0500
+
+    LP#1857710: fix Angular client whitescreen on Firefox
+    
+    Work done for LP#1830391 added an instance of a Javascript
+    regexp replace using the dotAll ("/s") flag, but as of the moment
+    Firefox treats that flag as a fatal syntax error, breaking the
+    Angular staff client.
+    
+    To test
+    -------
+    [1] Attempt to log in the Angular staff client with Firefox. Note
+        that you get a whitescreen with the following in the browser
+        console:
+    
+        SyntaxError: invalid regular expression flag s
+    [2] Apply the patch and repeat step 1. This time, the Angular
+        staff client should work normally.
+    [3] Verify that the Angular unit tests pass.
+    
+    Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
+    Signed-off-by: Jason Boyer <JBoyer@eoli.info>
+
+15     0       Open-ILS/src/eg2/src/app/share/util/htmltotxt.service.spec.ts
+5      1       Open-ILS/src/eg2/src/app/share/util/htmltotxt.service.ts
+ create mode 100644 Open-ILS/src/eg2/src/app/share/util/htmltotxt.service.spec.ts
+
+commit 23e7b33b1bd9aec5d3e8ce64173ce543a30e896f
+Author: Galen Charlton <gmc@equinoxinitiative.org>
+Date:   Fri Dec 27 11:04:32 2019 -0500
+
+    LP#1827942: follow-up to fix a couple issues
+    
+    [1] Sets a default value for the modal options for dialogs such
+        as ProgressDialog that do not supply any value for the
+        options parameter; otherwise, progress dialogs would not
+        appear at all.
+    [2] Fix lint warnings.
+    
+    Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
+
+4      2       Open-ILS/src/eg2/src/app/share/dialog/dialog.component.ts
+
+commit d377d9e3d96229de374f8066b99406cd01aa4ba5
+Author: Zavier Banks <zbanks@catalyte.io>
+Date:   Tue Sep 17 20:59:15 2019 +0000
+
+    lp1827942: prevent clicking outside an Angular modal from closing it
+    
+    I added a new property to the "options" object inside the "open"
+    function, which resides in the dialog.component.ts. The static string
+    inside the backdrop property makes the form stay, even if the backdrop
+    is clicked.
+    
+    Signed-off-by: Zavier Banks <zbanks@catalyte.io>
+    Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
+    Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
+
+1      0       Open-ILS/src/eg2/src/app/share/dialog/dialog.component.ts
+
+commit 4b7914768f3149249e1d86152c09df3c98a587dd
+Author: Bill Erickson <berickxx@gmail.com>
+Date:   Fri Dec 13 14:27:16 2019 -0500
+
+    LP1830391 Stamping DB upgrate (hatch omnibus)
+    
+    Signed-off-by: Bill Erickson <berickxx@gmail.com>
+
+1      1       Open-ILS/src/sql/Pg/002.schema.config.sql
+53     0       Open-ILS/src/sql/Pg/upgrade/1197.data.hatch-enable-print.sql
+0      53      Open-ILS/src/sql/Pg/upgrade/XXXX.data.hatch-enable-print.sql
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/1197.data.hatch-enable-print.sql
+ delete mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.data.hatch-enable-print.sql
+
+commit c2fdba8260e1ab7670a51a4e95a576e886095931
+Author: Bill Erickson <berickxx@gmail.com>
+Date:   Fri Dec 13 14:13:40 2019 -0500
+
+    LP1830391 Angular test spec updates for Hatch store updates
+    
+    The store service now leverages Hatch for workstation storage.  Update
+    unit tests which load the store service to also load and propagate the
+    Hatch service.
+    
+    Signed-off-by: Bill Erickson <berickxx@gmail.com>
+
+4      1       Open-ILS/src/eg2/src/app/core/format.spec.ts
+4      1       Open-ILS/src/eg2/src/app/core/org.spec.ts
+4      1       Open-ILS/src/eg2/src/app/core/store.spec.ts
+4      1       Open-ILS/src/eg2/src/app/share/validators/patron_barcode_validator.directive.spec.ts
+
+commit 45dbb43574d2bfa5506064735f7eac8131e778ec
+Author: Bill Erickson <berickxx@gmail.com>
+Date:   Thu Dec 12 16:47:31 2019 -0500
+
+    LP1830391 Warn on dupe workstation settings
+    
+    Check for duplication workstations (by name and workstation) before
+    applying the UNIQUE constraint on actor.workstation_setting.  If found,
+    raise a notice to the user to provide suggestions.
+    
+    Signed-off-by: Bill Erickson <berickxx@gmail.com>
+    Signed-off-by: Jason Boyer <JBoyer@eoli.info>
+
+34     1       Open-ILS/src/sql/Pg/upgrade/XXXX.data.hatch-enable-print.sql
+
+commit 12468d0e0212027d8772583d434760643dfdb04d
+Author: Bill Erickson <berickxx@gmail.com>
+Date:   Mon Oct 28 13:53:46 2019 -0400
+
+    LP1830391 Angular Hatch enabled flag lookup repair
+    
+    Fix the Angular Hatch enabled setting lookup to pull the value from the
+    workstation setting instead of localStorage.  This required shuffling a
+    few things around to support the asynchronicity.
+    
+    Signed-off-by: Bill Erickson <berickxx@gmail.com>
+    Signed-off-by: Jason Boyer <JBoyer@eoli.info>
+
+4      3       Open-ILS/src/eg2/src/app/share/print/print.component.html
+44     24      Open-ILS/src/eg2/src/app/share/print/print.component.ts
+
+commit 032dc3b1fbfa1ccf93238948dd73d54b6baadd1c
+Author: Bill Erickson <berickxx@gmail.com>
+Date:   Mon Aug 5 10:44:55 2019 -0400
+
+    LP1830391 Hatch core mod import/export repairs
+    
+    No need to import/export HatchService from the base common module since
+    it's now a core service which is exported automatically to root.
+    
+    Includes minor lint repair.
+    
+    Signed-off-by: Bill Erickson <berickxx@gmail.com>
+    Signed-off-by: Jason Boyer <JBoyer@eoli.info>
+
+0      2       Open-ILS/src/eg2/src/app/common.module.ts
+6      6       Open-ILS/src/eg2/src/app/share/print/print.component.ts
+
+commit eed52b506f4cdf3a607f12b2f122ed9844710103
+Author: Bill Erickson <berickxx@gmail.com>
+Date:   Thu May 23 18:02:41 2019 -0400
+
+    LP1830391 Workstation settings unique constraint
+    
+    Signed-off-by: Bill Erickson <berickxx@gmail.com>
+    Signed-off-by: Jason Boyer <JBoyer@eoli.info>
+
+2      1       Open-ILS/src/sql/Pg/005.schema.actors.sql
+2      0       Open-ILS/src/sql/Pg/upgrade/XXXX.data.hatch-enable-print.sql
+
+commit e01b4c822e317ca4da0ca74336d480dc5a57a3c5
+Author: Bill Erickson <berickxx@gmail.com>
+Date:   Fri Apr 12 15:47:24 2019 -0400
+
+    LP1824391 Hatch File Writer release notes
+    
+    Signed-off-by: Bill Erickson <berickxx@gmail.com>
+    Signed-off-by: Jason Boyer <JBoyer@eoli.info>
+
+11     0       docs/RELEASE_NOTES_NEXT/Client/hatch-file-writer.adoc
+ create mode 100644 docs/RELEASE_NOTES_NEXT/Client/hatch-file-writer.adoc
+
+commit 520139cb60d90dc5fea8529ec637a846a83a7790
+Author: Bill Erickson <berickxx@gmail.com>
+Date:   Mon Apr 15 11:34:21 2019 -0400
+
+    LP1824391 Hatch print-to-file Angular edition
+    
+    Adds support for the Angular hatch service for sending 'bare' text/plain
+    print-to-file requests.
+    
+    Signed-off-by: Bill Erickson <berickxx@gmail.com>
+    Signed-off-by: Jason Boyer <JBoyer@eoli.info>
+
+1      1       Open-ILS/src/eg2/src/app/app.component.ts
+2      0       Open-ILS/src/eg2/src/app/common.module.ts
+30     7       Open-ILS/src/eg2/src/app/share/print/print.component.ts
+75     0       Open-ILS/src/eg2/src/app/share/util/htmltotxt.service.ts
+1      0       Open-ILS/src/eg2/src/app/staff/sandbox/sandbox.component.html
+6      1       Open-ILS/src/eg2/src/app/staff/sandbox/sandbox.component.ts
+4      0       Open-ILS/src/eg2/src/app/staff/staff.component.html
+ create mode 100644 Open-ILS/src/eg2/src/app/share/util/htmltotxt.service.ts
+
+commit 436d7a1be877684b3ac43b09ac5cb52a6dbf87b3
+Author: Bill Erickson <berickxx@gmail.com>
+Date:   Fri Apr 12 12:52:09 2019 -0400
+
+    LP1824391 Hatch File Writer print support
+    
+    Adds support for translating receipt data to plain text and writing the
+    output to a file instead of sending it to a printer.
+    
+    Adds a new stock printer named "Hatch File Writer" to the print
+    configuration interface.
+    
+    Signed-off-by: Bill Erickson <berickxx@gmail.com>
+    Signed-off-by: Jason Boyer <JBoyer@eoli.info>
+
+21     5       Open-ILS/src/templates/staff/admin/workstation/t_print_config.tt2
+19     2       Open-ILS/web/js/ui/default/staff/admin/workstation/app.js
+65     1       Open-ILS/web/js/ui/default/staff/services/hatch.js
+7      5       Open-ILS/web/js/ui/default/staff/services/print.js
+
+commit 085ebb527ee2eff750e273dcb30f86ef4825966d
+Author: Bill Erickson <berickxx@gmail.com>
+Date:   Mon Apr 22 14:02:05 2019 -0700
+
+    LP1825891 Use Hatch 'hostname' for workstation reg.
+    
+    Populate the workstation name with the hostname of the PC when
+    registring a new workstation for Hatch-enabled workstations.
+    
+    Note the code gracefully returns null if Hatch returns a 404 (not found)
+    or Hatch is not active.
+    
+    Updates the AngJS and Angular workstation admin pages to load the
+    hostname value when possible.
+    
+    Signed-off-by: Bill Erickson <berickxx@gmail.com>
+    Signed-off-by: Jason Boyer <JBoyer@eoli.info>
+
+9      0       Open-ILS/src/eg2/src/app/core/hatch.service.ts
+12     6       Open-ILS/src/eg2/src/app/staff/admin/workstation/workstations/workstations.component.ts
+4      0       Open-ILS/web/js/ui/default/staff/admin/workstation/app.js
+13     0       Open-ILS/web/js/ui/default/staff/services/hatch.js
+
+commit 63438e048405301e613d4287c79a49f296fd8100
+Author: Bill Erickson <berickxx@gmail.com>
+Date:   Tue Apr 23 07:57:31 2019 -0700
+
+    LP1825896 Store workstations in Hatch when available
+    
+    When Hatch is enabled, use Hatch for storing workstation registration
+    information.
+    
+    If workstations are found in localStorage, they are merged into the
+    collection of workstations stored in hatch and removed from
+    localStorage.
+    
+    Include DB udpate to add workstation setting 'eg.hatch.enable.printing'
+    so that it may live on the server.
+    
+    Signed-off-by: Bill Erickson <berickxx@gmail.com>
+    Signed-off-by: Jason Boyer <JBoyer@eoli.info>
+
+12     12      Open-ILS/src/eg2/src/app/core/auth.service.ts
+124    0       Open-ILS/src/eg2/src/app/core/hatch.service.ts
+114    1       Open-ILS/src/eg2/src/app/core/store.service.ts
+0      109     Open-ILS/src/eg2/src/app/share/print/hatch.service.ts
+7      7       Open-ILS/src/eg2/src/app/share/print/print.component.ts
+16     11      Open-ILS/src/eg2/src/app/staff/admin/workstation/workstations/workstations.component.ts
+8      4       Open-ILS/src/eg2/src/app/staff/login.component.ts
+4      0       Open-ILS/src/eg2/src/app/staff/resolver.service.ts
+11     0       Open-ILS/src/sql/Pg/950.data.seed-values.sql
+18     0       Open-ILS/src/sql/Pg/upgrade/XXXX.data.hatch-enable-print.sql
+18     10      Open-ILS/web/js/ui/default/staff/admin/workstation/app.js
+2      2       Open-ILS/web/js/ui/default/staff/app.js
+2      2       Open-ILS/web/js/ui/default/staff/offline.js
+159    60      Open-ILS/web/js/ui/default/staff/services/hatch.js
+ create mode 100644 Open-ILS/src/eg2/src/app/core/hatch.service.ts
+ delete mode 100644 Open-ILS/src/eg2/src/app/share/print/hatch.service.ts
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.data.hatch-enable-print.sql
+
+commit cbbffe290091043b2d6a4fa93c281a1a65e9166a
+Author: Remington Steed <rjs7@calvin.edu>
+Date:   Fri Dec 13 08:22:17 2019 -0500
+
+    Docs: Fix AsciiDoc syntax error in glossary
+    
+    This commit fixes a minor syntax problem that causes an AsciiDoc build
+    error.
+    
+    Signed-off-by: Remington Steed <rjs7@calvin.edu>
+
+2      2       docs/glossary.adoc
+
+commit e5c3579cccae4c4a74f5a2bdd8942711cc7dbeda
+Author: lfloyd <lfloyd@library.in.gov>
+Date:   Fri Dec 6 14:26:35 2019 -0500
+
+    Docs: Added linkages, and additonal terms.
+    
+    Signed-off-by: Andrea Buntz Neiman <abneiman@equinoxinitiative.org>
+
+43     17      docs/glossary.adoc
+
+commit 01a1117ed60d33e1b3b60e8d2d2e3198051eba67
+Author: Lynn <lfloyd@library.in.gov>
+Date:   Wed Nov 27 12:18:01 2019 -0500
+
+    Docs: Glossary Added
+    
+    Signed-off-by: Andrea Buntz Neiman <abneiman@equinoxinitiative.org>
+
+225    0       docs/glossary.adoc
+5      0       docs/root.adoc
+1      1       docs/shared/attributions.adoc
+ create mode 100644 docs/glossary.adoc
+
+commit 50f1e861263a8f4f0394116bc979098d926f2408
+Author: Dan Briem <dbriem@wlsmail.org>
+Date:   Wed Aug 7 19:13:21 2019 -0400
+
+    LP#1803406 Due date box in check out has display issues at wider resolutions
+    
+    Adjusted bootstrap .col classes so the specific due date input displays the
+    full date and prevents the barcode input group from collapsing at < 1179px.
+    
+    Signed-off-by: Dan Briem <dbriem@wlsmail.org>
+    Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org>
+    Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
+
+4      4       Open-ILS/src/templates/staff/circ/patron/t_checkout.tt2
+
+commit 93976c74fa188d73606173ba510c384c994c425b
+Author: Bill Erickson <berickxx@gmail.com>
+Date:   Thu Dec 5 10:08:48 2019 -0500
+
+    LP1830923 Replace some pesky tabs
+    
+    Signed-off-by: Bill Erickson <berickxx@gmail.com>
+    Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
+
+16     16      Open-ILS/src/eg2/src/app/staff/cat/vandelay/queued-record.component.html
+
+commit bef2ededd4c0e57fe1325a13d2de9dacc2149854
+Author: Galen Charlton <gmc@equinoxinitiative.org>
+Date:   Wed Dec 4 17:41:38 2019 -0500
+
+    LP#1830923: do not show Enhanced MARC editor tab when editing in-place
+    
+    As the the AngularJS side does not currently offer a path
+    for directly editing a queued record, the enhancd editor tab
+    serves no purpose in this context.
+    
+    Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
+    Signed-off-by: Bill Erickson <berickxx@gmail.com>
+    Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
+
+1      1       Open-ILS/src/eg2/src/app/staff/share/marc-edit/editor.component.html
+
+commit 00ca24c8920b077f62ef36d0581c78ac1f49094c
+Author: Galen Charlton <gmc@equinoxinitiative.org>
+Date:   Wed Dec 4 17:34:45 2019 -0500
+
+    LP#1830923: add support for editing queued authority records
+    
+    Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
+    Signed-off-by: Bill Erickson <berickxx@gmail.com>
+    Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
+
+6      2       Open-ILS/src/eg2/src/app/staff/cat/vandelay/queued-record.component.html
+4      2       Open-ILS/src/eg2/src/app/staff/cat/vandelay/queued-record.component.ts
+
+commit 3db73a2ab3ca0d90c436f1e3b263ff2b7c51ef04
+Author: Bill Erickson <berickxx@gmail.com>
+Date:   Thu Oct 17 17:59:08 2019 -0400
+
+    LP1830923 Vandelay queued record editing
+    
+    This patch adds MARC record editing the the Angular
+    Vandelay interface using the Angular MARC editor
+    component, which as of the date of this patch offers
+    a flat-text mode.
+    
+    Signed-off-by: Bill Erickson <berickxx@gmail.com>
+    Signed-off-by: Remington Steed <rjs7@calvin.edu>
+    Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
+
+9      0       Open-ILS/src/eg2/src/app/staff/cat/vandelay/queued-record.component.html
+24     1       Open-ILS/src/eg2/src/app/staff/cat/vandelay/queued-record.component.ts
+2      0       Open-ILS/src/eg2/src/app/staff/cat/vandelay/vandelay.module.ts
+
+commit e458e609445e18f9558b181ef0469839c8a33f93
+Author: Bill Erickson <berickxx@gmail.com>
+Date:   Thu Oct 17 17:57:10 2019 -0400
+
+    LP1830923 Marc edit in-place additions
+    
+    Improve Angular MARC editor for in-place editing.
+    
+    * Make inPlaceMode a proper @Input.
+    * Allow the caller to pass in the bib source
+    * The recordSaved event now reports both the MARC XML and the currently
+      selected bib source.
+    
+    Signed-off-by: Bill Erickson <berickxx@gmail.com>
+    Signed-off-by: Remington Steed <rjs7@calvin.edu>
+    Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
+
+2      2       Open-ILS/src/eg2/src/app/staff/share/marc-edit/editor.component.html
+30     11      Open-ILS/src/eg2/src/app/staff/share/marc-edit/editor.component.ts
+
+commit d9f9938456af1e0065112c154ae30d177012e533
+Author: Bill Erickson <berickxx@gmail.com>
+Date:   Thu Oct 17 17:44:40 2019 -0400
+
+    LP1830923 Combobox LP1844812 regression fix
+    
+    Allow a combobox to start with an empty array that is later filled by
+    the caller.  This was broken due to changes which prevented the combobox
+    from seeing an empty/stub array as being different from its
+    initialization array, thus ignoring empty array as a duplicate.
+    
+    Signed-off-by: Bill Erickson <berickxx@gmail.com>
+    Signed-off-by: Remington Steed <rjs7@calvin.edu>
+    Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
+
+8      2       Open-ILS/src/eg2/src/app/share/combobox/combobox.component.ts
+
+commit 56842b5af1ca749088b31b403b58e39f1e46a2f4
+Author: Andrea Buntz Neiman <abneiman@equinoxinitiative.org>
+Date:   Fri Dec 6 09:50:10 2019 -0500
+
+    Docs: corrected image file reference in carousels.adoc
+    
+    Signed-off-by: Andrea Buntz Neiman <abneiman@equinoxinitiative.org>
+
+1      1       docs/admin_initial_setup/carousels.adoc
+
+commit 87bdb75eda4c8e6717d58b8964ecddc62986a3a1
+Author: Andrea Buntz Neiman <abneiman@equinoxinitiative.org>
+Date:   Thu Dec 5 16:07:20 2019 -0500
+
+    Docs: follow up commit to fix include error
+    
+    Signed-off-by: Andrea Buntz Neiman <abneiman@equinoxinitiative.org>
+
+1      3       docs/admin_initial_setup/designing_your_catalog.adoc
+
+commit f86c6ceab5eef9217809b7197654632cd0de74ab
+Author: Felicia Beaudry <felicia.beaudry@equinoxinitiative.org>
+Date:   Thu Dec 5 15:35:50 2019 -0500
+
+    Docs: adding Carousels docs and screenshots
+    
+    Signed-off-by: Andrea Buntz Neiman <abneiman@equinoxinitiative.org>
+
+263    0       docs/admin_initial_setup/carousels.adoc
+3      0       docs/admin_initial_setup/designing_your_catalog.adoc
+-      -       docs/media/carousel1.png
+-      -       docs/media/carousel2.png
+-      -       docs/media/carousel3.png
+-      -       docs/media/carousel4.png
+-      -       docs/media/carousel5.png
+-      -       docs/media/carousel6.png
+-      -       docs/media/carousel7.png
+-      -       docs/media/carousel8.png
+2      0       docs/root_staff_client_admin.adoc
+ create mode 100644 docs/admin_initial_setup/carousels.adoc
+ create mode 100644 docs/media/carousel1.png
+ create mode 100644 docs/media/carousel2.png
+ create mode 100644 docs/media/carousel3.png
+ create mode 100644 docs/media/carousel4.png
+ create mode 100644 docs/media/carousel5.png
+ create mode 100644 docs/media/carousel6.png
+ create mode 100644 docs/media/carousel7.png
+ create mode 100644 docs/media/carousel8.png
+
+commit c8fe0607192688421c796d3c1590189533659ed4
+Author: Jane Sandberg <sandbej@linnbenton.edu>
+Date:   Tue Jul 30 13:54:10 2019 -0700
+
+    LP1607922: Receiving items on page 2 of search results
+    
+    Previously, if a user selected a bunch of line items on two consecutive
+    pages of acq search results, and tried to receive items from the second
+    page, the operation would fail.
+    
+    This issue was caused by Evergreen caching IDs of selected line items
+    from page 1, but not caching the data that went along with them.
+    
+    To test:
+    
+    1) Go to Acquisitions > General Search
+    2) In the Select Search Field dropdown, choose LI - State.
+    3) Set the state to on-order.
+    4) Click Search.
+    5) Click the check mark to select all results on the first page.
+    6) Click the Next button.
+    7) Click the check mark to select all results on the second page.
+    8) On the top --Actions-- menu, select Mark Selected Line Items as
+    Received.
+    9) Note that the interface does nothing, and that there is a TypeError
+    error message in the browser console.
+    10) Apply this commit.
+    11) Refresh your page completely and repeat steps 1-8.
+    12) Note that the items on the second page are received.  Since they no
+    longer meet the search criteria, Evergreen gives you the next page of
+    results.
+    
+    For further testing, see similar test steps by John Yorio at
+    https://bugs.launchpad.net/evergreen/+bug/1607922.
+    
+    Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
+    Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
+
+1      1       Open-ILS/web/js/ui/default/acq/common/li_table_pager.js
+
+commit 8844d3265eb661c358c65b0eef57acc1ea7f3416
+Author: Bill Erickson <berickxx@gmail.com>
+Date:   Fri Nov 8 10:37:21 2019 -0500
+
+    LP1851831 Group perm editor null descriptions OK
+    
+    Avoid assuming a permission description value is non-NULL in the
+    permission group editor interfaces since values are not required in the
+    database.
+    
+    Fixes: ERROR TypeError: "l.description(...) is null"
+    
+    Similarly repair the permission list title attributes so they display
+    the permission code (instead of an empty string) for titles when no
+    description is available.
+    
+    Signed-off-by: Bill Erickson <berickxx@gmail.com>
+    Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
+
+1      1       Open-ILS/src/eg2/src/app/staff/admin/server/perm-group-map-dialog.component.ts
+4      1       Open-ILS/src/eg2/src/app/staff/admin/server/perm-group-tree.component.html
+4      2       Open-ILS/src/eg2/src/app/staff/admin/server/perm-group-tree.component.ts
+
+commit 2969e2f41c72c2369ae70cb7092fcac5188e968a
+Author: Galen Charlton <gmc@equinoxinitiative.org>
+Date:   Wed Nov 6 11:35:58 2019 -0500
+
+    LP#1851524: fix adding a bucket when saving a new carousel
+    
+    This patch fixes a regression where saving a new carousel
+    would not result in its bucket being created due to the
+    post-save callback never getting invoked.
+    
+    This patch does not fix any carousels that do not have
+    buckets due to this bug. Because such carousels will
+    not function anyway, they should be deleted and
+    recreated by the local admin.
+    
+    To test
+    -------
+    [1] Create a new carousel in local adminstration. Open it
+        in the edit modal again and note that no record bucket
+        is linked to it.
+    [2] Apply the patch and repeat step 1. This time, the
+        bucket should be created.
+    
+    Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
+    
+    Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
+
+1      1       Open-ILS/src/eg2/src/app/staff/admin/local/admin-carousel.component.html
+
+commit 633e987bf2d733af5e2cbc3b2f0f1906e18754a4
+Author: Kyle Huckins <khuckins@catalyte.io>
+Date:   Fri Jul 5 14:36:05 2019 +0000
+
+    lp1437103 Allow Receipts to Print when Suppressing Popups
+    
+    - Move suppress_popup check further along and allow transit receipts
+    to properly print when popups suppressed.
+    
+    Signed-off-by: Kyle Huckins <khuckins@catalyte.io>
+    
+     Changes to be committed:
+       modified:   Open-ILS/web/js/ui/default/staff/circ/services/circ.js
+    
+    Signed-off-by: Bill Erickson <berickxx@gmail.com>
+
+1      2       Open-ILS/web/js/ui/default/staff/circ/services/circ.js
+
+commit 1678790a4965c7ee756b620ff5b4c262cbfa1831
+Author: Kyle Huckins <khuckins@catalyte.io>
+Date:   Wed Jun 26 15:36:09 2019 +0000
+
+    lp1437103 Suppress Popups on Patron Items Out Checkin
+    
+    - Make Patron Items Out UI respect Suppress Popups setting.
+    
+    Signed-off-by: Kyle Huckins <khuckins@catalyte.io>
+    
+     Changes to be committed:
+       modified:   Open-ILS/web/js/ui/default/staff/circ/patron/items_out.js
+    
+    Signed-off-by: Bill Erickson <berickxx@gmail.com>
+
+30     19      Open-ILS/web/js/ui/default/staff/circ/patron/items_out.js
+
+commit 1c251ecdd5b1a4fce5a506c4d33b5921e3e59a4e
+Author: Kyle Huckins <khuckins@catalyte.io>
+Date:   Tue Jun 25 16:47:04 2019 +0000
+
+    lp1437103 - Suppress Popups based on OU Setting
+    
+    - Allow OU setting to suppress checkin popups to properly take effect.
+    
+    Signed-off-by: Kyle Huckins <khuckins@catalyte.io>
+    
+     Changes to be committed:
+       modified:   Open-ILS/web/js/ui/default/staff/circ/services/circ.js
+    
+    Signed-off-by: Bill Erickson <berickxx@gmail.com>
+
+6      4       Open-ILS/web/js/ui/default/staff/circ/services/circ.js
+
+commit fee6598129436b834ddf893f6d83bc7dcf2c768e
+Author: Dan Wells <dbw2@calvin.edu>
+Date:   Tue Oct 29 15:40:31 2019 -0400
+
+    Forward-port 3.4.1 upgrade script
+    
+    Signed-off-by: Dan Wells <dbw2@calvin.edu>
+
+168    0       Open-ILS/src/sql/Pg/version-upgrade/3.4.0-3.4.1-upgrade-db.sql
+ create mode 100644 Open-ILS/src/sql/Pg/version-upgrade/3.4.0-3.4.1-upgrade-db.sql
index d750216..7cdfe74 100644 (file)
@@ -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-2";
 }
 
 __PACKAGE__->register_method(
index 36b5d08..0292374 100644 (file)
@@ -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 ('1197', :eg_version); -- berick/jboyer
+INSERT INTO config.upgrade_log (version, applied_to) VALUES ('3.4.2', :eg_version);
 
 CREATE TABLE config.bib_source (
        id              SERIAL  PRIMARY KEY,
diff --git a/Open-ILS/src/sql/Pg/version-upgrade/3.4.1-3.4.2-upgrade-db.sql b/Open-ILS/src/sql/Pg/version-upgrade/3.4.1-3.4.2-upgrade-db.sql
new file mode 100644 (file)
index 0000000..a4e2798
--- /dev/null
@@ -0,0 +1,60 @@
+--Upgrade Script for 3.4.1 to 3.4.2
+\set eg_version '''3.4.2'''
+BEGIN;
+INSERT INTO config.upgrade_log (version, applied_to) VALUES ('3.4.2', :eg_version);
+
+SELECT evergreen.upgrade_deps_block_check('1197', :eg_version);
+
+INSERT INTO config.workstation_setting_type (name, grp, datatype, label)
+VALUES (
+    'eg.hatch.enable.printing', 'gui', 'bool',
+    oils_i18n_gettext(
+        'eg.hatch.enable.printing',
+        'Use Hatch for printing',
+        'cwst', 'label'
+    )
+);
+
+
+DO $SQL$
+BEGIN
+
+    PERFORM COUNT(*), workstation, name 
+    FROM actor.workstation_setting GROUP BY 2, 3 HAVING COUNT(*) > 1;
+
+    IF FOUND THEN
+
+        RAISE NOTICE $NOTICE$
+
+---
+The actor.workstation_setting table contains duplicate rows.  The duplicates 
+should be removed before applying a new UNIQUE constraint.  To find the rows, 
+execute the following SQL:
+
+SELECT COUNT(*), workstation, name FROM actor.workstation_setting 
+    GROUP BY 2, 3 HAVING COUNT(*) > 1;  
+    
+Once the duplicates are cleared, execute the following SQL: 
+
+ALTER TABLE actor.workstation_setting 
+    ADD CONSTRAINT ws_once_per_key UNIQUE (workstation, name);
+---
+
+$NOTICE$;
+
+    ELSE
+
+        ALTER TABLE actor.workstation_setting
+            ADD CONSTRAINT ws_once_per_key UNIQUE (workstation, name);
+    END IF;
+
+END;
+$SQL$;
+
+
+
+COMMIT;
+
+-- Update auditor tables to catch changes to source tables.
+--   Can be removed/skipped if there were no schema changes.
+SELECT auditor.update_auditors();
index b2b87b6..0d338ef 100644 (file)
@@ -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_2</p>
 <h2>What is Evergreen?</h2>
 <blockquote>
 <p>
index 0613a13..1440191 100644 (file)
@@ -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_2");
 pref("open-ils.repository.author","$Author$");
 pref("open-ils.repository.revision","$Revision$");
 pref("open-ils.repository.date","$Date$");
index a954357..7f20eae 100644 (file)
@@ -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 (symlink)
index 1ee2103e6f619066236accc1c094d89f7ab3ff97..0000000000000000000000000000000000000000
--- 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 (file)
index 0000000000000000000000000000000000000000..e2a93a9c2a1b37d1c75fef764c915064bc985191
--- /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.
index dacb5a3..7cc7ceb 100644 (file)
@@ -20,8 +20,8 @@
 
 export PATH=${PATH}:/usr/sbin
 AC_PREREQ(2.61)
-AC_INIT(Open-ILS, trunk, open-ils-dev@list.georgialibraries.org)
-AM_INIT_AUTOMAKE([OpenILS], [trunk])
+AC_INIT(Open-ILS, 3.4.2, open-ils-dev@list.georgialibraries.org)
+AM_INIT_AUTOMAKE([OpenILS], [3.4.2])
 AC_REVISION($Revision: 0.1 $)
 AC_CONFIG_SRCDIR([configure.ac])
 AC_CONFIG_SUBDIRS([Open-ILS/xul/staff_client/external/libmar])
index 32388de..9c3dc21 100644 (file)
@@ -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.2 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.2:
 +
 [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.2.tar.gz
+tar xzf Evergreen-ILS-3.4.2.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.2
 ---------------------------------------------
 +
 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.2
 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.2
 make install
 ------------------------------------------------------------
 +
@@ -102,7 +102,7 @@ can supply `STAFF_CLIENT_STAMP` during the `make install` step like this:
 +
 [source, bash]
 ------------------------------------------------------------
-cd /home/opensrf/Evergreen-ILS-3.X.X
+cd /home/opensrf/Evergreen-ILS-3.4.2
 make STAFF_CLIENT_STAMP_ID=rel_3_x_x install
 ------------------------------------------------------------
 +
@@ -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.2
 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.2/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.2/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.2/Open-ILS/examples/apache/eg.conf /etc/apache2/sites-available/eg.conf
 ----------------------------------------------------------
 
 Upgrade the Evergreen database schema
@@ -235,8 +235,8 @@ 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.2/Open-ILS/src/sql/Pg
+psql -U evergreen -h localhost -f version-upgrade/3.4.1-3.4.2-upgrade-db.sql evergreen
 ----------------------------------------------------------
 
 [TIP]