Skip to content

Build WASM with the latest stable ViennaRNA 2.x - #293

Merged
martin-raden merged 2 commits into
fix/291-wasm-buildfrom
fix/292-latest-vienna2
Oct 23, 2026
Merged

martin-raden merged 2 commits into
fix/291-wasm-buildfrom
fix/292-latest-vienna2

Conversation

@Alexander-Mitrofanov

@Alexander-Mitrofanov Alexander-Mitrofanov commented Oct 22, 2026 •

Copy link
Copy Markdown
Collaborator

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 -j2 passes 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 its tests/data directory.

  • Live GitHub resolution selects 2.7.2 and exactly matches the checked-in manifest. Bash/Python/Node syntax, workflow YAML and git diff --check pass.

  • WASM_VIENNA_RELEASE=build-wasm/latest-vienna-release.json JOBS=4 bash scripts/wasm/build.sh with 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, and bash 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.

@Alexander-Mitrofanov
Alexander-Mitrofanov marked this pull request as ready for review October 22, 2026 13:43
@martin-raden
martin-raden merged commit e138eb5 into fix/291-wasm-build Oct 23, 2026
7 checks passed
@martin-raden
martin-raden deleted the fix/292-latest-vienna2 branch October 23, 2026 08:29
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.

2 participants