Repository navigation
Build WASM with the latest stable ViennaRNA 2.x - #293
Merged
Merged
Conversation
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.
Address the maintainer's review on #292: pin ViennaRNA 2.7.2 for local WASM builds and resolve the newest stable 2.x release in every WASM workflow. Compare numeric versions across all release pages, exclude drafts/prereleases and major 3, and require the official source release asset with its published SHA-256. Save a manifest to reproduce a selected release locally.
Separate Boost/zlib from the legacy dependency prefix and isolate RNAlib sources, installed libraries and IntaRNA objects by archive identity. This prevents older ViennaRNA headers from overriding the selected version through Boost's include path. Record the archive URL/checksum, reject a compiled-version mismatch, and stage the matching ViennaRNA/dlib notices. ViennaRNA 2.7.2 bundles dlib 20.0, so the old compatibility patch is removed.
This follow-up targets
fix/291-wasm-build, the head of #292, so the diff contains only the requested revision.Local validation:
python3 scripts/wasm/test-vienna-release.py: 7 groups pass, including pagination, stable-major selection, invalid metadata and stale-engine rejection.python3 scripts/wasm/test-downloads.py: all 3 local-HTTP groups pass.npm test --prefix webinterface: all 12 groups pass.GCC 14 release with native ViennaRNA 2.7.2:
make tests -j2passes all 8 suites, including 462,689 API assertions in 119 cases and the CLI regressions. For the out-of-tree build, copied the tracked fixtures into itstests/datadirectory.Live GitHub resolution selects 2.7.2 and exactly matches the checked-in manifest. Bash/Python/Node syntax, workflow YAML and
git diff --checkpass.WASM_VIENNA_RELEASE=build-wasm/latest-vienna-release.json JOBS=4 bash scripts/wasm/build.shwith Emscripten 4.0.23: passes with fresh Boost/zlib, RNAlib and IntaRNA builds while retaining the legacy 2.7.0 prefix. The compiled engine reports ViennaRNA 2.7.2 and records the selected release archive and clean source revision.node scripts/wasm/smoke.mjs,node scripts/wasm/smoke-protocol.mjs, andbash scripts/wasm/stage.sh: pass, including native-reference coordinates/energies/accessibility, byte-identical exported-parameter replay, asset hashes and matching ViennaRNA/dlib notices.Real staged-site regression suites pass in Chromium and Firefox with the pinned Playwright 1.64.0 browser binaries: compiled versions, prediction/evaluation, coordinates, keyboard/mobile behavior, visualization, ZIP contents and abort/recovery.