Compare commits

..

36 Commits

Author SHA1 Message Date
695d3f9271 Fixes
All checks were successful
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 11m53s
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 9m24s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 12m43s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 11m53s
Build Packages / Generate python client (push) Successful in 43s
Build Packages / Build documentation (push) Successful in 22s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 12m17s
Build Packages / Create release (push) Has been skipped
Build Packages / build:rpm (rocky9_sls9) (push) Successful in 10m50s
Build Packages / build:rpm (rocky8) (push) Successful in 10m7s
Build Packages / build:rpm (rocky9) (push) Successful in 11m6s
Build Packages / build:rpm (ubuntu2204) (push) Successful in 11m5s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 9m57s
Build Packages / build:rpm (rocky8_nocuda) (pull_request) Successful in 9m46s
Build Packages / build:rpm (rocky9_nocuda) (pull_request) Successful in 10m42s
Build Packages / build:rpm (ubuntu2204_nocuda) (pull_request) Successful in 10m20s
Build Packages / build:rpm (ubuntu2404_nocuda) (pull_request) Successful in 8m8s
Build Packages / build:rpm (rocky8_sls9) (pull_request) Successful in 9m43s
Build Packages / Generate python client (pull_request) Successful in 53s
Build Packages / build:rpm (rocky9_sls9) (pull_request) Successful in 10m49s
Build Packages / Build documentation (pull_request) Successful in 23s
Build Packages / Create release (pull_request) Has been skipped
Build Packages / build:rpm (rocky8) (pull_request) Successful in 9m17s
Build Packages / build:rpm (ubuntu2404) (pull_request) Successful in 8m38s
Build Packages / build:rpm (ubuntu2204) (pull_request) Successful in 10m33s
Build Packages / build:rpm (rocky9) (pull_request) Successful in 11m6s
Build Packages / Unit tests (push) Successful in 1h4m46s
Build Packages / Unit tests (pull_request) Successful in 53m28s
2026-03-26 18:26:40 +01:00
6b0fbf11dd Frontend: Remove indexing time plot 2026-03-26 18:25:44 +01:00
5dfaa79ff6 Fix OpenAPIConvert
Some checks failed
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 11m39s
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 12m59s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 13m23s
Build Packages / Generate python client (push) Successful in 1m0s
Build Packages / Build documentation (push) Successful in 28s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 18m11s
Build Packages / Create release (push) Has been skipped
Build Packages / build:rpm (rocky8) (push) Successful in 18m22s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 18m41s
Build Packages / build:rpm (rocky9_sls9) (push) Successful in 19m25s
Build Packages / build:rpm (rocky9) (push) Successful in 19m25s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 9m27s
Build Packages / build:rpm (ubuntu2204) (push) Successful in 11m19s
Build Packages / Unit tests (push) Has been cancelled
Build Packages / build:rpm (ubuntu2404_nocuda) (pull_request) Successful in 9m28s
Build Packages / build:rpm (rocky8_nocuda) (pull_request) Successful in 11m27s
Build Packages / build:rpm (rocky9_nocuda) (pull_request) Successful in 11m36s
Build Packages / Generate python client (pull_request) Successful in 49s
Build Packages / Build documentation (pull_request) Successful in 37s
Build Packages / build:rpm (ubuntu2204_nocuda) (pull_request) Successful in 12m59s
Build Packages / Create release (pull_request) Has been skipped
Build Packages / build:rpm (rocky8_sls9) (pull_request) Successful in 13m23s
Build Packages / build:rpm (rocky8) (pull_request) Successful in 11m44s
Build Packages / build:rpm (rocky9_sls9) (pull_request) Successful in 12m37s
Build Packages / build:rpm (rocky9) (pull_request) Successful in 12m12s
Build Packages / build:rpm (ubuntu2404) (pull_request) Successful in 9m39s
Build Packages / build:rpm (ubuntu2204) (pull_request) Successful in 11m26s
Build Packages / Unit tests (pull_request) Successful in 1h14m22s
2026-03-26 18:02:39 +01:00
57d6e8de84 jfjoch_process: Specify indexing algorithm
Some checks failed
Build Packages / build:rpm (rocky8_nocuda) (push) Failing after 7m48s
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Failing after 9m0s
Build Packages / build:rpm (rocky9_nocuda) (push) Failing after 10m7s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Failing after 10m5s
Build Packages / Build documentation (push) Successful in 1m11s
Build Packages / Generate python client (push) Successful in 1m16s
Build Packages / Create release (push) Has been skipped
Build Packages / build:rpm (rocky8_sls9) (push) Failing after 13m57s
Build Packages / build:rpm (rocky9_sls9) (push) Failing after 13m42s
Build Packages / build:rpm (rocky8) (push) Failing after 14m19s
Build Packages / build:rpm (rocky9) (push) Failing after 14m17s
Build Packages / build:rpm (ubuntu2204) (push) Failing after 10m24s
Build Packages / build:rpm (rocky8_nocuda) (pull_request) Failing after 6m48s
Build Packages / Unit tests (push) Failing after 7m4s
Build Packages / build:rpm (ubuntu2404) (push) Failing after 11m57s
Build Packages / build:rpm (rocky9_nocuda) (pull_request) Failing after 7m37s
Build Packages / build:rpm (ubuntu2204_nocuda) (pull_request) Failing after 7m33s
Build Packages / build:rpm (ubuntu2404_nocuda) (pull_request) Failing after 8m28s
Build Packages / Generate python client (pull_request) Successful in 1m38s
Build Packages / Build documentation (pull_request) Successful in 45s
Build Packages / Create release (pull_request) Has been skipped
Build Packages / build:rpm (rocky8_sls9) (pull_request) Failing after 11m29s
Build Packages / build:rpm (rocky8) (pull_request) Failing after 12m1s
Build Packages / Unit tests (pull_request) Failing after 7m9s
Build Packages / build:rpm (rocky9) (pull_request) Failing after 13m54s
Build Packages / build:rpm (rocky9_sls9) (pull_request) Failing after 14m11s
Build Packages / build:rpm (ubuntu2404) (pull_request) Failing after 10m58s
Build Packages / build:rpm (ubuntu2204) (pull_request) Failing after 12m21s
2026-03-26 16:14:18 +01:00
351b4f0070 jfjoch_process: Add mean time for each image analysis step
Some checks failed
Build Packages / build:rpm (rocky8_nocuda) (push) Failing after 8m48s
Build Packages / build:rpm (rocky9_nocuda) (push) Failing after 8m47s
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Failing after 10m12s
Build Packages / Generate python client (push) Successful in 34s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Failing after 10m53s
Build Packages / Build documentation (push) Successful in 29s
Build Packages / Create release (push) Has been skipped
Build Packages / build:rpm (rocky8) (push) Failing after 14m27s
Build Packages / build:rpm (rocky8_sls9) (push) Failing after 14m49s
Build Packages / build:rpm (rocky9) (push) Failing after 14m50s
Build Packages / build:rpm (rocky9_sls9) (push) Failing after 14m55s
Build Packages / Unit tests (push) Failing after 7m20s
Build Packages / build:rpm (ubuntu2404) (push) Failing after 9m27s
Build Packages / build:rpm (rocky8_nocuda) (pull_request) Failing after 7m32s
Build Packages / build:rpm (ubuntu2204) (push) Failing after 10m54s
Build Packages / build:rpm (ubuntu2404_nocuda) (pull_request) Failing after 6m35s
Build Packages / build:rpm (rocky9_nocuda) (pull_request) Failing after 8m5s
Build Packages / build:rpm (ubuntu2204_nocuda) (pull_request) Failing after 7m54s
Build Packages / Build documentation (pull_request) Successful in 57s
Build Packages / Generate python client (pull_request) Successful in 1m13s
Build Packages / Create release (pull_request) Has been skipped
Build Packages / build:rpm (rocky8_sls9) (pull_request) Failing after 10m46s
Build Packages / build:rpm (rocky8) (pull_request) Failing after 10m56s
Build Packages / Unit tests (pull_request) Failing after 7m46s
Build Packages / build:rpm (ubuntu2404) (pull_request) Failing after 10m54s
Build Packages / build:rpm (rocky9) (pull_request) Failing after 13m59s
Build Packages / build:rpm (rocky9_sls9) (pull_request) Failing after 14m46s
Build Packages / build:rpm (ubuntu2204) (pull_request) Failing after 13m33s
2026-03-26 15:43:04 +01:00
0eacee0801 Improve recording of timing for different data analysis steps 2026-03-26 15:20:58 +01:00
2d3c87e41e Update CHANGELOG
All checks were successful
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 11m28s
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 12m1s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 13m19s
Build Packages / Generate python client (push) Successful in 56s
Build Packages / Build documentation (push) Successful in 23s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 15m35s
Build Packages / Create release (push) Has been skipped
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 17m36s
Build Packages / build:rpm (rocky8) (push) Successful in 17m41s
Build Packages / build:rpm (rocky9) (push) Successful in 18m37s
Build Packages / build:rpm (rocky9_sls9) (push) Successful in 18m47s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 10m38s
Build Packages / build:rpm (ubuntu2204) (push) Successful in 11m25s
Build Packages / build:rpm (rocky8_nocuda) (pull_request) Successful in 9m48s
Build Packages / build:rpm (ubuntu2404_nocuda) (pull_request) Successful in 10m16s
Build Packages / build:rpm (rocky9_nocuda) (pull_request) Successful in 11m28s
Build Packages / build:rpm (ubuntu2204_nocuda) (pull_request) Successful in 11m20s
Build Packages / Generate python client (pull_request) Successful in 57s
Build Packages / Build documentation (pull_request) Successful in 16s
Build Packages / build:rpm (rocky8_sls9) (pull_request) Successful in 11m35s
Build Packages / Create release (pull_request) Has been skipped
Build Packages / build:rpm (rocky8) (pull_request) Successful in 10m19s
Build Packages / build:rpm (rocky9_sls9) (pull_request) Successful in 11m38s
Build Packages / build:rpm (rocky9) (pull_request) Successful in 10m28s
Build Packages / build:rpm (ubuntu2404) (pull_request) Successful in 9m13s
Build Packages / build:rpm (ubuntu2204) (pull_request) Successful in 9m52s
Build Packages / Unit tests (push) Successful in 58m47s
Build Packages / Unit tests (pull_request) Successful in 53m23s
2026-03-24 21:20:00 +01:00
e4ab54a94c CMake: minor updates 2026-03-24 21:16:26 +01:00
1cf59950eb OpenAPI: Remove SSL from settings 2026-03-24 21:13:53 +01:00
ba27a8771f Frontend: Fixes
All checks were successful
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 14m17s
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 16m1s
Build Packages / build:rpm (rocky8) (push) Successful in 17m2s
Build Packages / Generate python client (push) Successful in 29s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 17m49s
Build Packages / Build documentation (push) Successful in 18s
Build Packages / Create release (push) Has been skipped
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 18m1s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 18m13s
Build Packages / build:rpm (rocky9) (push) Successful in 19m23s
Build Packages / build:rpm (rocky9_sls9) (push) Successful in 19m31s
Build Packages / build:rpm (ubuntu2204) (push) Successful in 9m53s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 8m20s
Build Packages / Unit tests (push) Successful in 56m10s
2026-03-24 15:19:44 +01:00
c03978c603 VERSION: 1.0.0-rc.133
Some checks failed
Build Packages / build:rpm (rocky8_nocuda) (push) Failing after 7m42s
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Failing after 7m36s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Failing after 8m56s
Build Packages / build:rpm (rocky9_nocuda) (push) Failing after 9m21s
Build Packages / Generate python client (push) Successful in 56s
Build Packages / build:rpm (rocky9_sls9) (push) Failing after 9m49s
Build Packages / Create release (push) Has been skipped
Build Packages / Build documentation (push) Successful in 38s
Build Packages / build:rpm (rocky8) (push) Failing after 10m39s
Build Packages / build:rpm (rocky8_sls9) (push) Failing after 10m46s
Build Packages / build:rpm (rocky9) (push) Failing after 12m9s
Build Packages / build:rpm (ubuntu2404) (push) Failing after 5m33s
Build Packages / build:rpm (ubuntu2204) (push) Failing after 6m16s
Build Packages / Unit tests (push) Successful in 56m52s
2026-03-24 14:25:27 +01:00
57f0a1f5dd Minor fixes to httplib/OpenAPI
Some checks failed
Build Packages / build:rpm (rocky8_nocuda) (push) Failing after 7m17s
Build Packages / build:rpm (rocky9_nocuda) (push) Failing after 8m28s
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Failing after 8m27s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Failing after 8m30s
Build Packages / Build documentation (push) Successful in 35s
Build Packages / Generate python client (push) Successful in 43s
Build Packages / Create release (push) Has been skipped
Build Packages / build:rpm (rocky9_sls9) (push) Failing after 9m30s
Build Packages / build:rpm (rocky8) (push) Failing after 10m12s
Build Packages / build:rpm (rocky8_sls9) (push) Failing after 10m17s
Build Packages / build:rpm (rocky9) (push) Failing after 10m14s
Build Packages / build:rpm (ubuntu2404) (push) Has been cancelled
Build Packages / build:rpm (ubuntu2204) (push) Has been cancelled
Build Packages / Unit tests (push) Has been cancelled
2026-03-24 14:11:40 +01:00
e433b6aa5c Minor fixes to OpenAPI 2026-03-24 13:47:58 +01:00
4233d164c6 CI: Try again (cmake 3.26)
All checks were successful
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 12m59s
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 17m50s
Build Packages / build:rpm (rocky8) (push) Successful in 18m53s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 19m19s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 19m5s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 19m17s
Build Packages / Create release (push) Has been skipped
Build Packages / build:rpm (rocky9) (push) Successful in 19m13s
Build Packages / Build documentation (push) Successful in 24s
Build Packages / Generate python client (push) Successful in 33s
Build Packages / build:rpm (rocky9_sls9) (push) Successful in 19m38s
Build Packages / build:rpm (ubuntu2204) (push) Successful in 10m1s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 7m26s
Build Packages / Unit tests (push) Successful in 55m31s
2026-03-24 11:41:38 +01:00
435ed3f661 CI: Try again (cmake-data)
Some checks failed
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Failing after 6m50s
Build Packages / build:rpm (ubuntu2204) (push) Failing after 4m28s
Build Packages / Generate python client (push) Has been cancelled
Build Packages / build:rpm (rocky8) (push) Has been cancelled
Build Packages / Build documentation (push) Has been cancelled
Build Packages / Unit tests (push) Has been cancelled
Build Packages / Create release (push) Has been cancelled
Build Packages / build:rpm (rocky9) (push) Has been cancelled
Build Packages / build:rpm (rocky8_sls9) (push) Has been cancelled
Build Packages / build:rpm (rocky9_nocuda) (push) Has been cancelled
Build Packages / build:rpm (rocky9_sls9) (push) Has been cancelled
Build Packages / build:rpm (rocky8_nocuda) (push) Has been cancelled
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Has been cancelled
Build Packages / build:rpm (ubuntu2404) (push) Has been cancelled
2026-03-24 11:29:32 +01:00
3ec662e87a CI: Try again (no sudo)
Some checks failed
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Failing after 1m0s
Build Packages / build:rpm (ubuntu2204) (push) Has started running
Build Packages / build:rpm (ubuntu2404) (push) Has been cancelled
Build Packages / Generate python client (push) Has been cancelled
Build Packages / Build documentation (push) Has been cancelled
Build Packages / Unit tests (push) Has been cancelled
Build Packages / Create release (push) Has been cancelled
Build Packages / build:rpm (rocky9_nocuda) (push) Has been cancelled
Build Packages / build:rpm (rocky9) (push) Has been cancelled
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Has been cancelled
Build Packages / build:rpm (rocky8_sls9) (push) Has been cancelled
Build Packages / build:rpm (rocky8_nocuda) (push) Has been cancelled
Build Packages / build:rpm (rocky9_sls9) (push) Has been cancelled
Build Packages / build:rpm (rocky8) (push) Has been cancelled
2026-03-24 11:27:03 +01:00
14fa3c5578 CI: Try to install newer CMake on Ubuntu 22.04
Some checks failed
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Failing after 39s
Build Packages / build:rpm (ubuntu2204) (push) Failing after 1m24s
Build Packages / Generate python client (push) Has been cancelled
Build Packages / Build documentation (push) Has been cancelled
Build Packages / Unit tests (push) Has been cancelled
Build Packages / Create release (push) Has been cancelled
Build Packages / build:rpm (rocky9_nocuda) (push) Has been cancelled
Build Packages / build:rpm (rocky9) (push) Has been cancelled
Build Packages / build:rpm (ubuntu2404) (push) Has been cancelled
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Has been cancelled
Build Packages / build:rpm (rocky8) (push) Has been cancelled
Build Packages / build:rpm (rocky9_sls9) (push) Has been cancelled
Build Packages / build:rpm (rocky8_nocuda) (push) Has been cancelled
Build Packages / build:rpm (rocky8_sls9) (push) Has been cancelled
2026-03-24 11:24:22 +01:00
4bd7cd57bb jfjoch_broker: Seem to work, but plots make still trouble
Some checks failed
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Failing after 6m8s
Build Packages / build:rpm (ubuntu2204) (push) Failing after 3m32s
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 10m48s
Build Packages / Generate python client (push) Successful in 40s
Build Packages / Build documentation (push) Successful in 26s
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 12m33s
Build Packages / Create release (push) Has been skipped
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 13m8s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 16m18s
Build Packages / build:rpm (rocky8) (push) Successful in 16m33s
Build Packages / build:rpm (rocky9_sls9) (push) Successful in 17m20s
Build Packages / build:rpm (rocky9) (push) Successful in 17m43s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 9m46s
Build Packages / Unit tests (push) Successful in 56m20s
2026-03-23 22:36:55 +01:00
2d191b08d5 Clean-up (but fully AI generated, so need to carefully check)
Some checks failed
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Failing after 6m42s
Build Packages / build:rpm (ubuntu2204) (push) Failing after 3m11s
Build Packages / build:rpm (rocky8_nocuda) (push) Failing after 10m13s
Build Packages / build:rpm (rocky9_nocuda) (push) Failing after 10m12s
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Failing after 10m9s
Build Packages / Build documentation (push) Successful in 27s
Build Packages / Generate python client (push) Successful in 29s
Build Packages / Create release (push) Has been skipped
Build Packages / build:rpm (rocky9) (push) Failing after 13m14s
Build Packages / build:rpm (rocky8) (push) Failing after 14m7s
Build Packages / build:rpm (rocky8_sls9) (push) Failing after 14m34s
Build Packages / build:rpm (rocky9_sls9) (push) Failing after 14m38s
Build Packages / build:rpm (ubuntu2404) (push) Failing after 7m28s
Build Packages / Unit tests (push) Has been cancelled
2026-03-23 22:15:02 +01:00
75ed1f954e Work in progress
Some checks failed
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Failing after 5m1s
Build Packages / build:rpm (rocky8_nocuda) (push) Failing after 9m2s
Build Packages / build:rpm (ubuntu2204) (push) Failing after 5m52s
Build Packages / build:rpm (rocky9_nocuda) (push) Failing after 11m0s
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Failing after 11m26s
Build Packages / Build documentation (push) Successful in 1m12s
Build Packages / Create release (push) Has been skipped
Build Packages / Generate python client (push) Successful in 1m20s
Build Packages / build:rpm (rocky8_sls9) (push) Failing after 12m17s
Build Packages / build:rpm (rocky8) (push) Failing after 14m22s
Build Packages / build:rpm (rocky9) (push) Failing after 14m50s
Build Packages / build:rpm (rocky9_sls9) (push) Failing after 14m59s
Build Packages / build:rpm (ubuntu2404) (push) Failing after 9m7s
Build Packages / Unit tests (push) Has been cancelled
2026-03-23 21:41:09 +01:00
f06f146f6a jfjoch_broker: Add static file function to header
Some checks failed
Build Packages / build:rpm (ubuntu2204) (push) Has been cancelled
Build Packages / build:rpm (ubuntu2404) (push) Has been cancelled
Build Packages / Generate python client (push) Has been cancelled
Build Packages / Build documentation (push) Has been cancelled
Build Packages / Unit tests (push) Has been cancelled
Build Packages / Create release (push) Has been cancelled
Build Packages / build:rpm (rocky9_nocuda) (push) Has been cancelled
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Has been cancelled
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Has been cancelled
Build Packages / build:rpm (rocky8_nocuda) (push) Has been cancelled
Build Packages / build:rpm (rocky8) (push) Has been cancelled
Build Packages / build:rpm (rocky9_sls9) (push) Has been cancelled
Build Packages / build:rpm (rocky9) (push) Has been cancelled
Build Packages / build:rpm (rocky8_sls9) (push) Has been cancelled
2026-03-23 21:35:45 +01:00
294a934727 jfjoch_broker: Remove OpenSSL (for now) 2026-03-23 21:33:53 +01:00
a19443a026 jfjoch_broker: Move to cpp-httplib work in progress (not working)
Some checks failed
Build Packages / build:rpm (ubuntu2204) (push) Has been cancelled
Build Packages / build:rpm (ubuntu2404) (push) Has been cancelled
Build Packages / Generate python client (push) Has been cancelled
Build Packages / Build documentation (push) Has been cancelled
Build Packages / Unit tests (push) Has been cancelled
Build Packages / Create release (push) Has been cancelled
Build Packages / build:rpm (rocky9_nocuda) (push) Has been cancelled
Build Packages / build:rpm (rocky9_sls9) (push) Has been cancelled
Build Packages / build:rpm (rocky8) (push) Has been cancelled
Build Packages / build:rpm (rocky8_nocuda) (push) Has been cancelled
Build Packages / build:rpm (rocky9) (push) Has been cancelled
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Has been cancelled
Build Packages / build:rpm (rocky8_sls9) (push) Has been cancelled
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Has been cancelled
2026-03-23 21:31:20 +01:00
6655284284 jfjoch_tests: Zero initialize StartMessage in ZMQMetadataSocket test for more reproducible result
Some checks failed
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Failing after 7m44s
Build Packages / build:rpm (ubuntu2204) (push) Failing after 3m17s
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 11m46s
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 11m53s
Build Packages / Build documentation (push) Successful in 39s
Build Packages / Generate python client (push) Successful in 55s
Build Packages / Create release (push) Has been skipped
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 14m12s
Build Packages / build:rpm (rocky8) (push) Successful in 16m28s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 16m38s
Build Packages / build:rpm (rocky9) (push) Successful in 18m4s
Build Packages / build:rpm (rocky9_sls9) (push) Successful in 18m13s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 9m13s
Build Packages / Unit tests (push) Successful in 54m25s
2026-03-23 14:41:43 +01:00
b23ef2b881 Add CMAKE_DL_LIBS to httplib
Some checks failed
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Failing after 7m7s
Build Packages / build:rpm (ubuntu2204) (push) Failing after 3m32s
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 10m59s
Build Packages / Generate python client (push) Successful in 53s
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 12m14s
Build Packages / Build documentation (push) Successful in 29s
Build Packages / Create release (push) Has been skipped
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 14m17s
Build Packages / build:rpm (rocky8) (push) Successful in 17m12s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 17m22s
Build Packages / build:rpm (rocky9) (push) Successful in 17m47s
Build Packages / build:rpm (rocky9_sls9) (push) Successful in 17m56s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 9m33s
Build Packages / Unit tests (push) Failing after 59m10s
2026-03-23 11:46:35 +01:00
d3ede34d6e HDF5: Update to 2.1.0
Some checks failed
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Failing after 6m59s
Build Packages / build:rpm (rocky8_nocuda) (push) Failing after 10m31s
Build Packages / build:rpm (ubuntu2204) (push) Failing after 3m38s
Build Packages / Generate python client (push) Successful in 32s
Build Packages / Build documentation (push) Successful in 44s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 14m3s
Build Packages / Create release (push) Has been skipped
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 14m8s
Build Packages / build:rpm (rocky9_sls9) (push) Successful in 17m8s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 17m33s
Build Packages / build:rpm (rocky8) (push) Successful in 17m42s
Build Packages / build:rpm (rocky9) (push) Successful in 18m19s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 9m41s
Build Packages / Unit tests (push) Failing after 58m43s
2026-03-23 09:54:05 +01:00
c10c7c24b2 httplib: Implement via FetchContent for tighter integration and easier updates 2026-03-23 09:44:20 +01:00
500eb15848 JFJochImageReadingWorker: Add missing header
All checks were successful
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 12m21s
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 16m1s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 16m15s
Build Packages / Generate python client (push) Successful in 48s
Build Packages / Build documentation (push) Successful in 42s
Build Packages / build:rpm (rocky8) (push) Successful in 17m47s
Build Packages / Create release (push) Has been skipped
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 18m1s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 18m11s
Build Packages / build:rpm (rocky9) (push) Successful in 19m3s
Build Packages / build:rpm (rocky9_sls9) (push) Successful in 19m11s
Build Packages / build:rpm (ubuntu2204) (push) Successful in 10m5s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 8m31s
Build Packages / Unit tests (push) Successful in 55m56s
2026-03-18 21:21:53 +01:00
2199cc3bc2 Increase Catch2 version to recent one 2026-03-18 21:21:28 +01:00
cd70fa0eca Move spdlog to downloaded dependency
Some checks failed
Build Packages / build:rpm (rocky8_nocuda) (push) Failing after 10m33s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Failing after 13m28s
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Failing after 14m11s
Build Packages / build:rpm (rocky9_nocuda) (push) Failing after 15m22s
Build Packages / Generate python client (push) Successful in 1m12s
Build Packages / Build documentation (push) Successful in 24s
Build Packages / Create release (push) Has been skipped
Build Packages / build:rpm (rocky9) (push) Failing after 16m31s
Build Packages / build:rpm (rocky8_sls9) (push) Failing after 17m13s
Build Packages / build:rpm (rocky8) (push) Failing after 17m15s
Build Packages / build:rpm (rocky9_sls9) (push) Failing after 17m27s
Build Packages / build:rpm (ubuntu2204) (push) Failing after 10m15s
Build Packages / build:rpm (ubuntu2404) (push) Failing after 8m40s
Build Packages / Unit tests (push) Has been cancelled
2026-03-18 20:30:48 +01:00
7f6caab3cf jfjoch_tests: Add test for HDF5 pusher republish functionality
All checks were successful
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 11m27s
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 16m21s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 16m49s
Build Packages / Generate python client (push) Successful in 37s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 17m44s
Build Packages / Build documentation (push) Successful in 32s
Build Packages / Create release (push) Has been skipped
Build Packages / build:rpm (rocky8) (push) Successful in 18m46s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 20m1s
Build Packages / build:rpm (rocky9_sls9) (push) Successful in 20m37s
Build Packages / build:rpm (rocky9) (push) Successful in 20m39s
Build Packages / build:rpm (ubuntu2204) (push) Successful in 11m32s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 8m44s
Build Packages / Unit tests (push) Successful in 56m37s
2026-03-13 19:18:46 +01:00
e6b905a832 PostIndexingRefinement: Fix a bug in spot indexing cutoffs 2026-03-13 19:18:19 +01:00
4f79e12b92 HDF5FilePusher: Add republish socket
All checks were successful
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 13m14s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 13m28s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 13m55s
Build Packages / Generate python client (push) Successful in 1m1s
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 15m11s
Build Packages / Build documentation (push) Successful in 29s
Build Packages / Create release (push) Has been skipped
Build Packages / build:rpm (rocky8) (push) Successful in 19m52s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 20m4s
Build Packages / build:rpm (rocky9_sls9) (push) Successful in 20m36s
Build Packages / build:rpm (rocky9) (push) Successful in 20m39s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 10m37s
Build Packages / build:rpm (ubuntu2204) (push) Successful in 11m29s
Build Packages / Unit tests (push) Successful in 56m44s
2026-03-13 16:59:21 +01:00
44988afe5a PostIndexingRefinement: Fixes
All checks were successful
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 13m1s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 13m46s
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 14m7s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 15m11s
Build Packages / Generate python client (push) Successful in 1m0s
Build Packages / Build documentation (push) Successful in 33s
Build Packages / Create release (push) Has been skipped
Build Packages / build:rpm (rocky8) (push) Successful in 19m55s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 20m23s
Build Packages / build:rpm (rocky9) (push) Successful in 20m33s
Build Packages / build:rpm (rocky9_sls9) (push) Successful in 21m1s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 10m29s
Build Packages / build:rpm (ubuntu2204) (push) Successful in 12m5s
Build Packages / Unit tests (push) Successful in 58m8s
2026-03-12 14:33:34 +01:00
a27f5dc482 PostIndexingRefinement: Update name
Some checks failed
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 12m23s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 14m58s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 15m8s
Build Packages / Generate python client (push) Successful in 38s
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 15m49s
Build Packages / Build documentation (push) Successful in 57s
Build Packages / Create release (push) Has been skipped
Build Packages / build:rpm (ubuntu2404) (push) Has started running
Build Packages / build:rpm (rocky9) (push) Has been cancelled
Build Packages / build:rpm (ubuntu2204) (push) Has been cancelled
Build Packages / build:rpm (rocky9_sls9) (push) Has been cancelled
Build Packages / Unit tests (push) Has been cancelled
Build Packages / build:rpm (rocky8) (push) Has been cancelled
Build Packages / build:rpm (rocky8_sls9) (push) Has been cancelled
2026-03-12 14:16:19 +01:00
8fce82d9d8 EigenRefine: Allow for multi-lattice selection after indexing 2026-03-12 14:00:10 +01:00
20 changed files with 128 additions and 334 deletions

