1.1.0
Docs build and publish / docker (push) Successful in 13s
Build and Publish / release (push) Successful in 12s
CI / lint (push) Successful in 34s
CI / test (3.12) (push) Successful in 1m5s
CI / test (3.13) (push) Successful in 1m5s
CI / test (3.14) (push) Successful in 1m20s
CI / test-with-beamline-plugins (pxii_bec) (push) Successful in 1m17s
CI / test-with-beamline-plugins (pxi_bec) (push) Successful in 1m20s
CI / test-with-beamline-plugins (pxiii_bec) (push) Successful in 1m28s
CI / test-with-coverage (push) Successful in 1m32s
CI / coverage-analysis (push) Skipped

Automatically generated by python-semantic-release
This commit is contained in:
semantic-release
2026-09-17 19:23:43 +00:00
parent 90f653386a
commit ece5fb781d
2 changed files with 109 additions and 1 deletions
+108
View File
@@ -1,6 +1,114 @@
# CHANGELOG
## v1.1.0 (2026-09-17)
### Bug Fixes
- **gui**: App-level event filters tolerate PySide's stray QWidgetItem
([`90f6533`](https://gitea.psi.ch/mx/AareDAQ/commit/90f653386adbf5a9e5a24fb7fc9ba8e79cf78660))
CI (3.12, PR 232) failed test_font_zoom_keeps_frozen_column_aligned_and_reautosizes with a pytest-qt
CALL ERROR: PySide 6.9 handed both app-level filters a QWidgetItem instead of a QEvent during
layout teardown, and event.type() raised. The wheel guard now keys on isinstance(event,
QWheelEvent) and returns False itself instead of super().eventFilter() (which type-checks its
arguments and would raise the same way); the cursor filter ignores anything that is not a QEvent.
Regression test for each.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
- **gui**: Keep queue head until /status confirms unmount on Mount next
([`1ea607b`](https://gitea.psi.ch/mx/AareDAQ/commit/1ea607ba56cb6ab65113ba6a40f3146f873f5bd4))
Mount next popped the mounted head before posting the exchange, so a failed unmount dropped a sample
that was still on the gonio. Now the head stays queued and is removed only when /status shows a
different (or no) sample mounted; a failed exchange leaves the queue intact for a retry.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
- **gui**: Keep the file-name preview in the plain theme color
([`d70cac4`](https://gitea.psi.ch/mx/AareDAQ/commit/d70cac45bf910d644601102170345ba130d47c89))
Dawn: the red "file exists" tint on the path label reads as an error across the whole panel. The Run
guard's popup already reports a clash, so the label stays in the standard text color. The popup
now also asks the user to run the data collection again after the run number bump.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
- **gui**: Make the file-exists guard literal: popup, run +1, no scan
([`646de67`](https://gitea.psi.ch/mx/AareDAQ/commit/646de672917ce8ed6a05803f157290bbbf9c60a7))
update_filename() still skipped to the next free run number on every edit and refresh, so the name
was always free by the time Run was clicked and the guard never fired. The name is now exactly
what the fields say (label turns red on a clash); on Run, an existing target pops "File already
exists", bumps the run number by one and does nothing else.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
- **gui**: Pop up "File already exists" instead of silently bumping the run
([`8798a81`](https://gitea.psi.ch/mx/AareDAQ/commit/8798a815555dd41f76a455cf534922bbbb940f69))
The Run guard called set_scan_kind(), which runs update_filename() and skips to the next free run
number before the existence check, so the check never fired and the scan started under a new
number without a word. Now the check runs first, then a warning box names the existing master file
and the run number it moved to, and the run is blocked.
- Simple tab "Run rotation" had no guard at all; same guard added - "Taken" also matches
<run>_*_master.h5: X-ray Centering writes <run>_raster2d_master.h5, which the exact name missed -
Camera context-menu "Evaluate grid" presses the panel button, so it gets the guard and stays inert
while the button is disabled - Dead next_free_run_from() removed
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
- **gui**: Reach the file-exists guard from every tab, test exact names
([`010513e`](https://gitea.psi.ch/mx/AareDAQ/commit/010513e1412006c6cd8e808386574db101463300))
The tabs are handed parent=DataCollectionSettings but QStackedWidget.addWidget() reparents them to
the stack, so the guard's parent() lookup never found file_path_panel and every Run (rotation,
screening, raster, X-ray centering, Simple) skipped the check. Lookup now walks up the widget
tree; regression test drives all five runs through the real DataCollectionSettings.
The "taken" test is exact again: <run>_master.h5 plus the DAQ's derived
<run>_raster2d/_raster1d_master.h5. The directory test and the _*_master.h5 glob are gone: neither
is a file a run writes, and they painted run numbers red that nothing would ever produce.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
- **gui**: Zoom-proof the Dewar table and control heights, theme the mounted HUD ink
([`bf11528`](https://gitea.psi.ch/mx/AareDAQ/commit/bf11528e8680e5df6a0b853b8a2524dd22f4881a))
Dewar "#" column sat 1px above the other rows at some zoom steps: the frozen-column overlay sizes
its own header from "#" alone while the main header also sees the symbol columns, whose
fallback-font glyphs have a taller line box. The overlay header is now pinned to the main header
height on resize and (deferred, receiver-bound) on font/style change.
Zoom also left columns at their startup widths (headers truncated) and clipped descenders in every
button/combo/entry box: the 16px height pin in both sheets was raw px while the body font grew to
18/21px. Columns re-autosize on FontChange and the pin scales with the font ladder.
Camera "Currently mounted" HUD: black ink on a white halo in the light themes, white on black in
Sunset, instead of white-on-black everywhere.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
### Chores
- Better wording, make user calm
([`7458ea0`](https://gitea.psi.ch/mx/AareDAQ/commit/7458ea04006e7151e6e647f5397d1bc23a54c7ed))
### Features
- **gui**: Pin status-bar operables right, stop readout width jitter
([`1b6a32d`](https://gitea.psi.ch/mx/AareDAQ/commit/1b6a32d1372c7ac7350aadd2b8f6e6cb2d61f39b))
- Fast Shutter / State / p-group / Session are addPermanentWidget now: QStatusBar itself pins them
to the right corner, so wrapping of the other readouts never moves them - passive readouts keep
wrapping in the FlowHost on narrow windows - grow-only min-width ratchet on every readout:
changing number widths used to re-flow the row each DAQ tick and jitter every neighbour
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
## v1.0.3 (2026-09-17)
### Bug Fixes
+1 -1
View File
@@ -1,6 +1,6 @@
[project]
name = "aaredaq"
version = "1.0.3"
version = "1.1.0"
description = "AareDAQ (with GUI)"
readme = "README.md"
requires-python = ">=3.11"