Releases: d3i-infra/data-donation-task
Releases · d3i-infra/data-donation-task
v2.0.1 - Streaming PayloadFile fix
v2.0.1 — 2026-05-04
Fixed
- 2+ GiB upload
NotReadableErrorregression.FlowBuilderno longer
materializesPayloadFileuploads to a path; the
AsyncFileAdapteris passed directly tozipfile.ZipFile,
validators, and extractors (extraction/AD0007). Restores the
streaming behavior of upstream eyra/feldspar PR
#482, which the
FlowBuilder rewrite (68c59d8) silently reverted by adding a
full-fileadapter.read()insidematerialize_file(). The
resulting single-ArrayBufferrequest triggered
FileReaderSync.readAsArrayBuffer's ~2 GiB cap with
NotReadableError, often after a long apparent hang. Empirical
reproduction and full diagnosis:
#61.
Changed
- Upload-path size validation now uses
adapter.size(JS metadata,
no read) before any byte transfer, instead ofos.path.getsize
on a materialized/tmpcopy. The new helper is
uploads.check_payload_size(file_result). The previous
materialize_file()andcheck_file_safety(path)are removed. ZipArchiveReader.__init__andvalidate.validate_zipnow accept
any seekable binary file-like (IO[bytes]) or a path string; the
upload pipeline passes anAsyncFileAdapterdirectly. Parameter
names (zip_path,path_to_zip) are retained for backwards
compatibility with researcher-fork callers and will be renamed in a
follow-up release.FlowBuilder.start_flow()accepts onlyPayloadFileuploads.
PayloadString/WORKERFS support (kept for SURF Research Cloud
backwards compatibility perfeldspar/AD0003) is retired; SRC
consumers must migrate toPayloadFile.- New host log milestones:
[<Platform>] Upload prompt sent
(emitted before the file prompt render command goes to the host),
[<Platform>] Upload received: size=…(emitted immediately after
aPayloadFileupload, before the safety check), and
[<Platform>] Upload skipped: type=<X>(emitted when a
non-PayloadFilepayload arrives, distinguishing participant-skip
from unexpected payload types). Replaces the previous
post-materialize[<Platform>] File receivedmessage.
Removed
materialize_file()andcheck_file_safety()from
port.helpers.uploads— see Changed above for replacements.- The dual-payload-type branch (
PayloadFileorPayloadString)
inFlowBuilderupload handling. Closes the deprecation window
opened byfeldspar/AD0003.
Architectural Decisions
extraction/AD0007— StreamPayloadFileuploads end-to-end and
never materialize to a path. Succeedsextraction/AD0003(whose
ownership decision is preserved; only the size-check placement
changes).
v2.0.0 (backfilled historical anchor)
CHANGELOG.md declares v2.0.0 at this commit. The original release
was documented (CHANGELOG, MIGRATION.md, README "What's new") but
never tagged in git or published as a GitHub release. This tag is
backfilled to anchor release provenance and restore the semver
chain before tagging v2.0.1.
No code change is shipped by this tag — it points at the same
tree state that has been on master since the PR #57 merge.
See CHANGELOG.md "v2.0.0 — 2026-03-23" section for full release
notes.