Skip to content

fix(datasets): handle BlobTree datasets in status/download; pick e2e datasets by type - #54

Merged
tanmaykm merged 1 commit into
mainfrom
tan/blobtree-datasets
Aug 18, 2026
Merged

fix(datasets): handle BlobTree datasets in status/download; pick e2e datasets by type#54
tanmaykm merged 1 commit into
mainfrom
tan/blobtree-datasets

Conversation

@tanmaykm

Copy link
Copy Markdown
Member

Fixes #53.

jh dataset status and jh dataset download failed on any BlobTree dataset with the raw server error failed to get download URL (status 400): "File path missing for BlobTree" — the server's presigned URLs are per-file for BlobTree; there is no whole-tree URL. This is what has kept the jh-cli-e2e-tests job red on nightly-juliahub every night since the suite was enabled there (JuliaComputing/JuliaHub#23516): the e2e dataset tests operate on the first listed dataset, and on that instance the first UUID happens to be a BlobTree (on plain nightly it's a Blob, so it passes — a pure dataset-UUID lottery).

CLI

  • dataset status on a BlobTree now succeeds, reporting the dataset/version/type without a download URL.
  • dataset download on a BlobTree now fails fast with a clear message (… is a BlobTree (a file tree): whole-tree download is not supported yet, and download URLs are per-file) instead of surfacing the server 400. Whole-tree download support can come later.
  • getDatasetByID extracted (from getDatasetVersions) so status/download can branch on the dataset type.

E2E tests

  • TestDatasetStatusFirst / TestDatasetDownloadFirst now pick the first Blob-type dataset via a new firstIDOfType helper, so the suite's color no longer depends on which type sorts first on the instance.
  • New TestDatasetStatusFirstBlobTree / TestDatasetDownloadFirstBlobTree cover the BlobTree behaviour (skipped on instances with no BlobTree datasets).
  • New credential-less TestFirstIDOfType pins the listing-parse behaviour, in particular that "Blob" does not match a BlobTree entry.

Verification

go build, go vet (with and without the e2e tag), gofmt, and go test ./... are clean; the e2e suite compiles and skips cleanly without credentials, and TestFirstIDOfType passes. The live BlobTree paths are shape-verified against tonight's nightly evidence (JuliaHub run 31986639356) rather than run against an instance — the next nightly run of jh-cli-e2e-tests on both installs is the live verification.

…datasets by type

Download URLs are per-file for BlobTree datasets — the server rejects a
whole-tree URL request with 400 "File path missing for BlobTree" — but the
CLI treated every dataset as a single blob, so both 'jh dataset status' and
'jh dataset download' failed with the raw server error on any BlobTree
dataset.

- 'dataset status' now reports BlobTree datasets without a download URL
- 'dataset download' fails fast with a clear message for BlobTree datasets
  (whole-tree download support can come later)
- getDatasetByID extracted so status/download can branch on dataset type

The e2e tests inherited the failure: TestDatasetStatusFirst/DownloadFirst
took the *first* listed dataset, whatever its type, so the suite's color
depended on which dataset UUID sorted first on the instance (red every
night on nightly-juliahub since it was enabled there, green on plain
nightly). They now pick the first Blob-type dataset, and new
TestDataset{Status,Download}FirstBlobTree cover the BlobTree behaviour.

Fixes #53
@tanmaykm
tanmaykm requested a review from a team August 17, 2026 12:05
@tanmaykm
tanmaykm merged commit fe703b6 into main Aug 18, 2026
1 check passed
@tanmaykm
tanmaykm deleted the tan/blobtree-datasets branch August 18, 2026 07:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

dataset status/download fail on BlobTree datasets; e2e tests inherit the failure via first-dataset selection

2 participants