800ffecd20dfed2e3f0614e11cdcc8f77310e136
1277
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
800ffecd20 |
process/viewer: command-line generator + JFJochProcessController (GUI engine)
Foundation for making processing a first-class GUI activity: - process/JFJochProcessCommandLine: reconstruct the equivalent jfjoch_process / jfjoch_azint command line from a ProcessConfig + DiffractionExperiment + input path, for handing a job off to a cluster. Unit-tested (full + azint). - viewer/JFJochProcessController: runs one JFJochProcess job off the GUI thread (its own private reader; HDF5 access is globally serialized so it is safe next to the interactive reader) and reports back via queued Qt signals (started/phaseChanged/progress/finished/failed). Cancel() forwards to JFJochProcess::Cancel(). Progress is throttled to ~200 updates per run. The visible processing UI (jobs window + snapshot switcher + converged settings) builds on this. Verified: tests/jfjoch_test [process]; jfjoch_viewer links and builds against JFJochProcess. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|
|
39599bc090 |
tests: git-LFS large-dataset harness + jfjoch_process include cleanup
- .gitattributes tracks tests/data/*.h5 via git-LFS for big reference datasets. - tests/TestData.h resolves tests/data files and reports absent / unfetched-LFS-pointer so tests can SKIP() instead of failing; tests/data/README.md documents fetching + the expected lyso_rotation/lyso_serial datasets. - JFJochProcessLargeTest: a Catch start-up listener that prints dataset availability, plus [large] full-analysis runs (rotation indexing + serial) that SKIP when data is absent. Verified against the real 1800-image lyso rotation set (100% indexing, cell 78.2/78.2/37.8) and skips cleanly without it. - jfjoch_process.cpp: drop the ~15 now-unused workflow includes left after the JFJochProcess extraction. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|
|
4697f10555 |
process: extract reprocessing workflow into shared JFJochProcess library
The full processing workflow no longer lives in the CLIs. New process/JFJochProcess
encapsulates it for jfjoch_process, jfjoch_azint and (later) the viewer:
- ProcessMode {AzimuthalIntegration, FullAnalysis}; ProcessConfig carries run control
(range, threads, output prefix, spot finding, rotation + scaling options, reference
data) while the DiffractionExperiment carries all algorithm settings.
- Run() executes setup -> optional two-pass rotation pre-pass -> parallel per-image loop
(std::thread) -> optional scaling/merging post-pass -> NXmxIntegrated _process.h5 that
links back to the original images. ProcessResult returns stats + merge text.
- Cancel() / std::atomic<bool> (receiver style), checked between images; the CLIs install
a SIGINT handler that calls it (fixes the previous Ctrl+C gap), the viewer will use the
same hook. JFJochProcessObserver streams progress / per-image results for a live GUI.
jfjoch_process.cpp and jfjoch_azint.cpp are now thin: argument parsing + experiment
configuration, then JFJochProcess::Run + stats printing. Behaviour and usage messages
are unchanged.
Adds JFJochProcessTest (azimuthal integration round-trip, no-output run, pre-cancel) over
a small generated dataset.
Verified: tests/jfjoch_test [HDF5] (83 cases / 1854 assertions); jfjoch_azint and
jfjoch_process run end-to-end on lyso_test (azint 20 images; full analysis recovers the
lysozyme cell at 25% indexing).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
||
|
|
9434878c92 |
reader: split metadata reading into HDF5MetadataSource + snapshot map
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 12m46s
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 14m27s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 15m5s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 15m1s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 15m7s
Build Packages / build:rpm (rocky9_sls9) (push) Successful in 15m6s
Build Packages / build:rpm (rocky8) (push) Successful in 13m25s
Build Packages / XDS test (neggia plugin) (push) Successful in 9m46s
Build Packages / XDS test (durin plugin) (push) Successful in 10m14s
Build Packages / Generate python client (push) Successful in 16s
Build Packages / Create release (push) Skipped
Build Packages / build:rpm (rocky9) (push) Successful in 13m1s
Build Packages / build:rpm (ubuntu2204) (push) Successful in 11m33s
Build Packages / XDS test (JFJoch plugin) (push) Successful in 10m45s
Build Packages / Build documentation (push) Successful in 47s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 12m17s
Build Packages / DIALS test (push) Successful in 13m39s
Build Packages / Unit tests (push) Failing after 58m55s
Complete the image/metadata decoupling. JFJochHDF5Reader is now a thin JFJochReader
facade composing one shared HDF5ImageSource (raw pixels) with a name->HDF5MetadataSource
map and an active selection ("snapshots").
- HDF5MetadataSource owns one master file: dataset-level parse (Open, ex-ReadFile),
per-image metadata (FillPerImage, ex-LoadImage_i), ReadSpots/ReadReflections/
ReadCalibration, and the master-first helpers. It locates per-image metadata either via
the shared image source (original file: metadata co-located with pixels) or in its own
master at the global index (integrated _process.h5 snapshot) - so switching snapshots
never reloads pixels.
- Facade adds RegisterSnapshot/SetActiveSnapshot/SnapshotNames/ActiveSnapshot; ReadFile
registers the original as "Original". All existing JFJochReader callers are unchanged.
- The global hdf5_mutex is taken once in the facade; the sources assume it is held.
Adds JFJochReader_Snapshots test (original _master.h5 + a reprocessing _process.h5 over
the same images: pixels stay from the original, metadata follows the active snapshot).
Verified: tests/jfjoch_test [HDF5] (80 cases / 1810 assertions), plus jfjoch_process/
azint/extract_hkl/scale and jfjoch_viewer all build against the refactored reader.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
||
|
|
23d27f30c4 |
reader: split raw-image reading into HDF5ImageLocator + HDF5ImageSource
Decouple the raw-pixel side of JFJochHDF5Reader from the rest as the first step toward swappable per-dataset metadata snapshots. - HDF5ImageLocator: single owner of the legacy/VDS/contiguous layout resolution plus a persistent open-file cache, replacing the four duplicated resolvers (GetImageLocation, ReadSpots, ReadReflections) and their per-call file caches. Also hosts the source-mapping logic (former GetHDF5DataSource body). - HDF5ImageSource: raw-pixel reading (locator + LoadImageDataset); the part whose links to files stay fixed while the metadata master may change. - JFJochHDF5Reader keeps a thin GetImageLocation/GetRawImage/GetHDF5DataSource that delegate to image_source_; the six layout members are gone, parsed into a local Layout handed to the source at the end of ReadFile. Cache cleared on Close(). Verified: tests/jfjoch_test [HDF5] (79 cases / 1775 assertions), and jfjoch_process/azint/extract_hkl/scale relink unchanged. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|
|
ec8a45dc09 |
windows: bundle cuFFT in installer and tag the CUDA/CPU variant
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 12m54s
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 14m29s
Build Packages / build:rpm (rocky8) (push) Successful in 14m21s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 14m34s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 14m36s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 14m50s
Build Packages / build:rpm (rocky9_sls9) (push) Successful in 15m10s
Build Packages / XDS test (neggia plugin) (push) Successful in 7m44s
Build Packages / XDS test (durin plugin) (push) Successful in 8m29s
Build Packages / Generate python client (push) Successful in 31s
Build Packages / Create release (push) Skipped
Build Packages / XDS test (JFJoch plugin) (push) Successful in 8m46s
Build Packages / Build documentation (push) Successful in 56s
Build Packages / build:rpm (rocky9) (push) Successful in 12m39s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 11m23s
Build Packages / build:rpm (ubuntu2204) (push) Successful in 12m5s
Build Packages / DIALS test (push) Successful in 12m59s
Build Packages / Unit tests (push) Successful in 59m10s
cuFFT is the only CUDA component linked dynamically (cudart and the
fast-feedback indexer are static), so the prior Windows installer would
fail to launch the GPU path on a host without a CUDA toolkit. Ship
cufft64_*.dll next to the viewer (CUDA 13 keeps it in bin/x64, earlier
toolkits in bin); the DLL is self-contained, so the installed app needs
only an NVIDIA driver.
Tag the variant where it matters and nowhere else: the installer
filename (-cuda<major> / -cpu) and the Add/Remove Programs entry
("Jungfraujoch (CUDA)" / "(CPU)") advertise it, while the install folder
and Start Menu group stay plain "Jungfraujoch" -- the CUDA build is a
strict superset, so the two variants share a location and replace each
other.
Docs: SOFTWARE.md + JFJOCH_VIEWER.md.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
||
|
|
0c1babd0ca |
CMake: provide Eigen externally again; fix cpack NSIS icon escape
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 14m24s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 14m39s
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 14m54s
Build Packages / build:rpm (rocky8) (push) Successful in 14m47s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 14m57s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 15m27s
Build Packages / build:rpm (rocky9_sls9) (push) Successful in 15m38s
Build Packages / XDS test (durin plugin) (push) Successful in 8m7s
Build Packages / XDS test (neggia plugin) (push) Successful in 7m44s
Build Packages / Generate python client (push) Successful in 26s
Build Packages / Create release (push) Skipped
Build Packages / XDS test (JFJoch plugin) (push) Successful in 8m22s
Build Packages / Build documentation (push) Successful in 1m0s
Build Packages / build:rpm (rocky9) (push) Successful in 12m15s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 11m52s
Build Packages / build:rpm (ubuntu2204) (push) Successful in 12m25s
Build Packages / DIALS test (push) Successful in 12m49s
Build Packages / Unit tests (push) Successful in 58m37s
Revert Eigen from the FetchContent OVERRIDE_FIND_PACKAGE vendoring ( |
||
|
|
1ea5897fca |
windows: vendor wingetopt and scope server-only targets out of viewer-only builds
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 13m59s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 14m9s
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 14m24s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 14m44s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 14m46s
Build Packages / build:rpm (rocky8) (push) Successful in 14m48s
Build Packages / build:rpm (rocky9_sls9) (push) Successful in 15m27s
Build Packages / XDS test (neggia plugin) (push) Successful in 9m22s
Build Packages / XDS test (durin plugin) (push) Successful in 10m23s
Build Packages / Generate python client (push) Successful in 24s
Build Packages / Create release (push) Skipped
Build Packages / XDS test (JFJoch plugin) (push) Successful in 10m33s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 11m40s
Build Packages / Build documentation (push) Successful in 47s
Build Packages / build:rpm (ubuntu2204) (push) Successful in 12m23s
Build Packages / build:rpm (rocky9) (push) Successful in 13m0s
Build Packages / DIALS test (push) Successful in 13m57s
Build Packages / Unit tests (push) Successful in 59m20s
MSVC/Windows build fixes: - Force JFJOCH_VIEWER_ONLY ON for Windows and macOS; the broker/receiver/FPGA/ writer server stack is Linux-only, so those platforms build the viewer subset. - Vendor an OpenBSD/NetBSD getopt/getopt_long shim (tools/wingetopt/, BSD/ISC) as a WIN32-only static lib -- the MSVC CRT has no <getopt.h> -- and link it into the four portable CLI tools on Windows. - jfjoch_extract_hkl.cpp: include <getopt.h> explicitly (it relied on glibc's transitive <unistd.h>). - jfjoch_process.cpp: guard <unistd.h> with #ifndef _WIN32. - Guard JFJochStreamWriter and jfjoch_writer with IF(NOT JFJOCH_VIEWER_ONLY): the former pulls in JFJochImagePuller, the latter uses a fork()/waitpid() multi-process design; neither belongs to the portable viewer subset. - Record wingetopt in THIRD_PARTY_NOTICES.md and licenses/. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|
|
e5034d0a2c |
licenses: add third-party notices, attribution texts, and viewer license window
Acknowledge all bundled third-party software and satisfy attribution/notice requirements, while keeping it maintainable: - THIRD_PARTY_NOTICES.md: human-readable manifest (component, copyright, SPDX license, link) for fetched, vendored, and runtime/SDK dependencies. - licenses/: verbatim license texts; COLLECT.sh regenerates them from the build trees and system SDK locations. - Bundle the verbatim Qt LGPL-3.0 text and the CUDA Toolkit 12.8 EULA. - frontend: self-contained npm attribution generator (`npm run licenses` -> dist/THIRD_PARTY_LICENSES.txt), wired into the frontend build target. - Install LICENSE + notices + licenses/ into share/doc/jfjoch for every packaged component. - viewer: Help > "Third-party Licenses" window (QTextBrowser) showing a generated, self-contained HTML built from licenses/. - docs/SOFTWARE.md: drop the stale hand-kept dependency lists; point at the manifest. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|
|
e035f7c303 |
viewer: drop unused CMAKE_AUTORCC
The viewer's only .qrc is compiled explicitly via QT_ADD_RESOURCES into APP_RESOURCES; no .qrc is added directly as a target source, so AUTORCC never acted on anything. Remove the dead flag. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|
|
f9396e01e7 |
viewer: Windows NSIS / macOS installer polish + bundle analysis CLIs
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 13m43s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 14m16s
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 14m30s
Build Packages / build:rpm (rocky8) (push) Successful in 14m26s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 14m42s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 14m41s
Build Packages / build:rpm (rocky9_sls9) (push) Successful in 15m18s
Build Packages / XDS test (durin plugin) (push) Successful in 7m42s
Build Packages / XDS test (JFJoch plugin) (push) Successful in 7m43s
Build Packages / Generate python client (push) Successful in 30s
Build Packages / Create release (push) Skipped
Build Packages / XDS test (neggia plugin) (push) Successful in 8m8s
Build Packages / Build documentation (push) Successful in 1m5s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 10m52s
Build Packages / build:rpm (rocky9) (push) Successful in 12m31s
Build Packages / build:rpm (ubuntu2204) (push) Successful in 12m4s
Build Packages / DIALS test (push) Successful in 12m27s
Build Packages / Unit tests (push) Successful in 59m47s
NSIS installer was missing several things on Windows: - License: show the repo GPLv3 LICENSE as the click-through license page (CPACK_RESOURCE_FILE_LICENSE). - Start Menu: no shortcut was created -- add CPACK_PACKAGE_EXECUTABLES for jfjoch_viewer, and embed an app icon so the shortcut is not generic. The icon is a new multi-size jfjoch.ico (256 PNG + 48/32/16) compiled into the .exe via resources/jfjoch.rc; macOS gets the matching jfjoch.icns copied into the .app bundle (MACOSX_BUNDLE_ICON_FILE). Both derived from resources/jfjoch.png, padded square with transparent bands. - Naming: install folder, Start Menu group and Add/Remove Programs entry are now "Jungfraujoch" instead of "jfjoch <version>". Also ship the offline analysis CLIs (jfjoch_process/scale/azint/extract_hkl) in viewer-only / Windows packages: JFJochReceiverPlots now lives in JFJochCommon, so their stale JFJochReceiver link is dropped, leaving only the portable libs (reader/image_analysis/writer/common). tools/CMakeLists.txt is split so those four build everywhere while the hardware tools stay gated behind NOT JFJOCH_VIEWER_ONLY, and the viewer-only branch now adds tools/. They install into the "viewer" CPack component. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|
|
e6c6536e3a | JFJochReceiverPlots: Move to common/, so it can be linked without bringing JFJochReceiver HW dependencies | ||
|
|
5247acc07e |
CMake: package the viewer component in JFJOCH_VIEWER_ONLY builds
A viewer-only build builds jfjoch_viewer but the CPack block hard-coded CPACK_COMPONENTS_ALL to "jfjoch writer" and only appended "viewer" when JFJOCH_VIEWER_BUILD was set -- which a pure viewer-only build does not set. cpack then tried to package the empty jfjoch/writer components and failed, requiring a manual -D CPACK_COMPONENTS_ALL=viewer. Branch the component list on build mode: viewer-only packages just "viewer"; other modes keep "jfjoch writer" plus driver-dkms/viewer when their flags are set. Also drops the redundant re-set of the default list. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|
|
5064b5ba47 |
image_analysis: force Ceres to build without CUDA
USE_CUDA is a Ceres cache STRING (default "default" = auto-detect), not an option(), so a plain SET was shadowed by the cache default and CUDA got enabled on MSVC. Force it OFF in the cache instead. Also drop two dead settings: MINIGLOG (Ceres uses abseil logging now, no longer referenced) and EIGENSPARSE ON (already Ceres' default). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|
|
a89a4c5beb | jfjoch_viewer: Show detected GPUs in the about box | ||
|
|
9c9f818ea6 |
CMake: support DGX Spark (Blackwell GB10 sm_121 + aarch64 FFTW NEON)
- CUDA: append sm_121 (Blackwell GB10 / DGX Spark) to CMAKE_CUDA_ARCHITECTURES
when nvcc >= 12.9 knows it. The static list tops out at sm_120 and embeds no
PTX, so without this a build would fail to launch on Spark ("no kernel image
available"); guarded so CUDA 12.8 (which predates sm_121) is unaffected.
- FFTW: enable NEON codelets on aarch64 (Grace), mirroring the x86 SSE2/AVX/AVX2
branch, so single-precision FFT is SIMD-accelerated instead of scalar on ARM.
Both are inert on x86 / CUDA 12.8; verified configure still succeeds there.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
||
|
|
8cd46751f9 |
docker: drop fftw too -- the project builds FFTW itself
FFTW is fetched and built by the jungfraujoch CMake (single-precision, from the release tarball), so the system fftw packages (fftw-static/fftw-devel on Rocky, libfftw3-dev on Ubuntu) were unused. Remove them from all four images. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|
|
da5fff71a9 |
docker: unify static Qt 6.9.1 on all 4 Linux images, drop dead prebuilds
The jungfraujoch CMake now builds HDF5 + libtiff (FetchContent) and libjpeg-turbo + Eigen (ExternalProject / OVERRIDE_FIND_PACKAGE) itself, so the per-image pre-builds and system -dev packages for those were dead weight (the app rebuilt its own copies regardless). Consolidate dependency management into the one CMakeLists at the cost of longer build time (build env has network). - Qt: pin static 6.9.1 everywhere. ubuntu2204 was on 6.10.0 and ubuntu2404 used the OS Qt (~6.4, dynamic) -- the latter is now a static 6.9.1 build like the others, so every image ships a self-contained, identical-Qt viewer. - Remove the HDF5/libtiff/libjpeg-turbo/Eigen source builds + their system -dev packages + the stale /opt/* CMAKE_PREFIX_PATH/PKG_CONFIG_PATH entries. - nasm: now needed by the project's libjpeg-turbo ExternalProject; added to ubuntu2404 (the others already had it). - Standardize the Qt configure flags across all four (xcb, xcb_xlib=OFF, no Wayland -- the qtwayland module was never built, so wayland_client=ON on ubuntu2204 was a no-op). Untested here (no Docker on this host) -- needs a build in each image; the ubuntu2404 static-Qt dep list in particular should be sanity-checked. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|
|
31630c20a1 |
viewer: macOS .app / Windows GUI packaging + Qt deploy + CPack generators
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 12m52s
Build Packages / build:rpm (rocky8) (push) Successful in 14m24s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 15m16s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 15m12s
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 15m20s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 15m25s
Build Packages / build:rpm (rocky9_sls9) (push) Successful in 15m48s
Build Packages / XDS test (neggia plugin) (push) Successful in 8m36s
Build Packages / Generate python client (push) Successful in 27s
Build Packages / XDS test (JFJoch plugin) (push) Successful in 9m39s
Build Packages / Create release (push) Skipped
Build Packages / XDS test (durin plugin) (push) Successful in 9m59s
Build Packages / Build documentation (push) Successful in 54s
Build Packages / build:rpm (ubuntu2204) (push) Successful in 11m44s
Build Packages / build:rpm (rocky9) (push) Successful in 13m38s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 11m23s
Build Packages / DIALS test (push) Successful in 12m58s
Build Packages / Unit tests (push) Successful in 59m33s
Add the platform packaging the viewer was missing so it can ship as a .dmg (macOS) or installer (Windows): - viewer: set MACOSX_BUNDLE (a .app bundle on macOS) and WIN32_EXECUTABLE (GUI subsystem, no console window) -- both ignored where they don't apply; install with BUNDLE/RUNTIME destinations. - viewer: qt_generate_deploy_app_script + install(SCRIPT) to bundle the Qt runtime at install time (windeployqt on Windows, macdeployqt on macOS). Gated on Qt >= 6.5, which is where the OUTPUT_SCRIPT signature and the Linux deploy path landed; with a static Qt (our Linux builds) it is a no-op. - CPack: select DragNDrop (.dmg) on macOS and NSIS on Windows, ahead of the Linux-only /etc/* probes; DEB/RPM path unchanged. Verified: configures + generates cleanly on Linux with the viewer enabled (Qt 6.4.2 -> deploy step correctly skipped). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|
|
d4d2d0d8ad |
CMake: fix CI -- export vendored Eigen so Ceres' install(EXPORT) resolves
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 13m49s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 14m22s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 14m32s
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 14m37s
Build Packages / build:rpm (rocky8) (push) Successful in 14m30s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 14m38s
Build Packages / build:rpm (rocky9_sls9) (push) Successful in 15m11s
Build Packages / XDS test (durin plugin) (push) Successful in 7m49s
Build Packages / XDS test (JFJoch plugin) (push) Successful in 8m5s
Build Packages / Generate python client (push) Successful in 27s
Build Packages / Create release (push) Skipped
Build Packages / Build documentation (push) Successful in 1m5s
Build Packages / XDS test (neggia plugin) (push) Successful in 9m8s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 10m52s
Build Packages / build:rpm (ubuntu2204) (push) Successful in 11m12s
Build Packages / build:rpm (rocky9) (push) Successful in 12m34s
Build Packages / DIALS test (push) Successful in 12m37s
Build Packages / Unit tests (push) Successful in 58m0s
A clean configure failed at generation: install(EXPORT "CeresExport" ...) includes target "ceres" which requires target "eigen" that is not in any export set. Ceres' install(EXPORT CeresExport) is unconditional, and its ceres target transitively links the eigen target. As a FetchContent subproject Eigen leaves EIGEN_BUILD_CMAKE_PACKAGE OFF (it defaults to PROJECT_IS_TOP_LEVEL), so its install(EXPORT Eigen3Targets) never runs and eigen ends up in no installed export set. Force EIGEN_BUILD_CMAKE_PACKAGE ON so eigen is exported and Ceres' export validates. Install/export-only change; the build is unaffected. Verified with a clean configure (fresh CMakeCache): configure + generate now succeed where they previously errored. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|
|
cd394c5249 |
CMake: vendor Eigen (5.0.1) and libjpeg-turbo so the build is self-contained
Build Packages / Unit tests (push) Failing after 2m41s
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Failing after 2m34s
Build Packages / build:rpm (rocky8) (push) Failing after 2m29s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Failing after 2m38s
Build Packages / build:rpm (rocky8_sls9) (push) Failing after 2m34s
Build Packages / build:rpm (rocky8_nocuda) (push) Failing after 2m43s
Build Packages / build:rpm (rocky9_nocuda) (push) Failing after 2m49s
Build Packages / build:rpm (rocky9_sls9) (push) Failing after 2m56s
Build Packages / Generate python client (push) Successful in 21s
Build Packages / Build documentation (push) Successful in 1m9s
Build Packages / Create release (push) Skipped
Build Packages / build:rpm (ubuntu2404) (push) Failing after 2m15s
Build Packages / build:rpm (ubuntu2204) (push) Failing after 2m17s
Build Packages / XDS test (JFJoch plugin) (push) Failing after 2m24s
Build Packages / build:rpm (rocky9) (push) Failing after 2m34s
Build Packages / XDS test (neggia plugin) (push) Failing after 2m23s
Build Packages / DIALS test (push) Failing after 2m29s
Build Packages / XDS test (durin plugin) (push) Failing after 2m41s
Two deps the Linux build picked up from the system were absent on Windows. Bundle both, unconditionally (matching how libtiff/FFTW are vendored), so the tree builds without system Eigen/JPEG: - Eigen 5.0.1 via FetchContent with OVERRIDE_FIND_PACKAGE, so every find_package(Eigen3) -- ours, Ceres', and ffbidx' -- resolves to this copy and the requested 3.4 version is satisfied by the newer major. ffbidx's bundled eigen submodule is disabled (GIT_SUBMODULES "" on fast-indexer) so it no longer creates a duplicate Eigen3::Eigen target. Verified on a CUDA build: Ceres 2.3.0, the analysis libs, and ffbidx's CUDA code all compile against 5.0.1. - libjpeg-turbo 3.0.4 via ExternalProject (upstream discourages add_subdirectory); built+installed static and imported as JPEG::JPEG, replacing find_package(JPEG) in preview/. SIMD is lazy: WITH_SIMD=ON + REQUIRE_SIMD=OFF means NASM-accelerated when nasm is present, otherwise a warning and a scalar build (no hard failure). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|
|
4737eff1a9 | jfjoch_process: Missing include <set> | ||
|
|
7eb927e82f | CMake: Ensure static ZLIB (must be before FIND_PACKAGE) | ||
|
|
1ae2e6869d |
CLAUDE.md: record Windows viewer goal of MSVC + CUDA, and unbundled deps
The recurring goal is a Windows jfjoch_viewer built with MSVC *and* CUDA ON (GPU processing is wanted, not a CPU-only fallback); the non-CUDA path is the macOS fallback. Also note the three deps a self-contained Windows build still needs but FetchContent does not auto-provide: ZLIB (bundle zlib-ng as ZLIB::ZLIB), libjpeg-turbo (ExternalProject), and Eigen (header-only, also needed by Ceres) -- each guarded so the Linux build is unchanged. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|
|
025c6394b6 |
reader: fix Windows path handling in JFJochHDF5Reader
Two spots used POSIX-only path logic that breaks on Windows:
- dataset_name() located the basename with rfind('/'), which misses
backslash separators, so a C:\...\foo_master.h5 file prefix kept the
whole directory. Use std::filesystem::path::filename() instead.
- Legacy-format data-file resolution joined paths with
fmt::format("{}/{}", ...), producing mixed \/ separators and prepending
the master directory even to absolute link targets. Reuse the existing
ResolveRelativeToMaster() helper, which joins via std::filesystem and
leaves absolute targets untouched.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
||
|
|
4a39f2cfcf |
Fix FFTW build-tree header wiring and two MSVC warnings
FFTW exposes fftw3.h only via $<INSTALL_INTERFACE:include>, so consuming fftw3f from the build tree (FetchContent) leaves FFTIndexerCPU.h unable to find the header. A system-installed fftw3.h masks this on Linux, so it only bit on Windows; add the source-tree api/ dir to fftw3f's interface includes. Also two viewer-reachable warnings: - time_utc.h (C4477): %03ld was fed a chrono milliseconds::rep (64-bit), not a long; cast the 0-999 value to int and use %03d. - HDF5Objects.h (C4700): value-initialize the scalar read buffer. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|
|
b888c53509 |
CMake: stop libtiff/httplib pulling in webp, sharpyuv, brotli
libtiff's webp and lerc codec options default ON whenever their library is found on the build host, dragging in libwebp + libsharpyuv (webp) and libLerc. We only need DEFLATE (zlib) + the internal LZW codec, so turn both OFF. httplib likewise auto-enables Brotli content-encoding when system Brotli is present; gzip/zlib is enough for the broker, so disable it. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|
|
a872b68d6f |
ADUHistogram: Fix missing exception header
Build Packages / build:rpm (rocky9_nocuda) (push) Failing after 3m50s
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Failing after 11m18s
Build Packages / build:rpm (rocky8_nocuda) (push) Failing after 12m7s
Build Packages / build:rpm (rocky9_sls9) (push) Failing after 12m57s
Build Packages / build:rpm (rocky8_sls9) (push) Failing after 13m4s
Build Packages / build:rpm (rocky8) (push) Failing after 13m6s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Failing after 13m24s
Build Packages / build:rpm (rocky9) (push) Failing after 11m13s
Build Packages / Generate python client (push) Successful in 27s
Build Packages / Build documentation (push) Successful in 57s
Build Packages / Create release (push) Skipped
Build Packages / XDS test (neggia plugin) (push) Successful in 8m35s
Build Packages / XDS test (durin plugin) (push) Successful in 8m54s
Build Packages / build:rpm (ubuntu2204) (push) Failing after 10m48s
Build Packages / XDS test (JFJoch plugin) (push) Successful in 8m56s
Build Packages / build:rpm (ubuntu2404) (push) Failing after 10m12s
Build Packages / DIALS test (push) Successful in 11m57s
Build Packages / Unit tests (push) Successful in 56m50s
|
||
|
|
bcd588b400 |
CMake: build StreamWriter only into JFJochStreamWriter
Build Packages / Unit tests (push) Failing after 4m18s
Build Packages / build:rpm (rocky8_nocuda) (push) Failing after 5m29s
Build Packages / build:rpm (rocky9_nocuda) (push) Failing after 5m54s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Failing after 4m2s
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Failing after 4m44s
Build Packages / build:rpm (rocky8) (push) Failing after 5m39s
Build Packages / build:rpm (rocky9) (push) Failing after 5m35s
Build Packages / build:rpm (rocky9_sls9) (push) Failing after 6m13s
Build Packages / build:rpm (rocky8_sls9) (push) Failing after 6m22s
Build Packages / build:rpm (ubuntu2204) (push) Failing after 5m44s
Build Packages / Generate python client (push) Successful in 15s
Build Packages / build:rpm (ubuntu2404) (push) Failing after 5m3s
Build Packages / Create release (push) Skipped
Build Packages / Build documentation (push) Successful in 50s
Build Packages / DIALS test (push) Failing after 3m24s
Build Packages / XDS test (neggia plugin) (push) Failing after 3m15s
Build Packages / XDS test (JFJoch plugin) (push) Failing after 3m20s
Build Packages / XDS test (durin plugin) (push) Failing after 3m50s
StreamWriter.cpp was compiled into both JFJochWriter and JFJochStreamWriter, so JFJochWriter still transitively pulled in image_puller headers via StreamWriter.h. Compile it only into JFJochStreamWriter (which already links JFJochImagePuller); targets needing the streaming writer (jfjoch_writer, jfjoch_test) link that lib, while JFJochWriter consumers (viewer, tools, ImagePusher) no longer drag in the puller. Also drop a stray duplicate HDF5DataFile source listing. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|
|
ebc28744e2 |
viewer: fix MSVC compatibility in viewer-reachable code
Address portability issues found building jfjoch_viewer with MSVC:
- common/{ADUHistogram,AzimuthalIntegrationProfile}.h and
image_analysis/spot_finding/StrongPixelSet.h only need DeviceOutput,
so include fpga/pcie_driver/jfjoch_fpga.h (plain-C, self-contained)
directly instead of acquisition_device/AcquisitionDevice.h, which
dragged <unistd.h> into the viewer tree.
- common/time_utc.h: guard gmtime_r/timegm/localtime_r with the MSVC
equivalents (gmtime_s/_mkgmtime/localtime_s) under _WIN32; drop the
duplicated includes and add the headers used directly.
- gemmi_gph/gemmi/utf.hpp: vendor the upstream gemmi header; fileutil.hpp
includes it on Windows for UTF8_to_wchar but it was never vendored.
- writer/HDF5Objects.cpp: ExtractFilename returns path.filename().string()
(std::filesystem::path has no implicit conversion to std::string on
Windows, where it is wchar_t-based).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
||
|
|
07ce8b785a | CMake: Remove image_puller dependency from the jfjoch_viewer | ||
|
|
c9803ccbfd | Separate JFJochWriter and JFJochStreamWriter | ||
|
|
5a6485da3a |
cmake: use upstream libtiff (gitlab) at v4.7.1
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 11m1s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 11m2s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 10m29s
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 10m34s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 12m0s
Build Packages / build:rpm (rocky9_sls9) (push) Successful in 11m35s
Build Packages / build:rpm (rocky8) (push) Successful in 12m19s
Build Packages / build:rpm (ubuntu2204) (push) Successful in 11m10s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 10m35s
Build Packages / Generate python client (push) Successful in 18s
Build Packages / build:rpm (rocky9) (push) Successful in 12m46s
Build Packages / Create release (push) Skipped
Build Packages / Build documentation (push) Successful in 45s
Build Packages / XDS test (durin plugin) (push) Successful in 9m28s
Build Packages / DIALS test (push) Successful in 14m43s
Build Packages / XDS test (neggia plugin) (push) Successful in 6m54s
Build Packages / XDS test (JFJoch plugin) (push) Successful in 7m36s
Build Packages / Unit tests (push) Successful in 1h0m51s
Switch the libtiff FetchContent from the personal GitHub mirror to the upstream gitlab repo and bump v4.6.0 -> v4.7.1 -- cleaner provenance; the mirror was only ever a network-reachability workaround. Verified on Linux: fetches, builds static (libtiff.a/libtiffxx.a), and jfjoch_viewer links cleanly. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|
|
53645434be |
cmake: enable FFTW SSE2/AVX/AVX2 codelets (x86, runtime-dispatched)
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 14m9s
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 14m53s
Build Packages / build:rpm (rocky8) (push) Successful in 14m56s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 15m3s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 15m10s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 15m12s
Build Packages / build:rpm (rocky9_sls9) (push) Successful in 15m38s
Build Packages / XDS test (JFJoch plugin) (push) Successful in 8m15s
Build Packages / Generate python client (push) Successful in 30s
Build Packages / XDS test (durin plugin) (push) Successful in 9m16s
Build Packages / Create release (push) Skipped
Build Packages / XDS test (neggia plugin) (push) Successful in 8m48s
Build Packages / Build documentation (push) Successful in 1m10s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 11m15s
Build Packages / build:rpm (ubuntu2204) (push) Successful in 12m29s
Build Packages / build:rpm (rocky9) (push) Successful in 13m11s
Build Packages / DIALS test (push) Successful in 13m21s
Build Packages / Unit tests (push) Successful in 1h16m18s
FFTW selects SIMD codelets at runtime via cpuid, so enabling AVX2 does not require an AVX2 CPU -- it just speeds up the CPU FFT fallback indexer on capable hardware and falls back to SSE2/scalar otherwise. Arch-guarded to x86_64/AMD64 (ARM would need ENABLE_NEON). AVX-512 left off on purpose: it's x86-64-v4 (not our v3 target), the FFT gain over AVX2 is marginal, older Intel downclocks on it, and it's the riskiest to build under MSVC. Verified on Linux: SSE2/AVX/AVX2 codelets compile, libfftw3f.a stays a single static archive, jfjoch_viewer relinks cleanly. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|
|
0220c6376d |
cmake: fetch libtiff and FFTW instead of relying on system libs
Both are leaf deps (JFJochPreview / JFJochIndexing) that only our own code looks for, so building them ourselves removes the system-package lottery and gives a reproducible, statically-linked build on every platform. - libtiff: FetchContent, library only (jbig/zstd/lzma/jpeg/old-jpeg/tools/ tests off). The C++ binding (TIFF::CXX / libtiffxx) is packaged inconsistently across distros -- missing on Rocky 9 -- and absent on Windows, so find_package(TIFF COMPONENTS CXX) was unreliable; that call is removed and JFJochPreview links the tiff/tiffxx targets directly. GitHub mirror because upstream (gitlab) is unreachable from some restricted hosts. - FFTW: FetchContent single precision (ENABLE_FLOAT) from the release tarball -- the git repo ships no pre-generated codelets (needs OCaml genfft). It's now always available, so the CPU FFT indexer is always built and JFJOCH_USE_FFTW always defined; the "FFTW disabled" path is gone. Static (libfftw3f.a) via the global BUILD_SHARED_LIBS OFF. Verified on Linux: jfjoch_viewer builds and links libfftw3f.a + libtiff*.a, all static. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|
|
fcbe19103d | Update to most recent bitshuffle version | ||
|
|
0585fab9bf |
cmake: don't fetch sls/catch2 in a viewer-only build
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 8m20s
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 8m43s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 10m34s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 11m3s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 9m57s
Build Packages / build:rpm (rocky9_sls9) (push) Successful in 10m27s
Build Packages / build:rpm (rocky8) (push) Successful in 10m17s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 9m17s
Build Packages / build:rpm (ubuntu2204) (push) Successful in 10m22s
Build Packages / build:rpm (rocky9) (push) Successful in 11m10s
Build Packages / Generate python client (push) Successful in 19s
Build Packages / Create release (push) Skipped
Build Packages / Build documentation (push) Successful in 51s
Build Packages / XDS test (durin plugin) (push) Successful in 7m16s
Build Packages / XDS test (JFJoch plugin) (push) Successful in 6m38s
Build Packages / DIALS test (push) Successful in 12m31s
Build Packages / XDS test (neggia plugin) (push) Successful in 5m5s
Build Packages / Unit tests (push) Successful in 54m23s
Under JFJOCH_VIEWER_ONLY, only the viewer's transitive deps are built, so sls_detector_package (detector_control/receiver) and catch2 (tests) are never used -- and sls does not configure under MSVC, which is the whole point of the viewer-only mode. Skip fetching just those two; zstd, hdf5, spdlog, libzmq and httplib are still required (JFJochReader links httplib). Verified: cmake -DJFJOCH_VIEWER_ONLY=ON configures with sls/catch2 absent and `make jfjoch_viewer` still links. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|
|
3c6439530d |
cmake: raise policy floor to 3.5 for FetchContent deps (CMake 4.x)
CMake >= 4.0 (4.3.1 ships bundled with Visual Studio 2026) makes any cmake_minimum_required(VERSION < 3.5) a fatal error. The fetched libzmq still declares VERSION 3.0.2, which aborts configuration before our own CMakeLists gets a say. Set CMAKE_POLICY_VERSION_MINIMUM=3.5 before the FetchContent_MakeAvailable calls so those subprojects configure; the variable is simply unused (harmless) on CMake < 3.30. Verified against CMake 4.3.1: the real libzmq source fails without it and configures with it, and an in-file SET() propagates into the add_subdirectory child exactly as a -D cache entry does. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|
|
f21c22d453 |
cmake: add JFJOCH_VIEWER_ONLY to build the viewer standalone
New option (default OFF) that compiles only jfjoch_viewer and the libraries it transitively links -- common, image_analysis, writer, reader, preview, image_puller, frame_serialize, gemmi_gph, compression, jungfrau, and the OpenAPI model (JFJochAPI) -- skipping the Linux-only online stack (broker service, receiver, fpga, acquisition_device, detector_control, image_pusher, xds-plugin, tests, tools) and the frontend. This is the standalone build path for the cross-platform viewer. JFJochAPI is the only piece the viewer needs from broker/, so the broker service library and executable are gated behind NOT JFJOCH_VIEWER_ONLY. The full build and JFJOCH_VIEWER_BUILD (viewer on top of the full build) are unchanged -- that path is the verbatim ELSE() branch. Verified on Linux: cmake -DJFJOCH_VIEWER_ONLY=ON configures and `make jfjoch_viewer` links cleanly with the online stack absent. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|
|
74c2c808de |
cmake: drop GCC-only hardcoded flags, bump CUDA to C++20
Make the build less hostile to MSVC (needed for the viewer port) and align the CUDA standard with C++. - Remove the CMAKE_C/CXX_FLAGS_RELEASE overrides: -O3/-DNDEBUG only duplicate CMake's own GCC/Clang Release defaults, and the SET() clobbered the MSVC defaults. The lone meaningful flag, -Wno-deprecated-enum-enum-conversion, merely silenced warnings from the vendored Xilinx ap_private.h in the FPGA path; with no -Werror it is just log noise, so drop it. - CMAKE_CUDA_STANDARD 17 -> 20 (+ STANDARD_REQUIRED); CUDA >= 12.8 already supports C++20. - Drop the file-scoped -Ofast on JFPedestalCalc.cpp / JFConversionFloatingPoint.cpp: it is GCC-only and reaches the MSVC viewer via JFJochCommon -> JFCalibration. Those files now build at plain -O3. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|
|
1e53db8f64 |
Docker: Update 2606 to support python3.12/3.13
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 12m15s
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 12m45s
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 12m18s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 13m12s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 12m56s
Build Packages / XDS test (durin plugin) (push) Successful in 7m24s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 11m52s
Build Packages / build:rpm (rocky9_sls9) (push) Successful in 13m7s
Build Packages / build:rpm (rocky8) (push) Successful in 12m55s
Build Packages / Generate python client (push) Successful in 17s
Build Packages / Create release (push) Skipped
Build Packages / build:rpm (ubuntu2204) (push) Successful in 12m29s
Build Packages / build:rpm (rocky9) (push) Successful in 13m40s
Build Packages / Build documentation (push) Successful in 1m7s
Build Packages / DIALS test (push) Successful in 14m7s
Build Packages / XDS test (JFJoch plugin) (push) Successful in 7m23s
Build Packages / XDS test (neggia plugin) (push) Successful in 6m25s
Build Packages / Unit tests (push) Failing after 1h8m4s
|
||
|
|
3ce7666738 |
make_doc.sh: prefer the newest available python3.x
Build Packages / Unit tests (push) Successful in 51m32s
Build Packages / DIALS test (push) Successful in 9m31s
Build Packages / XDS test (durin plugin) (push) Successful in 5m48s
Build Packages / XDS test (JFJoch plugin) (push) Successful in 6m3s
Build Packages / XDS test (neggia plugin) (push) Successful in 5m31s
Build Packages / Generate python client (push) Successful in 26s
Build Packages / Build documentation (push) Successful in 54s
Build Packages / Create release (push) Skipped
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 13m15s
Build Packages / build:rpm (rocky8) (push) Successful in 14m9s
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 14m22s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 14m41s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 14m48s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 14m47s
Build Packages / build:rpm (rocky9_sls9) (push) Successful in 15m3s
Build Packages / build:rpm (rocky9) (push) Successful in 15m4s
Build Packages / build:rpm (ubuntu2204) (push) Successful in 13m8s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 12m36s
The bare python3 is often too old for the Sphinx build. Auto-select the newest python3.13/3.12/3.11/3 found on PATH, still allowing $PYTHON to override. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|
|
4e9505e6bb |
make_doc.sh: Use python3
Build Packages / build:rpm (rocky8_nocuda) (push) Failing after 2m58s
Build Packages / build:rpm (rocky9_nocuda) (push) Failing after 2m56s
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Failing after 2m31s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Failing after 3m0s
Build Packages / build:rpm (rocky8) (push) Failing after 3m6s
Build Packages / build:rpm (rocky9_sls9) (push) Failing after 3m23s
Build Packages / build:rpm (rocky8_sls9) (push) Failing after 3m31s
Build Packages / build:rpm (ubuntu2204) (push) Failing after 2m46s
Build Packages / build:rpm (rocky9) (push) Failing after 2m54s
Build Packages / Generate python client (push) Successful in 11s
Build Packages / Build documentation (push) Failing after 9s
Build Packages / Create release (push) Skipped
Build Packages / build:rpm (ubuntu2404) (push) Failing after 3m18s
Build Packages / XDS test (neggia plugin) (push) Successful in 5m47s
Build Packages / XDS test (durin plugin) (push) Successful in 6m54s
Build Packages / XDS test (JFJoch plugin) (push) Successful in 6m58s
Build Packages / DIALS test (push) Successful in 9m47s
Build Packages / Unit tests (push) Successful in 53m21s
|
||
|
|
a34a033c99 |
frontend: auto-fill the missing phi bound for a sector
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Failing after 3m39s
Build Packages / build:rpm (rocky8_nocuda) (push) Failing after 3m47s
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Failing after 3m41s
Build Packages / build:rpm (rocky8_sls9) (push) Failing after 3m45s
Build Packages / build:rpm (rocky9_nocuda) (push) Failing after 4m0s
Build Packages / build:rpm (rocky8) (push) Failing after 3m53s
Build Packages / build:rpm (rocky9_sls9) (push) Failing after 3m55s
Build Packages / build:rpm (ubuntu2204) (push) Failing after 2m41s
Build Packages / Generate python client (push) Successful in 32s
Build Packages / Build documentation (push) Failing after 27s
Build Packages / Create release (push) Skipped
Build Packages / build:rpm (rocky9) (push) Failing after 4m37s
Build Packages / build:rpm (ubuntu2404) (push) Failing after 4m49s
Build Packages / XDS test (neggia plugin) (push) Successful in 5m42s
Build Packages / XDS test (durin plugin) (push) Successful in 6m17s
Build Packages / XDS test (JFJoch plugin) (push) Successful in 7m4s
Build Packages / DIALS test (push) Successful in 10m37s
Build Packages / Unit tests (push) Successful in 56m38s
When only one azimuthal phi bound is entered, fill the other so the sector is well-defined and the server accepts it: a missing phi_min becomes 0 and a missing phi_max becomes 360. Leaving both empty still means a full ring. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|
|
e9e5ec79cd |
frontend: phi_min/phi_max columns in the azimuthal ROI table
Surface the optional azimuthal phi-sector bounds (phi_min_deg/phi_max_deg) as editable columns, so a sector can be set from the web UI, not only the viewer. Also fix the Q_max row's d header, which read d_max but is d_min. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|
|
e60b42ea83 |
viewer: white, compact, right-aligned ROI numeric fields
The ROI bound editors now have a white background, a capped width and right-aligned text, which reads better for numeric entry. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|
|
abc1d1c079 |
viewer: add/subtract the selected ROI to/from the user mask
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Failing after 3m45s
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Failing after 3m44s
Build Packages / build:rpm (rocky8_nocuda) (push) Failing after 3m50s
Build Packages / build:rpm (rocky8_sls9) (push) Failing after 3m45s
Build Packages / build:rpm (rocky8) (push) Failing after 3m46s
Build Packages / build:rpm (rocky9_nocuda) (push) Failing after 4m0s
Build Packages / build:rpm (rocky9_sls9) (push) Failing after 3m56s
Build Packages / build:rpm (ubuntu2204) (push) Failing after 3m5s
Build Packages / build:rpm (ubuntu2404) (push) Failing after 3m7s
Build Packages / build:rpm (rocky9) (push) Failing after 3m12s
Build Packages / Create release (push) Skipped
Build Packages / Build documentation (push) Failing after 21s
Build Packages / Generate python client (push) Successful in 31s
Build Packages / XDS test (durin plugin) (push) Successful in 5m53s
Build Packages / XDS test (neggia plugin) (push) Successful in 6m12s
Build Packages / XDS test (JFJoch plugin) (push) Successful in 6m54s
Build Packages / DIALS test (push) Successful in 8m46s
Build Packages / Unit tests (push) Successful in 48m22s
Restore the ROI-to-mask action on the new list: "Add to mask" and "Subtract from mask" buttons rasterise the selected ROI into the user mask (set or clear), through the same UpdateUserMask_i path. The ROI is evaluated with per-pixel resolution and phi from the geometry, so box, circle and azimuthal (sector) ROIs all map correctly. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|
|
81b48febcf |
viewer: remove the dead scratch-ROI widgets and worker methods
With the scratch ROI panel gone, delete the now-orphaned JFJochViewerImageROIStatistics(_Box/_Circle) widgets and the worker's unused scratch-ROI plumbing (SetROIBox/SetROICircle, the ROIElement member, AddROIToUserMask/SubtractROIFromUserMask). ROI-to-mask, if wanted later, should act on the selected list ROI. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|
|
52aca9a4a9 |
docs: ROIs/azimuthal apply to both FPGA and DECTRIS workflows
Clarify in FPGA_DATA_ANALYSIS.md that the ROI and azimuthal definitions are also evaluated on CPU via the shared image_analysis library, so they apply to the DECTRIS SIMPLON (EIGER) path that has no FPGA, not only the FPGA-accelerated JUNGFRAU/PSI path. Document the three NXmx writer formats (Legacy/VDS/Integrated) and the two acquisition workflows in CLAUDE.md. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|
|
d4c96d48fc | make_doc.sh: Use default python |