View File

@@ -76,16 +76,27 @@ jobs:
upload_url: https://gitea.psi.ch/api/packages/mx/debian/pool/noble/nocuda/upload
steps:
- uses: actions/checkout@v4
- name: Setup build (cmake)
- name: Install CMake 3.26 on Ubuntu 22.04
if: matrix.distro == 'ubuntu2204' || matrix.distro == 'ubuntu2204_nocuda'
shell: bash
run: |
set -euo pipefail
apt-get update
apt-get install -y wget gpg ca-certificates
wget -qO- https://apt.kitware.com/keys/kitware-archive-latest.asc \
| gpg --dearmor \
| tee /usr/share/keyrings/kitware-archive-keyring.gpg > /dev/null
echo "deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ jammy main" \
| tee /etc/apt/sources.list.d/kitware.list > /dev/null
apt-get update
apt-get install -y cmake=3.26.* cmake-data=3.26.* kitware-archive-keyring
cmake --version
- name: Build packages
shell: bash
run: |
mkdir -p build
cd build
cmake -G Ninja -DJFJOCH_INSTALL_DRIVER_SOURCE=ON -DJFJOCH_VIEWER_BUILD=ON -DCMAKE_BUILD_TYPE=Release ${{ matrix.cmake_flags }} ..
- name: Build packages
shell: bash
run: |
cd build
ninja frontend
ninja -j16 package
- name: Upload packages
@@ -122,32 +133,6 @@ jobs:
python3 gitea_upload_file.py "$file"
done
fi
dials-test:
name: DIALS processing test
runs-on: jfjoch_rocky9
steps:
- uses: actions/checkout@v4
- name: Build processing test
shell: bash
run: |
mkdir -p build
cd build
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release ..
ninja -j16 jfjoch_hdf5_test
- name: Generate test data (with virtual data set and 4 linked image files)
shell: bash
run: |
set -euo pipefail
mkdir -p dials_test
cd dials_test
../build/tools/jfjoch_hdf5_test ../tests/test_data/compression_benchmark.h5 -n100 -f25 -V
- name: Run DIALS processing
shell: bash
run: |
source /opt/dials-v3-27-0/dials_env.sh
set -euo pipefail
cd dials_test
xia2.ssx image=writing_test_master.h5 space_group=P43212 unit_cell=78.551,78.551,36.914,90.000,90.000,90.000
python-client:
name: Generate python client
runs-on: jfjoch_rocky8

