Skip to content

Feat: upgrade hdf5 to 1.0.0 and e2e fixtures#4

Merged
joaner merged 3 commits into
ioai-tech:mainfrom
joaner:feat/hdf5-1.0.0-and-e2e-fixtures
May 27, 2026
Merged

Feat: upgrade hdf5 to 1.0.0 and e2e fixtures#4
joaner merged 3 commits into
ioai-tech:mainfrom
joaner:feat/hdf5-1.0.0-and-e2e-fixtures

Conversation

@joaner
Copy link
Copy Markdown
Contributor

@joaner joaner commented May 27, 2026

Description

Adopts @ioai/hdf5@^1.0.0 and simplifies HDF5 loading to use the library’s public initHdf5({ wasmBinary }) API for inline (?worker&inline) workers. The main thread fetches the published wasm asset via @ioai/hdf5/wasm/ioai_hdf5.wasm?url and passes the bytes into the HDF5 worker at initialize time—no deep imports of @ioai/hdf5/dist/* and no wasm URL resolution inside blob workers.

Also makes E2E tests self-contained and non-skipping:

  • Adds checked-in test-fixtures/ (layouts, minimal HDF5/BVH, JPEG/H264 binaries)
  • Adds scripts/gen-e2e-fixtures.mjs and sub-generators; CI/pretest:e2e use the unified entrypoint
  • Refactors Playwright specs to use tests/fixturePaths.ts; adds tests/bvh-basic.spec.ts
  • Removes conditional test.skip / it.skipIf patterns from Vitest and E2E

Other related fixes:

  • H5FileSystem: eager-fetch small same-origin HDF5 files (≤32MB) into MEMFS for reliable worker parsing
  • resolveWorkerHttpUrl: resolve relative URLs against self.location.href for inline workers

Motivation / related issue

Previously, rosview carried application-layer workarounds for HDF5 in inline workers (deep imports, manual Emscripten glue/wasm URL wiring) because @ioai/hdf5 resolved wasm via import.meta.url at import time, which breaks under blob worker URLs.

With @ioai/hdf5@1.0.0, the supported pattern is:

  1. Main thread loads wasm bytes
  2. Worker calls initHdf5({ wasmBinary })

This PR aligns rosview with that upstream API and stabilizes CI by removing external-path/skipped E2E dependencies.

Related upstream release: @ioai/hdf5@1.0.0 (hdf5-wasm)

Type of change

  • Bug fix (non-breaking change that fixes an issue)
  • New feature (non-breaking change that adds functionality)
  • Breaking change (fix or feature that would cause existing behavior to change)
  • Documentation update
  • Refactor / internal cleanup (no behavior change)

Checklist

  • npm run lint passes with no errors
  • npm test passes (unit tests) — 347 passed, 0 skipped
  • npm run build and npm run build:lib succeed — npm run build verified (build:lib not re-run in this branch; recommend CI/local confirmation before merge)
  • New behavior is covered by tests (or explain why tests aren't applicable)
    • HDF5: tests/hdf5-basic.spec.ts
    • BVH: tests/bvh-basic.spec.ts
    • Fixture generation: npm run gen:e2e:fixtures + full E2E suite (29 passed)
  • Documentation updated (README, API.md, EMBEDDING.md) if the public API changed
    • Updated docs/DEVELOPMENT.md fixture workflow
  • Breaking change: all affected call sites updated and migration path described in PR description

API compatibility

N/A — no changes to rosview’s exported library API (src/entrypoints/index.ts). Internal HDF5 worker initialization now expects hdf5WasmBinary from the main thread (same pattern as existing sqlWasmBinary for db3).

Screenshots / recordings

N/A — no visible UI changes. Functional verification:

  • HDF5 minimal fixture loads synthesized ROS topics and opens Image panel
  • Full E2E: 29/29 passed

joaner added 3 commits May 27, 2026 17:19
Upgrade HDF5 loading to the published initHdf5({ wasmBinary }) API for
inline workers, add checked-in test fixtures with generation scripts, and
remove skipped/conditional E2E tests so CI runs a stable 347+29 suite.
Use patch semver for HDF5/fixture fixes without public API changes, and
update index.html canonical/hreflang/OG links from io-ai.tech/rosview to rosview.com.
Resolve version conflicts keeping 1.3.2 on top of ioai-tech/rosview main.
@joaner joaner merged commit fedf518 into ioai-tech:main May 27, 2026
2 checks passed
@joaner joaner deleted the feat/hdf5-1.0.0-and-e2e-fixtures branch June 4, 2026 03:37
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.

1 participant