Skip to content

NexusLIMS-CDCS v3.20.0-nx0

Latest

Choose a tag to compare

@jat255 jat255 released this 30 Mar 05:00

NexusLIMS-CDCS v3.20.0-nx0

Highlights

This release upgrades the underlying CDCS/MDCS platform from 3.18.0 to 3.20.0 (core packages 2.20.*, Django 5.2), bringing the latest upstream improvements and security fixes. It also introduces the new "NexusLIMS Annotator" application, which allows users to add structured description to experiment datasets directly within the interface, as well as reassign datasets between activities within a record. A public demo deployment configuration is also included for hosting a live demonstration instance at https://nexuslims-demo.datasophos.co.

As always, if you need assistance with configuration or deployment of NexusLIMS-CDCS at your institution, contact Datasophos.

Upgrade Instructions

1. Back up your data

Always back up before upgrading:

cd deployment
source admin-commands.sh
admin-backup

2. Pull the new code

cd /opt/nexuslims-cdcs
git pull

3. Change-specific steps

Rebuild Required

Python dependencies and the container definition changed significantly (CDCS/MDCS upgraded from 2.18.* to 2.20.*, Django 5.2, new nexuslims_annotate app added). Rebuild before restarting:

cd deployment
source admin-commands.sh
dc-prod build cdcs
XSLT Stylesheets Updated

Both detail_stylesheet.xsl and list_stylesheet.xsl have been updated. Changes include:

  • Detail stylesheet: Better support for dataset descriptions to align with annotation functionality; Loading spinner replaced with a custom inline SVG animation; XML and JSON download buttons consolidated into a single "Download Record" dropdown; disable-output-escaping="yes" applied to the motivation field to correctly render HTML entities; gallery <figure> elements now carry data-description and data-dataset-index attributes for improved JavaScript interactivity.
  • List stylesheet: disable-output-escaping="yes" applied to the motivation field to allow HTML display.

Re-upload the updated stylesheets to the database after restarting:

cd deployment
source admin-commands.sh
admin-init

Or to update only XSLT without a full re-init:

docker exec ${COMPOSE_PROJECT_NAME}_cdcs bash /srv/scripts/update-xslt.sh

4. Restart the stack

cd deployment
source admin-commands.sh
dc-prod down && dc-prod up -d

New Features

  • Dataset Annotator (nexuslims_annotate): A new Django application that enables users with edit permissions to attach structured descriptions to individual datasets within experiment records. Users can also reassign datasets between different activities. Accessible from the record detail view. (#16)
  • Public demo deployment: New docker-compose.demo.yml, deployment/.env.demo.example, demo-commands.sh, and supporting scripts (seed_demo_records.py, reset_demo.sh) provide a complete turnkey configuration for hosting a public-facing NexusLIMS-CDCS demonstration instance with pre-loaded fixture records. (#18)

Bug Fixes

  • Motivation field rendering: HTML entities in experiment motivation text (e.g. &amp;, &lt;) are now rendered correctly in both the detail and list views by adding disable-output-escaping="yes" to the XSLT xsl:value-of output.

Internal / Maintenance

  • Upgraded CDCS/MDCS base to 3.20.0 (core packages 2.20.*, Django 5.2). (#15)
  • pyproject.toml restructured: core and server optional-dependency groups merged into main dependencies; [dependency-groups] section added for dev tooling (python-dotenv).
  • uv.lock regenerated for new dependency set.
  • GitHub Actions: added deploy-demo.yml workflow for auto-deployment to demo server on push to main; tests.yml updated.
  • init_environment.py extended with idempotent demo user creation (admin, readonly_user, project_lead) when IS_PUBLIC_DEMO=True.
  • Updated floating-ui static libraries (core 1.7.5, dom 1.7.6, utils 0.2.11).

Full Changelog

v3.18.0-nx1...v3.20.0-nx0