View File

@@ -175,7 +175,7 @@ ENDIF()
IF (NOT JFJOCH_WRITER_ONLY)
ADD_CUSTOM_COMMAND(OUTPUT frontend/dist/index.html
COMMAND npm ci
COMMAND npm install
COMMAND npm run build
COMMAND npm run redocly
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/frontend)

View File

@@ -795,7 +795,7 @@ org::openapitools::server::model::File_writer_format Convert(FileWriterFormat in
org::openapitools::server::model::File_writer_format ret;
switch (input) {
case FileWriterFormat::DataOnly:
ret.setValue(org::openapitools::server::model::File_writer_format::eFile_writer_format::NXMXONLYDATA);
ret.setValue(org::openapitools::server::model::File_writer_format::eFile_writer_format::NONE);
break;
case FileWriterFormat::NXmxLegacy:
ret.setValue(org::openapitools::server::model::File_writer_format::eFile_writer_format::NXMXLEGACY);
@@ -803,9 +803,6 @@ org::openapitools::server::model::File_writer_format Convert(FileWriterFormat in
case FileWriterFormat::NXmxVDS:
ret.setValue(org::openapitools::server::model::File_writer_format::eFile_writer_format::NXMXVDS);
break;
case FileWriterFormat::NXmxIntegrated:
ret.setValue(org::openapitools::server::model::File_writer_format::eFile_writer_format::NXMXINTEGRATED);
break;
case FileWriterFormat::CBF:
ret.setValue(org::openapitools::server::model::File_writer_format::eFile_writer_format::CBF);
break;
@@ -823,14 +820,12 @@ org::openapitools::server::model::File_writer_format Convert(FileWriterFormat in
FileWriterFormat Convert(const org::openapitools::server::model::File_writer_format& input) {
switch (input.getValue()) {
case org::openapitools::server::model::File_writer_format::eFile_writer_format::NXMXONLYDATA:
case org::openapitools::server::model::File_writer_format::eFile_writer_format::NONE:
return FileWriterFormat::DataOnly;
case org::openapitools::server::model::File_writer_format::eFile_writer_format::NXMXLEGACY:
return FileWriterFormat::NXmxLegacy;
case org::openapitools::server::model::File_writer_format::eFile_writer_format::NXMXVDS:
return FileWriterFormat::NXmxVDS;
case org::openapitools::server::model::File_writer_format::eFile_writer_format::NXMXINTEGRATED:
return FileWriterFormat::NXmxIntegrated;
case org::openapitools::server::model::File_writer_format::eFile_writer_format::CBF:
return FileWriterFormat::CBF;
case org::openapitools::server::model::File_writer_format::eFile_writer_format::TIFF:

View File

@@ -75,8 +75,8 @@ void to_json(nlohmann::json& j, const File_writer_format& o)
case File_writer_format::eFile_writer_format::INVALID_VALUE_OPENAPI_GENERATED:
j = "INVALID_VALUE_OPENAPI_GENERATED";
break;
case File_writer_format::eFile_writer_format::NXMXONLYDATA:
j = "NXmxOnlyData";
case File_writer_format::eFile_writer_format::NONE:
j = "None";
break;
case File_writer_format::eFile_writer_format::NXMXLEGACY:
j = "NXmxLegacy";
@@ -84,9 +84,6 @@ void to_json(nlohmann::json& j, const File_writer_format& o)
case File_writer_format::eFile_writer_format::NXMXVDS:
j = "NXmxVDS";
break;
case File_writer_format::eFile_writer_format::NXMXINTEGRATED:
j = "NXmxIntegrated";
break;
case File_writer_format::eFile_writer_format::CBF:
j = "CBF";
break;
@@ -103,8 +100,8 @@ void from_json(const nlohmann::json& j, File_writer_format& o)
{
auto s = j.get<std::string>();
if (s == "NXmxOnlyData") {
o.setValue(File_writer_format::eFile_writer_format::NXMXONLYDATA);
if (s == "None") {
o.setValue(File_writer_format::eFile_writer_format::NONE);
}
else if (s == "NXmxLegacy") {
o.setValue(File_writer_format::eFile_writer_format::NXMXLEGACY);
@@ -112,9 +109,6 @@ void from_json(const nlohmann::json& j, File_writer_format& o)
else if (s == "NXmxVDS") {
o.setValue(File_writer_format::eFile_writer_format::NXMXVDS);
}
else if (s == "NXmxIntegrated") {
o.setValue(File_writer_format::eFile_writer_format::NXMXINTEGRATED);
}
else if (s == "CBF") {
o.setValue(File_writer_format::eFile_writer_format::CBF);
}

View File

@@ -12,7 +12,7 @@
/*
* File_writer_format.h
*
* NoFileWritten - no files are written at all NXmxOnlyData - only data files are written, no master file NXmxLegacy - legacy format with soft links to data files in the master file; necessary for DECTRIS Albula 4.0 and DECTRIS Neggia NXmxVDS - newer format with virtual dataset linking data files in the master file, also includes better metadata handling NXmxIntegrated - single HDF5 per dataset CBF - CBF format (limited metadata) TIFF - TIFF format (no metadata)
* None - no master file written NXmxLegacy - legacy format with soft links to data files in the master file; necessary for DECTRIS Albula 4.0 and DECTRIS Neggia NXmxVDS - newer format with virtual dataset linking data files in the master file, also includes better metadata handling
*/
#ifndef File_writer_format_H_
@@ -25,7 +25,7 @@ namespace org::openapitools::server::model
{
/// <summary>
/// NoFileWritten - no files are written at all NXmxOnlyData - only data files are written, no master file NXmxLegacy - legacy format with soft links to data files in the master file; necessary for DECTRIS Albula 4.0 and DECTRIS Neggia NXmxVDS - newer format with virtual dataset linking data files in the master file, also includes better metadata handling NXmxIntegrated - single HDF5 per dataset CBF - CBF format (limited metadata) TIFF - TIFF format (no metadata)
/// None - no master file written NXmxLegacy - legacy format with soft links to data files in the master file; necessary for DECTRIS Albula 4.0 and DECTRIS Neggia NXmxVDS - newer format with virtual dataset linking data files in the master file, also includes better metadata handling
/// </summary>
class File_writer_format
{
@@ -38,10 +38,9 @@ public:
// Avoiding name clashes with user defined
// enum values
INVALID_VALUE_OPENAPI_GENERATED = 0,
NXMXONLYDATA,
NONE,
NXMXLEGACY,
NXMXVDS,
NXMXINTEGRATED,
CBF,
TIFF,
NOFILEWRITTEN

View File

@@ -642,22 +642,17 @@ components:
file_writer_format:
type: string
enum:
- "NXmxOnlyData"
- "None"
- "NXmxLegacy"
- "NXmxVDS"
- "NXmxIntegrated"
- "CBF"
- "TIFF"
- "NoFileWritten"
default: "NXmxLegacy"
description: |
NoFileWritten - no files are written at all
NXmxOnlyData - only data files are written, no master file
None - no master file written
NXmxLegacy - legacy format with soft links to data files in the master file; necessary for DECTRIS Albula 4.0 and DECTRIS Neggia
NXmxVDS - newer format with virtual dataset linking data files in the master file, also includes better metadata handling
NXmxIntegrated - single HDF5 per dataset
CBF - CBF format (limited metadata)
TIFF - TIFF format (no metadata)
file_writer_settings:
type: object
properties:

File diff suppressed because one or more lines are too long

View File

@@ -1083,8 +1083,7 @@ DiffractionExperiment &DiffractionExperiment::ImagesPerFile(int64_t input) {
int64_t DiffractionExperiment::GetImagesPerFile() const {
auto tmp = dataset.GetImagesPerFile();
if (tmp == 0
|| file_writer.GetHDF5MasterFormatVersion() == FileWriterFormat::NXmxIntegrated)
if (tmp == 0)
return GetImageNum();
else
return tmp;

View File

@@ -33,7 +33,7 @@ enum class FileWriterFormat : int {
DataOnly = 0,
NXmxLegacy = 1,
NXmxVDS = 2,
NXmxIntegrated = 3,
// TODO: NXmxTR = 3
CBF = 4,
TIFF = 5,
NoFile = 6

View File

@@ -8,9 +8,6 @@ ARG EIGEN_TAG=3.4.0
ARG LIBJPEG_TURBO_VERSION=3.1.2
ARG LIBTIFF_VERSION=v4.7.1
ARG HDF5_TAG="hdf5_1.14.6"
ARG DIALS_VERSION=3.27.0
ARG DIALS_TARBALL_URL=https://github.com/dials/dials/releases/download/v3.27.0/dials-v3-27-0-linux-x86_64.tar.xz
ARG DIALS_PREFIX=/opt
# Update base, enable CRB (RHEL/Rocky 9), and install toolchain + Qt deps
RUN dnf -y update && \
@@ -68,8 +65,6 @@ RUN dnf -y update && \
libdrm-devel \
libglvnd-core-devel \
libglvnd-devel \
glibc-langpack-en \
glibc-locale-source \
freetype-devel && \
dnf clean all && rm -rf /var/cache/dnf
@@ -190,23 +185,9 @@ RUN set -eux; \
cmake --install .; \
cd /; rm -rf /tmp/qt-everywhere-src-${QT_VERSION} /tmp/qt-everywhere-src-${QT_VERSION}.tar.xz
# Install DIALS using the official binary tarball workflow
RUN set -eux; \
cd /tmp; \
curl -fL -o dials.tar.xz "${DIALS_TARBALL_URL}"; \
tar -xJf dials.tar.xz; \
cd dials-installer; \
./install --prefix="${DIALS_PREFIX}"; \
cd /; \
rm -rf /tmp/dials.tar.xz /tmp/dials-*-linux-x86_64
# Make Qt and Eigen discoverable by CMake
ENV CMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH}:/opt/hdf5-${HDF5_TAG}-static:/opt/qt-${QT_VERSION}-static
ENV LANG=en_US.UTF-8
ENV LANGUAGE=en_US:en
ENV LC_ALL=en_US.UTF-8
# Set workdir for your project
WORKDIR /workspace

View File

@@ -22,11 +22,11 @@ RUN set -eux; \
ca-certificates \
curl \
wget \
gpg \
git \
tar \
xz-utils \
build-essential \
cmake \
ninja-build \
python3 \
python3-requests \
@@ -78,25 +78,10 @@ RUN set -eux; \
libassimp-dev \
libglvnd-dev \
libfreetype6-dev; \
wget -qO- https://apt.kitware.com/keys/kitware-archive-latest.asc \
| gpg --dearmor \
| tee /usr/share/keyrings/kitware-archive-keyring.gpg > /dev/null; \
echo "deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ jammy main" \
| tee /etc/apt/sources.list.d/kitware.list > /dev/null; \
apt-get update; \
apt-get install -y --no-install-recommends \
cmake=3.26.* \
cmake-data=3.26.* \
kitware-archive-keyring; \
apt-get -y install gcc-12 g++-12; \
apt-get clean; \
rm -rf /var/lib/apt/lists/*
# Use GCC/G++ 12 for builds
ENV CC=/usr/bin/gcc-12
ENV CXX=/usr/bin/g++-12
ENV PATH=/usr/bin:${PATH}
# Build a static OpenSSL
RUN set -eux; \
cd /tmp; \
@@ -181,6 +166,11 @@ RUN set -eux; \
ENV CMAKE_PREFIX_PATH=/opt/libtiff-${LIBTIFF_VERSION}-static:/opt/libjpeg-turbo-${LIBJPEG_TURBO_VERSION}-static
ENV PKG_CONFIG_PATH=/opt/hdf5-${HDF5_TAG}-static/lib/pkgconfig:/opt/libjpeg-turbo-${LIBJPEG_TURBO_VERSION}-static/lib/pkgconfig:/opt/libtiff-${LIBTIFF_VERSION}-static/lib/pkgconfig:${OPENSSL_ROOT_DIR}/lib/pkgconfig:${OPENSSL_ROOT_DIR}/lib64/pkgconfig
# Use GCC/G++ 12 for builds
ENV CC=/usr/bin/gcc-12
ENV CXX=/usr/bin/g++-12
ENV PATH=/usr/bin:${PATH}
# Build and install static Qt 6.9 with Core, Gui, Widgets, Charts, DBus
ARG QT_PREFIX=/opt/qt-${QT_VERSION}-static
RUN set -eux; \

View File

@@ -1,17 +1,15 @@
# FileWriterFormat
NoFileWritten - no files are written at all NXmxOnlyData - only data files are written, no master file NXmxLegacy - legacy format with soft links to data files in the master file; necessary for DECTRIS Albula 4.0 and DECTRIS Neggia NXmxVDS - newer format with virtual dataset linking data files in the master file, also includes better metadata handling NXmxIntegrated - single HDF5 per dataset CBF - CBF format (limited metadata) TIFF - TIFF format (no metadata)
None - no master file written NXmxLegacy - legacy format with soft links to data files in the master file; necessary for DECTRIS Albula 4.0 and DECTRIS Neggia NXmxVDS - newer format with virtual dataset linking data files in the master file, also includes better metadata handling
## Enum
* `NXMXONLYDATA` (value: `'NXmxOnlyData'`)
* `NONE` (value: `'None'`)
* `NXMXLEGACY` (value: `'NXmxLegacy'`)
* `NXMXVDS` (value: `'NXmxVDS'`)
* `NXMXINTEGRATED` (value: `'NXmxIntegrated'`)
* `CBF` (value: `'CBF'`)
* `TIFF` (value: `'TIFF'`)

View File

@@ -30,8 +30,8 @@ function stringToEnum(value: string): file_writer_format {
(v) => v === value
) as file_writer_format;
// If no match is found, default to file_writer_format.NXMX_ONLY_DATA
return enumValue || file_writer_format.NXMX_ONLY_DATA;
// If no match is found, default to file_writer_format.NONE
return enumValue || file_writer_format.NONE;
}
@@ -109,8 +109,7 @@ class FileWriterSettings extends React.Component<MyProps, MyState> {
>
<MenuItem value={file_writer_format.NXMX_LEGACY}>NXmx HDF5 master file with soft links (DECTRIS file writer compatibility)</MenuItem>
<MenuItem value={file_writer_format.NXMX_VDS}>NXmx HDF5 master file with virtual datasets</MenuItem>
<MenuItem value={file_writer_format.NXMX_INTEGRATED}Single HDF5 file with data and metadata</MenuItem>
<MenuItem value={file_writer_format.NXMX_ONLY_DATA}>No NXmx HDF5 master file (only data files)</MenuItem>
<MenuItem value={file_writer_format.NONE}>No NXmx HDF5 master file (only data files)</MenuItem>
<MenuItem value={file_writer_format.CBF}>miniCBF (only data files; limited metadata)</MenuItem>
<MenuItem value={file_writer_format.TIFF}>TIFF (only data files; no metadata)</MenuItem>
<MenuItem value={file_writer_format.NO_FILE_WRITTEN}>No files saved</MenuItem>

View File

@@ -4,20 +4,15 @@
/* eslint-disable */
/**
* NoFileWritten - no files are written at all
* NXmxOnlyData - only data files are written, no master file
* None - no master file written
* NXmxLegacy - legacy format with soft links to data files in the master file; necessary for DECTRIS Albula 4.0 and DECTRIS Neggia
* NXmxVDS - newer format with virtual dataset linking data files in the master file, also includes better metadata handling
* NXmxIntegrated - single HDF5 per dataset
* CBF - CBF format (limited metadata)
* TIFF - TIFF format (no metadata)
*
*/
export enum file_writer_format {
NXMX_ONLY_DATA = 'NXmxOnlyData',
NONE = 'None',
NXMX_LEGACY = 'NXmxLegacy',
NXMX_VDS = 'NXmxVDS',
NXMX_INTEGRATED = 'NXmxIntegrated',
CBF = 'CBF',
TIFF = 'TIFF',
NO_FILE_WRITTEN = 'NoFileWritten',

View File

@@ -1,8 +1,6 @@
#!/bin/bash
set -euo pipefail
python3.11 -m venv tmp_venv/
python3.12 -m venv tmp_venv/
source tmp_venv/bin/activate
pip install -r docs/requirements.txt

View File

@@ -13,64 +13,6 @@
using namespace std::literals::chrono_literals;
TEST_CASE("HDF5Group_create_reopen_and_fail", "[HDF5][Unit]") {
{
HDF5File file("scratch_group_reopen.h5");
REQUIRE_NOTHROW(HDF5Group(file, "/group1"));
REQUIRE(file.Exists("/group1"));
REQUIRE_NOTHROW(HDF5Group(file, "/group1"));
REQUIRE(file.Exists("/group1"));
REQUIRE_THROWS(HDF5Group(file, "/missing_parent/group2"));
}
remove("scratch_group_reopen.h5");
REQUIRE(H5Fget_obj_count(H5F_OBJ_ALL, H5F_OBJ_ALL) == 0);
}
TEST_CASE("HDF5Attr_string_update", "[HDF5][Unit]") {
const std::string first_value = "abc";
const std::string second_value = "a much longer attribute value";
{
HDF5File file("scratch_attr_string_update.h5");
REQUIRE_NOTHROW(file.Attr("str_attr", first_value));
REQUIRE_NOTHROW(file.Attr("str_attr", second_value));
}
{
HDF5ReadOnlyFile file("scratch_attr_string_update.h5");
REQUIRE(file.ReadAttrStr("str_attr") == second_value);
}
remove("scratch_attr_string_update.h5");
REQUIRE(H5Fget_obj_count(H5F_OBJ_ALL, H5F_OBJ_ALL) == 0);
}
TEST_CASE("HDF5Attr_int64_update", "[HDF5][Unit]") {
const int64_t first_value = -1234567890123LL;
const int64_t second_value = 9876543210123LL;
{
HDF5File file("scratch_attr_int64_update.h5");
REQUIRE_NOTHROW(file.Attr("int_attr", first_value));
REQUIRE(file.ReadAttrInt("int_attr") == first_value);
REQUIRE_NOTHROW(file.Attr("int_attr", second_value));
REQUIRE(file.ReadAttrInt("int_attr") == second_value);
}
{
HDF5ReadOnlyFile file("scratch_attr_int64_update.h5");
REQUIRE(file.ReadAttrInt("int_attr") == second_value);
}
remove("scratch_attr_int64_update.h5");
REQUIRE(H5Fget_obj_count(H5F_OBJ_ALL, H5F_OBJ_ALL) == 0);
}
TEST_CASE("HDF5DataSet_scalar", "[HDF5][Unit]") {
uint16_t tmp_scalar = 16788;
{

View File

@@ -18,48 +18,26 @@ int main(int argc, char **argv) {
RegisterHDF5Filter();
int64_t nimages_out = 100;
std::string prefix = "writing_test";
FileWriterFormat format = FileWriterFormat::NXmxLegacy;
std::optional<int64_t> images_per_file;
std::optional<float> rotation;
int opt;
while ((opt = getopt(argc, argv, "o:n:Vf:R:")) != -1) {
switch (opt) {
case 'o':
prefix = optarg;
break;
case 'n':
nimages_out = atoll(optarg);
break;
case 'V':
format = FileWriterFormat::NXmxVDS;
break;
case 'R':
rotation = atof(optarg);
break;
case 'f':
images_per_file = atoll(optarg);
if (images_per_file.value() <= 0) {
std::cerr << "Invalid number of images per file: " << optarg << std::endl;
exit(EXIT_FAILURE);
}
images_per_file = atoll(optarg);
break;
default:
std::cout << "Usage: ./jfjoch_hdf5_test <JF4M hdf5 file> [-o <prefix>] [-n <num images>] [-V] [-f <num images per file>] [-R<rotation angle>]" << std::endl;
exit(EXIT_FAILURE);
}
}
if (optind >= argc) {
std::cout << "Usage: ./jfjoch_hdf5_test <JF4M hdf5 file> [-o <prefix>] [-n <num images>] [-V] [-f <num images per file>] [-R<rotation angle>]" << std::endl;
if ((argc < 2) || (argc > 4)) {
std::cout << "Usage: ./jfjoch_hdf5_test <JF4M hdf5 file> {{<#images>} <rate in Hz>}" << std::endl;
std::cout << std::endl;
std::cout << "Env. variables:" << std::endl;
std::cout << "HDF5DATASET_WRITE_TEST_PREFIX" << std::endl;
std::cout << "HDF5MASTER_NEW_FORMAT" << std::endl;
exit(EXIT_FAILURE);
}
HDF5ReadOnlyFile data(argv[optind]);
int64_t nimages_out = 100;
double rate = 2200;
if (argc >= 3)
nimages_out = atoi(argv[2]);
if (argc >= 4)
rate = atof(argv[3]);
std::chrono::microseconds period_us((rate == 0) ? 0 : (int64_t) (1.0e6 / rate));
HDF5ReadOnlyFile data(argv[1]);
HDF5DataSet dataset(data, "/entry/data/data");
HDF5DataSpace file_space(dataset);
@@ -75,8 +53,6 @@ int main(int argc, char **argv) {
x.BeamX_pxl(1090).BeamY_pxl(1136).DetectorDistance_mm(75).IncidentEnergy_keV(WVL_1A_IN_KEV);
x.MaskModuleEdges(true);
x.MaskChipEdges(true);
if (rotation && rotation.value() != 0.0)
x.Goniometer(GoniometerAxis("omega", 0, rotation.value(), Coord(-1,0,0), std::nullopt));
if ((file_space.GetDimensions()[1] == 2164) && (file_space.GetDimensions()[2] == 2068)) {
std::cout << "JF4M with gaps detected (2068 x 2164)" << std::endl;
@@ -88,12 +64,16 @@ int main(int argc, char **argv) {
logger.Info("Number of images in the original dataset: " + std::to_string(nimages));
// Set file name
x.FilePrefix(prefix);
x.SetFileWriterFormat(format);
x.OverwriteExistingFiles(true);
if (std::getenv("HDF5DATASET_WRITE_TEST_PREFIX") == nullptr)
x.FilePrefix("writing_test");
else
x.FilePrefix(std::getenv("HDF5DATASET_WRITE_TEST_PREFIX"));
if (images_per_file.has_value())
x.ImagesPerFile(images_per_file.value());
if (std::getenv("HDF5MASTER_NEW_FORMAT") != nullptr) {
std::cout << "Using new format for HDF5 master file" << std::endl;
x.SetFileWriterFormat(FileWriterFormat::NXmxVDS);
} else
x.SetFileWriterFormat(FileWriterFormat::NXmxLegacy);
x.ImagesPerTrigger(nimages);
@@ -147,6 +127,8 @@ int main(int argc, char **argv) {
size_t total_image_size = 0;
for (int i = 0; i < nimages_out; i++) {
std::this_thread::sleep_until(start_time + i * period_us);
DataMessage message{};
message.image = CompressedImage(output[i % nimages], x.GetXPixelsNum(), x.GetYPixelsNum(),
x.GetImageMode(), x.GetCompressionAlgorithm());

View File

@@ -695,7 +695,7 @@ void NXmx::Finalize(const EndMessage &end) {
if (start_message.file_format == FileWriterFormat::NXmxVDS)
LinkToData_VDS(start_message, end);
else if (start_message.file_format == FileWriterFormat::NXmxLegacy)
else
LinkToData(start_message, end);
if (end.rotation_lattice)
@@ -731,7 +731,3 @@ void NXmx::UserData(const StartMessage &start) {
}
}
}
HDF5File *NXmx::GetFile() {
return hdf5_file.get();
}

View File

@@ -58,8 +58,6 @@ public:
NXmx& operator=(const NXmx &other) = delete;
void Finalize(const EndMessage &end);
void WriteCalibration(const CompressedImage &image);
HDF5File *GetFile();
};
#endif //JUNGFRAUJOCH_HDF5NXMX_H

View File

@@ -315,119 +315,76 @@ void HDF5Fapl::SetVersionTo1p10orNewer() {
H5Pset_libver_bounds(id, H5F_LIBVER_V110, H5F_LIBVER_LATEST);
}
template <typename T>
static HDF5Object& WriteOrCreateScalarAttr(HDF5Object& object, const std::string& name, const T& val) {
HDF5DataSpace dataspace;
HDF5DataType datatype(val);
hid_t attr_id = -1;
if (H5Aexists(object.GetID(), name.c_str()) > 0) {
attr_id = H5Aopen(object.GetID(), name.c_str(), H5P_DEFAULT);
if (attr_id < 0)
throw JFJochException(JFJochExceptionCategory::HDF5, "Cannot open attribute " + name);
hid_t existing_type = H5Aget_type(attr_id);
if (existing_type < 0) {
H5Aclose(attr_id);
throw JFJochException(JFJochExceptionCategory::HDF5, "Cannot get attribute type " + name);
}
const bool recreate =
(H5Tget_class(existing_type) != H5Tget_class(datatype.GetID())) ||
(H5Tget_size(existing_type) != H5Tget_size(datatype.GetID()));
H5Tclose(existing_type);
H5Aclose(attr_id);
if (recreate) {
if (H5Adelete(object.GetID(), name.c_str()) < 0)
throw JFJochException(JFJochExceptionCategory::HDF5, "Cannot delete attribute " + name);
attr_id = H5Acreate2(object.GetID(), name.c_str(), datatype.GetID(), dataspace.GetID(), H5P_DEFAULT, H5P_DEFAULT);
} else {
attr_id = H5Aopen(object.GetID(), name.c_str(), H5P_DEFAULT);
}
} else {
attr_id = H5Acreate2(object.GetID(), name.c_str(), datatype.GetID(), dataspace.GetID(), H5P_DEFAULT, H5P_DEFAULT);
}
if (attr_id < 0)
throw JFJochException(JFJochExceptionCategory::HDF5, "Cannot create/open attribute " + name);
herr_t ret = H5Awrite(attr_id, datatype.GetID(), &val);
H5Aclose(attr_id);
if (ret < 0)
throw JFJochException(JFJochExceptionCategory::HDF5, "Attribute write unsuccessful");
return object;
}
HDF5Object & HDF5Object::Attr(const std::string &name, const std::string &val) {
HDF5DataSpace dataspace;
HDF5DataType datatype(val);
hid_t attr_id = -1;
if (H5Aexists(id, name.c_str()) > 0) {
attr_id = H5Aopen(id, name.c_str(), H5P_DEFAULT);
if (attr_id < 0)
throw JFJochException(JFJochExceptionCategory::HDF5, "Cannot open attribute " + name);
hid_t existing_type = H5Aget_type(attr_id);
if (existing_type < 0) {
H5Aclose(attr_id);
throw JFJochException(JFJochExceptionCategory::HDF5, "Cannot get attribute type " + name);
}
const bool recreate =
(H5Tget_class(existing_type) != H5T_STRING) ||
(H5Tget_size(existing_type) < val.length() + 1);
H5Tclose(existing_type);
H5Aclose(attr_id);
if (recreate) {
if (H5Adelete(id, name.c_str()) < 0)
throw JFJochException(JFJochExceptionCategory::HDF5, "Cannot delete attribute " + name);
attr_id = H5Acreate2(id, name.c_str(), datatype.GetID(), dataspace.GetID(), H5P_DEFAULT, H5P_DEFAULT);
} else {
attr_id = H5Aopen(id, name.c_str(), H5P_DEFAULT);
}
} else {
attr_id = H5Acreate2(id, name.c_str(), datatype.GetID(), dataspace.GetID(), H5P_DEFAULT, H5P_DEFAULT);
}
if (attr_id < 0)
throw JFJochException(JFJochExceptionCategory::HDF5, "Cannot create/open attribute " + name);
hid_t attr_id = H5Acreate2(id, name.c_str(), datatype.GetID(), dataspace.GetID(), H5P_DEFAULT, H5P_DEFAULT);
herr_t ret = H5Awrite(attr_id, datatype.GetID(), val.c_str());
H5Aclose(attr_id);
if (ret < 0)
throw JFJochException(JFJochExceptionCategory::HDF5, "Attribute write unsuccessful");
if (ret < 0) throw JFJochException(JFJochExceptionCategory::HDF5, "Attribute write unsuccessful");
return *this;
}
HDF5Object & HDF5Object::Attr(const std::string &name, int32_t val) {
return WriteOrCreateScalarAttr(*this, name, val);
HDF5DataSpace dataspace;
HDF5DataType datatype(val);
hid_t attr_id = H5Acreate2(id, name.c_str(), datatype.GetID(), dataspace.GetID(), H5P_DEFAULT, H5P_DEFAULT);
herr_t ret = H5Awrite(attr_id, datatype.GetID(), &val);
H5Aclose(attr_id);
if (ret < 0) throw JFJochException(JFJochExceptionCategory::HDF5, "Atrribute write unsucessful");
return *this;
}
HDF5Object & HDF5Object::Attr(const std::string &name, uint32_t val) {
return WriteOrCreateScalarAttr(*this, name, val);
HDF5DataSpace dataspace;
HDF5DataType datatype(val);
hid_t attr_id = H5Acreate2(id, name.c_str(), datatype.GetID(), dataspace.GetID(), H5P_DEFAULT, H5P_DEFAULT);
herr_t ret = H5Awrite(attr_id, datatype.GetID(), &val);
H5Aclose(attr_id);
if (ret < 0) throw JFJochException(JFJochExceptionCategory::HDF5, "Atrribute write unsucessful");
return *this;
}
HDF5Object & HDF5Object::Attr(const std::string &name, int64_t val) {
return WriteOrCreateScalarAttr(*this, name, val);
HDF5DataSpace dataspace;
HDF5DataType datatype(val);
hid_t attr_id = H5Acreate2(id, name.c_str(), datatype.GetID(), dataspace.GetID(), H5P_DEFAULT, H5P_DEFAULT);
herr_t ret = H5Awrite(attr_id, datatype.GetID(), &val);
H5Aclose(attr_id);
if (ret < 0) throw JFJochException(JFJochExceptionCategory::HDF5, "Atrribute write unsucessful");
return *this;
}
HDF5Object & HDF5Object::Attr(const std::string &name, uint64_t val) {
return WriteOrCreateScalarAttr(*this, name, val);
HDF5DataSpace dataspace;
HDF5DataType datatype(val);
hid_t attr_id = H5Acreate2(id, name.c_str(), datatype.GetID(), dataspace.GetID(), H5P_DEFAULT, H5P_DEFAULT);
herr_t ret = H5Awrite(attr_id, datatype.GetID(), &val);
H5Aclose(attr_id);
if (ret < 0) throw JFJochException(JFJochExceptionCategory::HDF5, "Atrribute write unsucessful");
return *this;
}
HDF5Object & HDF5Object::Attr(const std::string &name, double val) {
return WriteOrCreateScalarAttr(*this, name, val);
HDF5DataSpace dataspace;
HDF5DataType datatype(val);
hid_t attr_id = H5Acreate2(id, name.c_str(), datatype.GetID(), dataspace.GetID(), H5P_DEFAULT, H5P_DEFAULT);
herr_t ret = H5Awrite(attr_id, datatype.GetID(), &val);
H5Aclose(attr_id);
if (ret < 0) throw JFJochException(JFJochExceptionCategory::HDF5, "Atrribute write unsucessful");
return *this;
}
HDF5Object & HDF5Object::Attr(const std::string &name, const std::vector<double> &val) {
@@ -675,19 +632,14 @@ HDF5Group::HDF5Group(const HDF5Object& parent, const std::string &name) : HDF5Gr
}
HDF5Group::HDF5Group(const HDF5Object& parent, const char *name) : HDF5Object() {
if (H5Lexists(parent.GetID(), name, H5P_DEFAULT) > 0)
id = H5Gopen(parent.GetID(), name, H5P_DEFAULT);
else
id = H5Gcreate(parent.GetID(), name, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
if (id < 0)
throw JFJochException(JFJochExceptionCategory::HDF5, "Cannot open/create HDF5 group " + std::string(name));
id = H5Gcreate(parent.GetID(), name, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
}
HDF5Group::~HDF5Group() {
H5Gclose(id);
}
HDF5File::HDF5File(const std::string& filename, bool v1_10) : HDF5Object() {
HDF5Fapl fapl;