Support latest Plurimath UnitsML build with generated Opal payload - #42
Open
suleman-uzair wants to merge 5 commits into
Open
Support latest Plurimath UnitsML build with generated Opal payload#42suleman-uzair wants to merge 5 commits into
suleman-uzair wants to merge 5 commits into
Conversation
There was a problem hiding this comment.
Pull request overview
Updates plurimath-js to support the latest UnitsML stack by generating and compiling in a UnitsML Opal payload, plus adding UnitsML-focused conversion coverage and CI workflow updates.
Changes:
- Generate
unitsml_opal_payload.rbduring build and include it in the Opal compilation inputs. - Add UnitsML conversion coverage in JS, and add a Ruby spec for the payload generator.
- Update Podman build/test scripts and replace the legacy GitHub Actions workflow with a new matrix workflow.
Reviewed changes
Copilot reviewed 13 out of 14 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
src/index.ts |
Minor cleanup around Opal require bootstrap. |
scripts/generate_unitsml_opal_payload.rb |
New generator to produce a Ruby payload loader for UnitsML data for Opal builds. |
build.sh |
Runs payload generator and adjusts Opal compile flags to include the generated payload. |
setup.sh |
Makes setup fail-fast and limits vendored parser gem tasks to lexer/parser generation. |
Gemfile |
Adds/updates UnitsML-related dependencies for the new payload approach. |
spec/unitsml.spec.js |
Adds UnitsML AsciiMath conversion coverage. |
spec/unitsml_opal_payload_generator_spec.rb |
Adds Ruby coverage for payload generator behavior. |
spec/to-unicodemath.spec.js |
Improves UnicodeMath specs with clearer assertions and more coverage. |
spec/to-mathml-intent.spec.js |
Makes MathML intent assertions less brittle and adds default behavior check. |
package.json |
Tweaks Podman invocation flags (non-tty, OPAL_PREFORK_DISABLE). |
demo.html |
Adds UnicodeMath options to demo UI. |
.github/workflows/test.yml |
New CI workflow to build via Podman and run Jest across Node versions. |
.github/workflows/npm.yml |
Removes old NodeJS workflow. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Fix UnitsML payload generation and align build/spec coverage Rename npm workflow to test, update CI matrix for main and repo urls in Gemfile Fix CI dependency setup before JS tests Use npm install in CI until a lockfile is committed test: disable prefork for test/build removed gem branch names in Gemfile test: Work around Opal prefork hang in CI Temporarily force Opal XML adapter before plurimath load Use moxml Opal adapter fix branch test: stabilize local Podman build/setup path test: lock Ruby deps for deterministic CI builds test: restore UnitsML Opal payload and runtime compatibility test: use upstream moxml runtime compatibility loader in plurimath-js test: updated moxml branch ref test: removed lutaml-model monkey-patch file test: updated lutaml-model revision test: preload timeout in Opal build for CI experiment Update lutaml-model runtime compatibility revision Remove timeout preload from Opal build test: updated lutaml-model ref test: updated Gemfile.lock with latest ref lutaml-model fix: register UnitsML Opal database payload model fix: update Plurimath vendor and UnitsML Opal payload registration fix: load UnitsML Opal payload from generated database class fix: load UnitsML Opal payload through upstream loader test: harden PR 42 review follow-ups test: upstream change verification fix: harden Opal runtime compatibility loaders test: refresh lutaml-model CI check test: refresh lutaml-model autoload check Refresh CI Refresh CI Refresh CI: lutaml-model change test: run UnitsML payload Ruby specs in CI test: point vendored plurimath at Opal loader fix test: update vendored plurimath loader fix test: use scoped plurimath loader fix test: use corrected plurimath Rakefile loader fix test: use plurimath Opal formatter guard test: use plurimath Opal spec table stub test: use Opal-safe plurimath spec matcher test: use plurimath Opal CLI spec exclusion test: run only native Ruby spec in JS CI fix: preserve UTF-8 in UnitsML payload source test: unitsml-ruby changes
suleman-uzair
force-pushed
the
feat/latest-plurimath-support
branch
from
April 29, 2026 12:09
1497a12 to
921aebe
Compare
suleman-uzair
marked this pull request as ready for review
April 29, 2026 16:21
Member
Author
|
This PR currently depends on the following upstream PRs before it can be finalized:
After these land, this PR should be refreshed to use merged refs instead of temporary branch dependencies. |
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.
Summary
This PR updates
plurimath-jsto build against the current Plurimath/UnitsML stack in Opal.It adds generated UnitsML database payload support for the Opal bundle, updates the vendored Plurimath revision, and adds focused coverage for UnitsML conversions.
Changes
vendor/plurimathto the required upstream revisionTODO Before Merge
vendor/plurimathafter the upstream Plurimath changes land