Skip to content

v1.5.0

Latest

Choose a tag to compare

@github-actions github-actions released this 07 Jun 18:34

[1.5.0] (2026-06-07)

532b60b...c574bdf

This is a feature release focused on scripted/headless operation, release
infrastructure, documentation, and several GUI and integration robustness
fixes.

orGUI now has two startup modes. The default graphical user interface is still
the normal interactive application for inspecting images, setting reference
reflections, adjusting ROIs, and visually checking the experiment geometry. The
new command line interface is selected with --cli, --nogui, or
--headless and is intended for scripting, batch jobs, and cluster use. In
CLI mode users can run a Python startup script with -i / --input and
work with the preloaded app, orgui, and ub objects instead of
clicking through the GUI.

Scientific and analysis-impacting fixes:

  • Masked pixels are now excluded from rocking-scan counters and the same mask
    handling is applied to the static background image and correction arrays used
    in rocking integration. Results from workflows that combine rocking
    integration with masks, static background subtraction, or correction arrays
    should be checked against the new behavior.
  • Fixes for NumPy 2.x compatibility.
  • Reference reflection tables with image numbers outside the currently loaded
    scan no longer crash the GUI. Invalid image numbers are reported as warnings
    and the reflection table is updated more defensively.

CLI and scripting highlights:

  • orGUI --cli / --nogui / --headless start the headless path, and
    -i / --input runs a Python startup script with app, orgui,
    and ub already available.
  • --keep-running keeps the application alive after a startup script and can
    drop into the embedded shell for interactive inspection.
  • --cpus, --logfile, --errorlog, and HDF5 file-locking options make
    batch and cluster runs easier to control.
  • CLI runs now print progress and errors to the terminal or selected log files,
    so batch jobs can finish or fail without waiting for a hidden dialog.
  • Batch-oriented helpers were added for static and rocking ROI workflows,
    including support for multiple manually defined static rocking scans.

Documentation:

Other user-visible changes:

  • Log files can be written for normal and error output.
  • Backend load errors are more verbose.
  • CHESS QM2/id4b backend examples now include the z motor in the scanned motor
    list, and QM2 log files can be parsed for more accurate timestamps.
  • NUMEXPR_MAX_THREADS defaults to 1 when not already set, avoiding
    oversubscription during parallel or cluster runs.

Thanks to Finn Schröter (Finnjek) for the NumPy 2.x miscut fix and Bragg
reflection image-number crash fix.

Added

  • Add command line interface using Qt offscreen rendering and update logging (9442123)
  • Add orCLI input prompt token in cli mode (2de769a)
  • Add batch scripting (b1116ac)
  • Add Progress logging API (0cb8246)
  • Add log file support (28ffb92)
  • Limit deltaS to a median of 1 pixel ROI center distance (43afb8c)
  • Add multiple manual static rocking scans cli function (7f4f5de)
  • Add headless CLI and batch scripting support (9f5db10)
  • QM2/id4b add z motor to scanned motor list (be77c1a)
  • QM2 add log file parsing for accurate time stamps (23bd0f7)
  • Publish the first orGUI documentation set on Read the Docs (cdc47d6, b71d867, 799335c, 3417b2b, 5efb16e, 7107429)
  • Add GitHub release workflow (6582566)

Changed

  • Improve messages, progress output, and error reporting in both GUI and CLI runs (c2ea4c3, c178fdc, 3df9a16, e9dc755, 2002811)
  • Set the number of CPUs during startup and default NUMEXPR_MAX_THREADS=1 when not already configured (b6aeda6, 3598f0d)
  • Preserve variables created by input scripts for the GUI console (a810dbf)
  • Refactor invalid reference reflection image-number handling into warnings and add regression tests (c574bdf)
  • Expand project guidance for CTR stack, logging modes, public API docs, and conventional commits (5df3d9d, cf87b88, 5f3d214)

Fixed

  • Missing display of static ROI due to numpy 0-d array concatenation (7654956)
  • Restore shell init order, validate startup args, and harden integration errors (7e9221f)
  • Handle empty exceptions in logger, ROI I/O and UI symmetry (991cba3)
  • Explicitly close database in cli mode (5124656)
  • Apply mask to bg image and Carr in rocking integration (2d22cfb)
  • Exclude masked pixels from rocking counters (b5f752f)
  • Resolve ipyconsole.pushVariables to the correct fun member (a810dbf)
  • Fix miscut calculation for NumPy > 2.0 (e2538d1)
  • Avoid crashes when Bragg reference reflections have image numbers outside the loaded scan (9680bee)

Removed

  • Remove old doc from README, which is now on Read the Docs (147e53b)