v1.0.0-rc.156 #66
Open
leonarski_f
wants to merge 64 commits from
2606-rc.156-fixes into main
pull from: 2606-rc.156-fixes
merge into: :main
:main
:2606-rc.156-fixes
:viewer-windows
:gitea-pages
:2606-viewer-processing
:2606-tcp
:2606-pixel-refine
:2606-eiger-calib
:2606-q-spacing
:2606-eiger-module-fix
:2606-force-cpu-azint
:2606-xds-plugin
:2606-azint
:2506-rot-all
:2606-sgsearch
:2605-scaling
:2605-hdf5-vds
:2605-hdf5-enospc
:2605-hdf-fixes
:2605-b-factor
:2605-speed-up-preview-start
:2604-index-and-refine-fix
:2604-cuda-cleanup
:2604-azint-mapping-parallel
:2604-more-fixes
:2604-start-speed
:2604-async-start
:2605-sigma-correction
:2604-hdf5-errors
:2604-rc.136
:2604-rc.135
:2604-processing-options
:2603-single-file
:2604-detector-parallel-logic
:2603-pipeline-upgrades
:2603-multilattice
:2603-rc.131-2
:2603-rc.131
:2603-rc.130
:2603-rc.129
:2603-ep
:2602-scaling-d-limit
:2602-residual
:2601-completness
:2601-1.0.0-rc.124
:2601-1.0.0-rc.123
:2512-scaling-merging
:2512-1.0.0-rc.122
:2512-1.0.0-rc.121
:2511-1.0.0-rc.120
:2511-1.0.0-rc.119b
:2511-1.0.0-rc.119
:2511-1.0.0-rc.118
:2511-1.0.0-rc.117
:2511-1.0.0-rc.116
:2511-1.0.0-rc.115c
:2511-1.0.0-rc.115
:2511-1.0.0-rc.114b
:2511-1.0.0-rc.114
:2511-1.0.0-rc.113
:2511-1.0.0-rc.112
:2511-1.0.0-rc.111
:2511-1.0.0-rc.110
:2511-1.0.0-rc.109
:2511-1.0.0-rc.108
:2511-1.0.0-rc.107
:2511-1.0.0-rc.106
:2511-1.0.0-rc.105
:2511-1.0.0-rc.104
:2511-rc.103
:2511-1.0.0-rc.102
:2511-viewer-enh-2
:2511-viewer-enh
:2511-eiger-mask-3
:2511-eiger-mask
:2510-viewer-improvements
:2510-viewer-3D
:2510-fpga-clamp
:2510-rc.88
:2510-release
:2509-rc.82
:2509-gitea
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
This is an UNSTABLE release. It includes many experimental features, as well as many AI generated fixes. We recommend using rc.152 for production use.
New CompressionAlgorithm that emits a standard Zstandard frame: zero/0xFF runs become RLE_Blocks (like BSHUF_ZSTD_RLE) and literal regions become Compressed_Blocks with per-block adaptive Huffman literals and no sequences (Number_of_Sequences=0). Short runs are absorbed into the literal stream; incompressible literals fall back to Raw_Blocks so the worst case stays within ZSTD_compressBound. The Huffman tree + bitstream are produced by zstd's own HUF_compress{1,4}X_repeat (the same calls ZSTD_compressLiterals uses); only the frame/block/literals-section framing is hand-written, with comments citing zstd_compression_format.md so it can be checked clause by clause. Output decodes with stock ZSTD_decompress, so no reader changes are needed (decode routes like BSHUF_ZSTD). On sparse diffraction this gives ~12% smaller files than bitshuffle/LZ4 at about the same end-to-end speed, sitting between LZ4 and full ZSTD; for maximum ratio use BSHUF_ZSTD. Robust on any input: tests round-trip pure zeros, Poisson(10), Mersenne-Twister noise (checked against the size bound), an extreme-sparsity mask, and a real lyso image through stock ZSTD_decompress. API: exposed as "bszstd_rlehuf"; regenerate the Python/TS clients (update_version.sh) to surface the new value there. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>Builds a single Compressed_Block (Huffman-coded Literals_Section, empty Sequences_Section) and checks: the block type is Compressed, its trailing Number_of_Sequences byte is 0, and stock ZSTD_decompress reconstructs the literals exactly. This is the format guarantee from zstd_compression_format.md ("if Number_of_Sequences == 0 ... Block's decompressed content is defined solely by the Literals Section content"), locked into the test suite. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>Fit the reciprocal tangential-width model y(q)=a0+a1*t+a2*t^2 in a centered, standardized variable t=(q-qbar)/qscale instead of the raw {1,q,q^2} monomials: the raw normal matrix went near-singular when the strong spots span a narrow q-range (small cell / sparse still), letting tiny per-frame jitter swing the curvature into a wild over-wide profile. Adds IRLS (Huber) robustness, a ridge on the curvature (sharp-crystal prior), and clamps the applied width to the fitted q-range (no extrapolation). Stays strictly per-frame (no dataset pooling), so it works online and for stills. Neutral on rotation data (cytC high-res CC1/2 win preserved 66.8 vs 65.6%). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>Add an optional Smargon static positioner (chi/phi angles + rotation axes) that is reconstructed into the NXmx sample transformation chain. Chi/phi are appended at the innermost end of the chain (closest to the sample) for both the goniometer and grid-scan branches, with axes defaulting to chi {0,0,1} and phi = omega default {1,0,0}. - SmargonPosition gains chi_axis/phi_axis (common/JFJochMessages.h) - OpenAPI: optional phi_axis/chi_axis arrays; clients regenerated - OpenAPIConvert wires Dataset_settings.smargon -> DatasetSettings - CBOR serializer/deserializer round-trip the axes - tests: CBORSerialize_Start_Smargon Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>The two Windows jobs (build-windows / build-windows-nocuda) differed only in -DJFJOCH_USE_CUDA=ON/OFF, so collapse them into one matrixed job (variant cuda/nocuda), mirroring the build-rpm matrix. On a tag, upload the NSIS installer (jfjoch-<version>-win64-{cuda<major>|cpu}.exe, named in CMakeLists.txt) to the release via gitea_upload_file.py, the same helper the RPM/DEB nocuda variants use to attach viewer/writer artifacts. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.