Skip to content

LORIS Release v23.0.0

Compare
Choose a tag to compare
@ridz1208 ridz1208 released this 12 Jun 15:51
· 102 commits to 23.0-release since this release
71f77ea

This release contains user interface improvements, code clean up, bug fixes and new features. This release assigns users to projects, and begins the process of adding project-based permissions to LORIS in addition to the site-based permissions that already exist.

Full list of changes

Some of the major changes to this release are:

Core

Features

  • Add configuration option to specify the format in which dates are displayed. (PR #5004)
  • Configurable upload directory for data_release and document_repository modules (PR #5815)
  • New radio components for forms. (PR #5846)

Updates and Improvements

  • PHP minimum requirements raised to PHP 7.3 (PR #5723)
  • Menus are now maintained by modules and no longer in the SQL database (PR #5839)
  • New script created for streamlining instantiation of the Raisinbread demonstration
    database (PR #5260)
  • New documentation for file permissions has been added to the README.md file. (PR #5323)
  • Dashboard study progression section performance improvement (PR #5887)
  • New API version 0.0.3 released (PR #6188)

Bug Fixes

  • Fix edge-case that gave a confusing error message when changing password (PR #5956)
  • Fix bug where examiner form field was incorrectly hidden (PR #6085)
  • Fix special character double escaping in instruments (PR #6223)

Modules

Candidate Profile

  • New module created to provide dashboard of a single candidate's data across all
    modules. (Various PRs)
Issue Tracker
  • The issue_tracker module now has the feature of uploading attachments to new or existing issues. (PR #5394)
  • All sites now appear in the dropdown for site, not only study sites. (PR #6135)

Battery Manager

  • New module created to manage the entries in the test_battery table of the database.
    This allows projects to modify their instrument battery without requiring backend access.
    (PR #4221)

Module Manager

  • New module created to manage the status of installed modules. (PR #6015)

Electrophysiology Browser

  • New module created to view electrophysiology data within LORIS. (PR #5230)

Candidate Parameters

  • Add tab to view and edit a candidate's date of birth. (PR #4915)
  • Add date of death feature for LORIS. Store and calculate age based on a date of
    death for candidates. (PR #4929)

Create Timepoint

  • Add language parameter when creating a new timepoint for multilingual studies. (PR #4976)

Data Release

  • Add filters to data release module. (PR #5224)

MRI Violations

  • Add support for multiple project/subproject/visit_label MRI protocols (PR #4321)

Clean Up

  • New tool for detection of multiple first visits for a candidate (prevents a database
    exception). It is recommended to run this tool for existing projects (PR #5270)
  • Heroku postdeploy script cleanup (PR #5275)
  • Vagrantfile Deprecation (PR #5319)
  • The data_integrity_flag module was removed. (PR #5824)

Notes For Existing Projects

  • PHP should be upgraded to 7.3 or higher before upgrading LORIS.
  • For dev instances, the php-curl extension is now a required dependency.
  • Legacy Quickform instruments may have issues due to code changes (PR #4928)
  • Customized entries in the LorisMenu and LorisMenuPermissions tables need to be
    transferred to the new module table and handled accordingly. (PR #5839)
  • Change of name from quatUser and quatPassword to adminUser and adminPassword (PR #5785)
  • The data_integrity_flag module was removed. Projects still using the module should
    copy the code into the override directory and re-add the necessary SQL to add it to
    the list of modules.(PR #5824)
  • New tool for detection of multiple first visits for a candidate (prevents a database
    exception). It is recommended to run this tool for existing projects (PR #5270)
  • New tool for automatically adding modules to the modules table. This tool should
    be used by projects having custom modules not in LORIS. (PR #5913)
  • Duplicate filenames in the data release module will cause an error when downloading. Make sure to remove all filename duplications before upgrading to this version. (PR #6461)
  • New tool for detecting and reporting the presence of double escaped special characters in the database instruments (PR #6477)
  • The scope of the _selectMultipleElements variable in the NDB_BVL_Instrument class has been changed and the variable renamed to selectMultipleElements, make sure to update the variable in all your instruments and libraries accordingly (#6140)

Notes For Developers

  • The tool phpstan has been added to our automated test suite. (PR #4928)
  • Config files for static analysis have been moved to the test/ directory. (PR #5871)
  • Dashboard was refactored to turn panels into module widgets. (PR #5896)
  • Add CSSGrid component type (PR #6090)
  • Format for webpack-project.config.js changed (#6122)

Upgrade Process

Please note that in order for the steps below to succeed you must be on LORIS version 22.0.2. If you are on any previous version, the upgrade might fail to complete.

  1. Make sure you are using PHP 7.3 or higher before beginning to upgrade.
  2. [For developers] php-curl is now a required dependency and must be installed to continue.
  3. Get the 23.0.0 source code.
  4. Source the SQL/Release_patches/22.0_To_23.0_upgrade.sql SQL file into your database.
  5. Run make all in the LORIS root directory.
  6. Run the tools/single_use/Convert_LorisMenuID_to_ModuleID.php script and apply the generated SQL commands on the database.
  7. Run the tools/single_use/Cleanup_multiple_firstVisits.php script with the confirm argument to apply changes.
  8. Run the tools/single_use/instrument_double_escape_report.php to detect potential special character escaping issues in the saved instrument.
  9. Run SQL patches from the SQL/Archive/23.0/Cleanup directory at your discretion to remove superfluous or deprecated entries in the database.

Note: Some cleanup SQL commands might fail due to foreign key errors or other data related issues, make sure to test the release SQL patch previously and correct all necessary issues before proceeding to production.