0.9.0
CI / lint (push) Successful in 40s
Docs build and publish / docker (push) Successful in 25s
Build and Publish / release (push) Successful in 31s
CI / test (3.11) (push) Successful in 1m35s
CI / test (3.12) (push) Successful in 1m31s
CI / test (3.13) (push) Successful in 1m40s
CI / test-with-beamline-plugins (pxi_bec) (push) Successful in 1m41s
CI / test-with-beamline-plugins (pxii_bec) (push) Successful in 1m42s
CI / test-with-beamline-plugins (pxiii_bec) (push) Successful in 1m54s
CI / test-with-coverage (push) Successful in 2m19s
CI / coverage-analysis (push) Skipped
CI / lint (push) Successful in 40s
Docs build and publish / docker (push) Successful in 25s
Build and Publish / release (push) Successful in 31s
CI / test (3.11) (push) Successful in 1m35s
CI / test (3.12) (push) Successful in 1m31s
CI / test (3.13) (push) Successful in 1m40s
CI / test-with-beamline-plugins (pxi_bec) (push) Successful in 1m41s
CI / test-with-beamline-plugins (pxii_bec) (push) Successful in 1m42s
CI / test-with-beamline-plugins (pxiii_bec) (push) Successful in 1m54s
CI / test-with-coverage (push) Successful in 2m19s
CI / coverage-analysis (push) Skipped
Automatically generated by python-semantic-release
This commit is contained in:
+248
@@ -1,6 +1,254 @@
|
||||
# CHANGELOG
|
||||
|
||||
|
||||
## v0.9.0 (2026-08-17)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- Busy flag in Axis views as plain status text, not a badge
|
||||
([`69d552c`](https://gitea.psi.ch/mx/AareDAQ/commit/69d552c0683a1c7b7768c9491b78130cf52a1330))
|
||||
|
||||
Gonio camera, Beamline view and the combined view showed BEAMLINE BUSY in the rounded badge pill,
|
||||
which reads as a clickable button. These views are passive, so draw the same shadowed colored text
|
||||
the sample camera uses for its warnings; the pill stays only on the sample-camera session badges,
|
||||
which really are click targets.
|
||||
|
||||
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
||||
|
||||
- Clear basedpyright diff violations
|
||||
([`5871c95`](https://gitea.psi.ch/mx/AareDAQ/commit/5871c959e22f9399430195ba2a1d41b9dc16c662))
|
||||
|
||||
Rename NumberLineEdit.validator to range_validator: the instance attr shadowed QLineEdit.validator()
|
||||
and broke type checking at call sites. Annotate the smargon _move_axes dict and cast the stand-in
|
||||
self in the prediction subscriber test.
|
||||
|
||||
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
||||
|
||||
- Explain gated Beamline tab clicks; drop login state POST
|
||||
([`6c720d2`](https://gitea.psi.ch/mx/AareDAQ/commit/6c720d29d328563ca186be6af71e17c458ce824e))
|
||||
|
||||
Two changes folded together because they touch the same status path:
|
||||
|
||||
- Revert the login-default state POST: a state transition can move motors, and merely opening the
|
||||
GUI must never move hardware. The GUI now adopts whatever state the server reports. - A click on
|
||||
the pgroup-gated (disabled) Beamline tab used to be eaten silently by the tab bar. An event filter
|
||||
now pops the explanation: visitor-pgroup wording for staff, the staff-only message for users (same
|
||||
pattern as the Auxiliary-puck tab).
|
||||
|
||||
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
||||
|
||||
- Exposure wheel only increased when Alt held
|
||||
([`ac5936f`](https://gitea.psi.ch/mx/AareDAQ/commit/ac5936f7be272e956a937ecf164b3ce28bb53680))
|
||||
|
||||
Qt xcb/windows swap wheel axes while Alt is held, so angleDelta().y() is 0 and copysign(_, 0) is
|
||||
always positive. Fall back to angleDelta().x() and ignore genuine zero deltas.
|
||||
|
||||
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
||||
|
||||
- Grey out whole state strip while beamline is busy
|
||||
([`d659f05`](https://gitea.psi.ch/mx/AareDAQ/commit/d659f0500934e462ea195d09d7234fe1213a659a))
|
||||
|
||||
Busy now empties the available-target set exactly like Moving, so no entry looks clickable and no
|
||||
transition can be posted mid-operation (same guard the status-bar menu already had). The
|
||||
current/pending entry keeps its highlight as orientation.
|
||||
|
||||
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
||||
|
||||
- Install gate event filters after eventFilter's targets exist
|
||||
([`190e728`](https://gitea.psi.ch/mx/AareDAQ/commit/190e728734559a22fe1155cf3932c9c7ed0cb528))
|
||||
|
||||
The locked-banner and Beamline-tab-bar filters were installed mid __init__, but
|
||||
MainWindow.eventFilter reads sample_lists_tabs, which is created later - every event delivered in
|
||||
between raised AttributeError inside the filter ('Error calling Python override of eventFilter()'
|
||||
spam) and broke widget teardown, cascading errors across CI tests and wedging the pxiii_bec job.
|
||||
Filters now install late, next to installEventFilter(self), and the filter guards its attribute
|
||||
reads so construction/teardown-time events can never raise.
|
||||
|
||||
Also fold the staff-gate assertions into test_main_window_init: every extra MainWindow construction
|
||||
raises the odds of the pre-existing PySide SystemError flake, so don't build a window just for
|
||||
them.
|
||||
|
||||
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
||||
|
||||
- Prevent libzmq abort and per-frame decode errors in prediction subscriber
|
||||
([`6917894`](https://gitea.psi.ch/mx/AareDAQ/commit/69178945e5b64e73413169056673714a3db2d8cf))
|
||||
|
||||
Sniff for '{' before JSON-parsing zmq parts: JPEG frames start with 0xff and raised
|
||||
UnicodeDecodeError on every frame. Stop closing the socket from the GUI thread in stop(): zmq
|
||||
sockets are not thread-safe and the concurrent close/recv tripped the signaler.cpp POLLIN
|
||||
assertion (core dump); run() closes it in its own thread via the 500ms RCVTIMEO.
|
||||
|
||||
uv.lock: sync version to 0.8.3.
|
||||
|
||||
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
||||
|
||||
- Reserve sign width for GM labels; annotate red-highlight mismatch
|
||||
([`c837e6c`](https://gitea.psi.ch/mx/AareDAQ/commit/c837e6c44d26f96477a72753b7123805878803c7))
|
||||
|
||||
Value column was content-sized, so rows shifted whenever a value flipped negative. Labels now
|
||||
reserve '-88.888' width; right alignment keeps digits anchored. Also TODO: red colors on live
|
||||
aerotech while labels display aerotech_meas - intent unconfirmed, do not change condition until
|
||||
decided.
|
||||
|
||||
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
||||
|
||||
- Send light slider changes from every input path, guard readback
|
||||
([`869a66f`](https://gitea.psi.ch/mx/AareDAQ/commit/869a66ff4b7c51133609ff7f4d5eb8d70fdbf85a))
|
||||
|
||||
Sliders only emitted on sliderReleased, so right-click+wheel, arrow keys and groove clicks changed
|
||||
the value locally without a PUT and the 500 ms status poll snapped it back. setTracking(False) +
|
||||
valueChanged now sends one PUT per deliberate change; readback setValue is wrapped in blockSignals
|
||||
to avoid echoing PUTs, and a 1.5 s grace window stops in-flight stale status responses from
|
||||
bouncing the slider.
|
||||
|
||||
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
||||
|
||||
- Unsqueeze Chi/Phi row and widen Step box in smargon panel
|
||||
([`70107e6`](https://gitea.psi.ch/mx/AareDAQ/commit/70107e6219aa25ce6736fb7af04894ecc355fe10))
|
||||
|
||||
Move button gets its own full-width row instead of sharing row 1 with the Chi/Phi entries; Step box
|
||||
spans columns 1-4 instead of the narrow Chi column.
|
||||
|
||||
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
||||
|
||||
### Chores
|
||||
|
||||
- Name the bluebird theme in menu the default theme
|
||||
([`63f4ad7`](https://gitea.psi.ch/mx/AareDAQ/commit/63f4ad7612e87554aa3bdb92edbedeeeee81a7d2))
|
||||
|
||||
- Rename Beamline Setup to Beamline setup, comment tweaks
|
||||
([`75d7bed`](https://gitea.psi.ch/mx/AareDAQ/commit/75d7bed380b8ababd876b86335079648ca05b51e))
|
||||
|
||||
Panel title case now matches the other banner names. Also clarify the splash banner comment in
|
||||
gui.py.
|
||||
|
||||
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
||||
|
||||
- Satisfy ruff format and SIM201 lint
|
||||
([`b489610`](https://gitea.psi.ch/mx/AareDAQ/commit/b4896105ab529e62374f6f11b0424a8cc54c7d30))
|
||||
|
||||
ruff format collapsed lines the Beamline setup rename and other edits left splittable; SIM201 wanted
|
||||
!= over 'not ... ==' in the prediction subscriber's JSON sniff.
|
||||
|
||||
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
||||
|
||||
- Specify the omega panel 0 degree is a go-to not a move-by
|
||||
([`b8177bd`](https://gitea.psi.ch/mx/AareDAQ/commit/b8177bd764b584a09ab925dedeff811b69ec4d66))
|
||||
|
||||
- Use rock and goto for better understanding
|
||||
([`252e083`](https://gitea.psi.ch/mx/AareDAQ/commit/252e08384dd69955f0e53151445e24a62e19a4ce))
|
||||
|
||||
- Using aare_banner.png since svg could be rendered wrong at rhel9 consoles
|
||||
([`d94fb88`](https://gitea.psi.ch/mx/AareDAQ/commit/d94fb88148ad317f8cf7e44ca35ccc0c9eb6d184))
|
||||
|
||||
### Continuous Integration
|
||||
|
||||
- Run pytest with -s -vv in the test jobs
|
||||
([`727f19d`](https://gitea.psi.ch/mx/AareDAQ/commit/727f19d52a3810a9ad7cf15cd07305b224359dae))
|
||||
|
||||
Per-test lines and live (uncaptured) output: the pxiii_bec job sat silent at 81 percent for hours,
|
||||
and file-level dots could not say which test wedged. With -s -vv a hang names its test and streams
|
||||
the last log lines before it.
|
||||
|
||||
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
||||
|
||||
### Features
|
||||
|
||||
- Add Change Energy row to experiment configuration
|
||||
([`c618354`](https://gitea.psi.ch/mx/AareDAQ/commit/c618354c0146e6a071873507aad4d085c71e344f))
|
||||
|
||||
Copy of the Beamline Setup energy row (keV display, eV emit), placed below the ML Loop Centring /
|
||||
Make Raster Grid row and always visible. Wired to the same daq.change_energy; not staff-gated,
|
||||
server enforces write permission.
|
||||
|
||||
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
||||
|
||||
- Add More link in sample camera help overlay opening F1 dialog
|
||||
([`ebe0860`](https://gitea.psi.ch/mx/AareDAQ/commit/ebe0860ed4446d76005b00493ebf2c05aec5d93e))
|
||||
|
||||
Underlined 'More… (F1)' line at the bottom of the painted help box emits open_full_help, wired to
|
||||
the existing Mouse / Keyboard Controls dialog.
|
||||
|
||||
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
||||
|
||||
- Default beamline state on login by role
|
||||
([`656b441`](https://gitea.psi.ch/mx/AareDAQ/commit/656b44159322c857ef6f6a2a0623a5e0cbf8792b))
|
||||
|
||||
Staff land in BeamLocation, users in SampleAlignment. One-shot on the first status tick where the
|
||||
GUI owns the session and the beamline is idle, so a running operation or a watch-only GUI is never
|
||||
disturbed.
|
||||
|
||||
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
||||
|
||||
- Disable Beamline tab when active pgroup is outside token pgroups
|
||||
([`c5a6a17`](https://gitea.psi.ch/mx/AareDAQ/commit/c5a6a175bddda9acb517acea74ecf93776cae3cb))
|
||||
|
||||
Switching to a visitor pgroup means running a user experiment: grey out the Beamline tab (tooltip:
|
||||
beamline scientists only), bring the Experiment tab forward with Dataset path and Exp. Config.
|
||||
opened. Gate applies on transitions only so manual tab choices survive the 1 Hz status ticks.
|
||||
|
||||
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
||||
|
||||
- Rename Monochromator panel to Beamline Setup, add WIP beam-to-box row
|
||||
([`bb447b1`](https://gitea.psi.ch/mx/AareDAQ/commit/bb447b15670addb7fb339db41690abbe21b7533a))
|
||||
|
||||
Display title only; class and file keep their names. New full-width 'Move Beam to Box (center)
|
||||
(WIP)' button under the Energy row, disabled with a coming-soon tooltip until a DAQ endpoint
|
||||
exists.
|
||||
|
||||
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
||||
|
||||
- Show locked beamline banners to non-staff
|
||||
([`1bce76e`](https://gitea.psi.ch/mx/AareDAQ/commit/1bce76e6fcd0c430cee449e82679cc36c946b414))
|
||||
|
||||
Beamline setup, ABR meas. pos. and Beam configuration banners stay visible for non-staff instead of
|
||||
vanishing, but are locked stand-ins: clicking one pops the staff-only notice (same pattern as the
|
||||
Auxiliary-puck tab) telling the user to log in as staff or contact their local contact.
|
||||
|
||||
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
||||
|
||||
- Stage motor entry values, apply moves in one click
|
||||
([`e18c7fe`](https://gitea.psi.ch/mx/AareDAQ/commit/e18c7feded837db8d26d20ee021b58057137cc5d))
|
||||
|
||||
Chi/Phi boxes in the Smargon tab no longer move on Enter: edits stage the target (orange), the Move
|
||||
button sends all staged axes at once (green), and boxes return to neutral when the motor reports
|
||||
arrival. Out-of-range entries stay red and are never sent; limit tips pop as tooltips.
|
||||
MotorMoveGroup is opt-in per box so other panels can adopt the same logic later.
|
||||
|
||||
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
||||
|
||||
- Switch to Beamline combined view while busy
|
||||
([`58bde93`](https://gitea.psi.ch/mx/AareDAQ/commit/58bde9379bd09b6c22bf0409b829894b753e59c9))
|
||||
|
||||
Generalize the robot-mount auto-switch: any busy period now brings up the combined view so the
|
||||
motion can be watched, and the sample camera returns when busy clears. Edge-triggered, so manual
|
||||
tab choices survive between transitions; _mounting renamed to _watching_motion.
|
||||
|
||||
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
||||
|
||||
### Testing
|
||||
|
||||
- Cover every changed line in the branch diff
|
||||
([`aa6c226`](https://gitea.psi.ch/mx/AareDAQ/commit/aa6c226103401234b371f26727c5b544aa686329))
|
||||
|
||||
Diff coverage vs main now 100 percent from the gui suite alone: non-staff locked banners and both
|
||||
gated-tab popups, remote-close bookkeeping in update_daq_status, smargon staged moves, camera More
|
||||
link and Alt-wheel axis fallback, number box relimits, energy row emit, and the gui.main()
|
||||
banner/graceful-exit path.
|
||||
|
||||
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
||||
|
||||
- Lift diff coverage over the 80 percent gate
|
||||
([`16e112f`](https://gitea.psi.ch/mx/AareDAQ/commit/16e112f44a4eac6024e94d359c17a9704e78a2a8))
|
||||
|
||||
Promote the illumination panel's __main__ self-check to a real pytest file so CI counts it, add
|
||||
busy-overlay render checks (status text paints, video view routes through it), and cover the motor
|
||||
group's incomplete-entry and below-min Enter paths. Local diff coverage from the gui suite alone:
|
||||
82 percent.
|
||||
|
||||
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
||||
|
||||
|
||||
## v0.8.3 (2026-08-12)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
[project]
|
||||
name = "aaredaq"
|
||||
version = "0.8.3"
|
||||
version = "0.9.0"
|
||||
description = "AareDAQ (with GUI)"
|
||||
readme = "README.md"
|
||||
requires-python = ">=3.11"
|
||||
|
||||
Reference in New Issue
Block a user