Repository navigation
Fix ViennaRNA download and cache recovery in WASM builds - #292
Merged
Merged
Conversation
Member
|
thanks, please revise:
|
Build WASM with the latest stable ViennaRNA 2.x
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.
PR #291's WASM build stops before compilation because the university ViennaRNA download endpoint returns a 15-byte HTTP 200 text response instead of the pinned archive. The previous downloader also caches that response before checking its checksum, leaving subsequent builds stuck on the same invalid file.
Use ViennaRNA's official GitHub release asset for 2.7.0 with its SHA-256 pinned. The GitHub and university archives have different packaging/checksums; comparison of the enabled RNAlib C/C++ sources found no changes. Verify incoming files before promoting them into the cache, discard invalid cached archives, and remove partial downloads on failure. Add local-HTTP regression coverage to the WASM workflow and document cache recovery.
This follow-up targets
feat/287-visualization-archive, the head branch of #291, so its diff contains only the build repair.Validation:
python3 scripts/wasm/test-downloads.py: all 3 test groups pass, covering verified-cache reuse, corrupt/stale-cache recovery, HTTP 200 invalid bodies, 404 responses, truncated transfers and a successful retry.npm test --prefix webinterface: all 12 groups pass.git diff --check: pass.JOBS=4 bash scripts/wasm/build.shwith Emscripten 4.0.23: passes with fresh dependency sources/libraries and a fresh IntaRNA build. Seeded the download cache with the original 15-byte response to verify automatic recovery; the script downloads and verifies the official release asset successfully.node scripts/wasm/smoke.mjs: native-reference coordinates/energies, accessibility, suboptimals and C++ error handling pass using the newly compiled engine.node scripts/wasm/smoke-protocol.mjs: prediction/evaluation and all exported parameter replay checks pass, including byte-identical CSV, auxiliary outputs, probability SVG and text reports.bash scripts/wasm/stage.sh: passes, including compiled-asset provenance/hash checks.