Repository navigation
Atomic workspace saving and non-uniform coordinates in Web API transfers - #425
Merged
Merged
Conversation
Saving a workspace opened the destination file in write mode, which truncated it, then serialized the panels and the provenance: an error during serialization, a full disk or an interruption destroyed the last valid version of the file (the workspace stayed marked as modified, but the file on disk was already lost). Workspaces (and capsules, which save one) and .dlhist files are now written to a temporary file of the same directory, which replaces the destination only once completely written and closed (atomic_native_writer). On failure, the temporary file is removed and the previous file is left untouched. The permissions of an existing file are kept. Assisted-by: Claude Opus 5.5
The NPZ format of the Web API stored the pixels of an image and its x0, y0, dx and dy, but not non-uniform coordinates: an image with non-uniform axes uploaded to or downloaded from DataLab was rebuilt with default uniform coordinates, so that remote processing and measurements used another geometry than the original. Image archives now record is_uniform_coords and, for non-uniform images, the pixel center coordinates in xcoords.npy and ycoords.npy. Their lengths are checked against the image shape. Archives written by earlier versions (without the flag) are still read with uniform coordinates, and earlier readers ignore the new entries. The format is documented in the module and in the Web API guide. Assisted-by: Claude Opus 5.5
Describe the user-visible corrections of this release cycle coming from the review: atomic workspace saving, non-uniform image coordinates in Web API transfers, HDF5 link cycles (SigimaX) and the processing fixes of Sigima 1.4.0 (resampling grid, real/complex signal operations, complex images, independent geometric results, ROI extraction and rotation of non-uniform images, product uncertainty). Document the resampling bounds as pixel centers (and fix the x_min formula markup) and update the resampling test scenario accordingly. French translations updated. Assisted-by: Claude Opus 5.5
PierreRaybaut
force-pushed
the
fix/review-2026-10-24
branch
from
October 24, 2026 08:11
2aa59cc to
70170f2
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes from the cross-repository review of the develop branches (2026-10-24), one commit per finding.
.dlhistfiles are written to a temporary file of the same directory, which replaces the destination only once completely written (atomic_native_writer). A failed save (serialization error, full disk, interruption) no longer destroys the previous file; permissions are kept.is_uniform_coordsand, when non-uniform,xcoords.npy/ycoords.npy(lengths checked against the shape). Archives without the flag are still read as uniform; earlier readers ignore the new entries.Merge order: after DataLab-Platform/Sigima#82 and DataLab-Platform/SigimaX#20 (release notes describe their fixes; the full suite was run against them).
Follow-up (out of scope): DataLab-Kernel keeps its own copy of the NPZ serializer, which must be updated to send/receive non-uniform coordinates (it has unrelated local changes in progress).
Validation:
1151 passed, 3 skipped(31 min).atomic_save_unit_test.py, 6 inwebapi_extra_test.py).