Releases: caltechlibrary/dibs
Release 0.7.0
This release adds a couple of utility programs (including one for updating DIBS's stored item metadata with the latest values from the LSP), fixes some minor bugs, updates the versions of some dependencies to deal with Dependabot security udpates, and adds a little bit more documentation. There are minor changes to two template files; if you have an existing DIBS installation, a git pull should hopefully merge the changes without trouble. There are no changes to the database data object model.
What's new
- New utility,
update-item-data
, to update the DIBS database items with current values from the corresponding LSP records. This is particularly useful for updating the item page URLs when FOLIO changes the permalink scheme. - New utility,
test-folio-token
, for testing whether the FOLIO credentials are valid. This is meant to be used in a cron job for daily testing that the FOLIO API token being used by the DIBS server is still valid. - New README file in the
admin
subdirectory, to describe the various utility programs in that directory. - New file,
dev/requirements-dev.txt
, to list Python requirements such aspytest
needed for development.
What's fixed
- Fixed issue #100: provide a way to bulk-update permalinks. This is now possible using the new
update-item-data
utility program mentione above. This utility also partly solves issue #7. - Fixed issue #102: if a (library staff) user edited an item and changed the barcode when doing so, then the internal DIBS record could have become inconsistent with the LSP entry because DIBS only updated a limited number of fields during the edit operation. DIBS now compares the barcode and updates all internal object fields if the barcode is changed.
- Fixed a misleading error message when creating new entries, in which "Incomplete record in LSP" was printed even if the record was missing entirely.
- Fixed a bug in the item editing page, in which thumbnail images were not checked for being zero length files. This led to internal exceptions when the server attempted to read the file.
What's changed
- The object classes for LSP interfaces in
lsp.py
have had some internal changes. The fieldsid
andurl
are nowitem_id
anditem_page
, respectively, to avoid confusion in calling code about the "id" and "url" in question. These names also match the corresponding field names in the database objects defined indata_models.py
. In addition, the LSP interface classes now have aname
property, which can be used to print more informative messages. A few lines inserver.py
have had corresponding changes to account for the changes inlsp.py
. - The template files
dibs/templates/edit.tpl
anddibs/templates/item.tpl
have had small changes made, to check for zero-length thumbnail files. The changes are in commits 30a9eb9 and 16a63da, respectively. - Added a description to the DIBS documentation, in the section on item editing, to explain what can happen if the number of available copies of an item is decreased while all available digital copies are currently loaned out.
- Updated
requirements.txt
for many dependencies to bring them to the latest releases and deal with recent Dependabot security alerts. - Updated the contents of
.gitignore
to follow new best practices. - Added more unit tests. (Still isn't nearly enough, but it's more than before!)
Release 0.6.1
Changes in this release:
- Update
requirements.txt
versions of Bottle and Pillow in response to Dependabot security advisories. - Update link to Caltech Library logo to account for recent changes in the website.
Release 0.6.0
The changes in this version do not affect user functionality or site templates; however, we bumped up the minor version number (instead of making this only a patch release) because of changes to the administrative management scripts and the way the database is handled by the server.
- The helper program
admin/query-dibs
has been renamed toadmin/loan-manager
and has additional capabilities. - Internal handling of the database has changed such that it is explicitly opened and closed around every access by the server. This allows other processes to access the database. Previously, the server had the database file open continously and while this worked for multiple threads, it prevent other processes (such as the programs in the
admin
directory) from accessing it. - Updated
requirements.txt
uses new versions of some Python libraries. - New Flake8 project config file
.flake8
. - Minor adjustments to most code files based on Flake8 output.
- Minor internal code improvements.
Release 0.5.3
This version only updates requirements.txt
to use newer versions of certain libraries, notably Pillow to address a security issue in that package. There are no functional or other changes to DIBS in this release.
Release 0.5.2
This version fixes a bug reported (with a fix) by @dlasusa involving incorrect time zone locale handling in the viewer interface, and also bumps up the required version of Pillow to address several security vulnerabilities flagged by Dependabot. It also updates a number of other dependencies in requirements.txt
to their latest versions.
Release 0.5.1
This version fixes an issue wherein trying to add an item that had an incomplete records in the LSP would result in a misleading error about the item being not found at all.
Release 0.5.0
This version brings significant changes and new features, but it is also not fully backward compatible with previous versions. We apologize for breaking backward compatibility; we lack the resources to do it differently or create a proper migration engine. If you installed a previous version of DIBS, updating to this new version will, unfortunately, require some work (but hopefully not too much!).
Breaking changes
- The database object models have changed, and previous DIBS database files will not work without migration. Migrating a pre-version-0.5 database file is not difficult and instructions for migrating existing databases are provided in the wiki for the project on GitHub.
- The format of the
settings.ini
file has changed, as part of the DIBS enhancement to support FOLIO. The old format used a single section called[settings]
; the new format replaces[settings]
with a section called[dibs]
, and adds additional sections for TIND and FOLIO. If you attempt to run the new version of DIBS without updatingsettings.ini
, DIBS will either exit with an explicit error or fail to find variable values (which will be a clue that the problem is the changes to the settings file). - Some of the HTML template pages have changed. If you previously installed DIBS and modified the templates to adapt them to your site, it will be necessary to inspect the new templates and figure out how to make the corresponding changes in the new version of DIBS. A normal
diff
between the old and newdibs/templates
directories will help, and the changes are limited to only some files (and then mostly to the logic and not the layout components).
New features
- Supports the FOLIO LSP in addition to TIND ILS. Along with this, the updated configuration file
settings.ini-example
has a number of changes relative to existingsettings.ini
files. - Provides a mechanism for triggering a workflow to convert scans to IIIF format when a new item is added to DIBS. The interface is part of the item list page (
/list
) and involves the addition of a button and some page logic. Along with this, there is a newsettings.ini
variable that tells the server the location of a subdirectory where it should read and write workflow status files. - Provides the ability to replace the thumbnail image of book covers, in case the automatic algorithm for finding cover images finds an incorrect one or none at all. Along with this, the item editing page (
/edit
) has been reorganized and a new element has been added. Finally, along with this change, there is a newsettings.ini
variable that tells the server the location of a subdirectory used to store thumbnail image files. - Supports downloading the DIBS item list and loan history as CSV files. Buttons for downloading these are available from the management page and the stats page, respectively.
- Provides a mechanism for showing a site banner for announcements. The banner text can be written to a file in the DIBS server root directory.
- Includes a new helper program,
admin/export-data
, for exporting the data from a DIBS database. This program works with previous versions of the DIBS database too, not just the new format in 0.5. - Includes a new helper program,
admin/set-server-permissions
, for setting the permissions on server subdirectories and files, to help configure a new DIBS installation. admin/run-server
now allows the use of the--debug-user
flag in all modes, for more debugging capabilities.
Other changes
- Administrative scripts such as
run-server
have been relocated to a new subdirectory namedadmin
. - The default
manifest
subdirectory and the new subdirectories for the IIIF workflow (by default,processing
) and cover image thumbnails (by default,thumbnails
) have been relocated to a new subdirectory nameddata
. (However, the settings file controls where the server looks for these subdirectories, and DIBS installations do not have to use the default locations in practice.) - The database file (by default named
dibs.db
) has also been relocated to thedata
subdirectory by default. - The versions of many dependencies in the file
requirements.txt
have been updated, andrequirements.txt
now pins the version numbers of dependent libraries to exact version numbers instead of using "this version or later" definitions. - Hardwired references to TIND.io have been removed.
- Added Pokapi and Coif as new dependencies for FOLIO interface.
- Titles coming via LSP metadata lookups are now truncated at
:
,;
and.
characters in the title, and addition, titles are truncated at 60 characters, to avoid very long title/subtitle combinations. - The publisher is shown as an additional metadata field in the item view page.
- Fixed issue #90: character encoding was not specified when reading manifest files, causing garbled characters to appear in the IIIF viewer. (Thanks to @stanonik for the report and fix.)
- Fixed issue #89: the Process button would sometimes reappear if the process workflow took too long between steps.
- Fixed issue #88: wrong default set for the item processing directory by
server.py
. - Fixed issue #87: don't hardcode TIND URLs in
server.py
. - Fixed issue #86: save cover image thumbnails locally instead of only URLs to external web pages, to avoid the situation where the external site is unresponsive at run time. (This happened to us during demos.)
- Fixed issue #83: provide a way to save and reload database.
- Fixed issue #82: provide a notes field for writing internal text notes about items.
- Fixed issue #78: store the URL to an item page in the
Item
data objects, instead of constructing them at run-time. - Fixed issue #77: provide info about how to set up a IIIF server.
- Fixed issue #68: make
run-server
allow defining a debug user in all modes. - Fixed issue #64: don't hardcode TIND URLs in
item.tpl
. - Fixed issue #40: add a site announcement mechanism.
- Add
CITATION.cff
file. - Various other bugs fixed, minor refactoring, and other internal changes.
- Documentation has been updated.
Release 0.4.1
Changes in this release:
- Fix for issue #85, to remove email addresses from server log message printed during status checks.
- Expand explanations (in the README and the docs) of what you need to run DIBS at another institution.
- Updated system diagram in the documentation.
Release 0.4.0
This version implements an interface for starting the IIIF image processing workflow. This is implemented in the dibs/templates/list.tpl
template file, with an an addition to settings.ini
. It interacts with the "available" column in the /list
page.
Other changes and issues fixed:
- Fix issue #81: anonymize user names in trace/debug logs.
- Fix issue #75: allow force-viewing item pages; this uses a query parameter to the item page URL.
- Fix issue #71: add interface to trigger IIIF processing workflow.
- The size of the LRU cache for IIIF images is configurable using variable in
settings.ini
. - Tweak some user interface elements.
- Take out "Caltech" from email template, to make it more generic.
- Refactor some internal code to further simplify the logic.
- Fix more miscellaneous bugs.
- Do some housekeeping on files.
Release 0.3.1 – Documentation updates & minor bug fixes
This version features updated documentation (including an updated usage guide and updated installation instructions) , and the following minor fixes:
- Update the versions of some packages referenced in
requirements.txt
. - Fix issue #66: missing import in
dibs/people.py
. - Fix issue #67:
run-server
should check Python version.
The file CHANGES contains a more complete change log, and includes information about previous releases.