Build Packages / build:windows:nocuda (push) Successful in 11m38s
Build Packages / build:viewer-tgz:cpu (push) Successful in 19m39s
Build Packages / build:viewer-tgz:cuda (push) Successful in 22m23s
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 23m23s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 23m42s
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 28m23s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 28m35s
Build Packages / build:windows:cuda (push) Successful in 17m16s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 29m7s
Build Packages / build:rpm (rocky9_sls9) (push) Successful in 20m34s
Build Packages / XDS test (durin plugin) (push) Successful in 11m1s
Build Packages / build:rpm (rocky9) (push) Successful in 22m8s
Build Packages / Generate python client (push) Successful in 34s
Build Packages / Build documentation (push) Successful in 1m21s
Build Packages / Create release (push) Skipped
Build Packages / build:rpm (rocky8) (push) Successful in 27m33s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 21m41s
Build Packages / build:rpm (ubuntu2204) (push) Successful in 26m32s
Build Packages / XDS test (neggia plugin) (push) Successful in 10m20s
Build Packages / XDS test (JFJoch plugin) (push) Successful in 11m1s
Build Packages / DIALS test (push) Successful in 23m15s
Build Packages / Unit tests (push) Failing after 1h51m32s
SOFTWARE_INTEGRATION.md said little more than which plugin to prefer. It now carries the layout matrix, since no program reads all three, and the things that silently give wrong answers rather than errors: - Neggia mis-reads signed 16-bit images. It dispatches on the pixel size in bytes and always casts to an unsigned type, so a count of -2 arrives as 65534 and the -32768 marker as 32768. JUNGFRAU in photon-counting conversion is signed by default, so this is the ordinary PSI case. Also noted in HDF5.md beside the fill-value description, where someone reading about the sentinel will meet it. - No XDS plugin reads saturation_value, so OVERLOAD has to be set by hand in XDS.INP. - XDS will not accept a negative MINIMUM_VALID_PIXEL_VALUE, so signed data cannot declare its negative counts valid at all. - The plugins act on different pixel_mask bits, so XDS and DIALS do not integrate the same pixels. - DIALS reads only the first data file of a multi-file NXmxLegacy set, and says nothing. - pyFAI learns no saturation value, marker or mask from a .poni and will integrate a sentinel as a count; the recipe given was checked against pyFAI's own NaN handling and matches it exactly. SECURITY.md was added to the tree but never to the toctree, so Read The Docs did not publish it. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VfYvJT5Nb71suJCowRBn5z