Skip to content

Support latest Plurimath UnitsML build with generated Opal payload - #42

Open
suleman-uzair wants to merge 5 commits into
mainfrom
feat/latest-plurimath-support
Open

Support latest Plurimath UnitsML build with generated Opal payload#42
suleman-uzair wants to merge 5 commits into
mainfrom
feat/latest-plurimath-support

Conversation

@suleman-uzair

@suleman-uzair suleman-uzair commented Apr 21, 2026

Copy link
Copy Markdown
Member

Summary

This PR updates plurimath-js to 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

  • generate a Ruby payload file for UnitsML database data during the build
  • load the generated UnitsML payload into the Opal bundle
  • update vendor/plurimath to the required upstream revision
  • add JS coverage for UnitsML AsciiMath conversions
  • add Ruby coverage for the UnitsML payload generator

TODO Before Merge

  • refresh vendor/plurimath after the upstream Plurimath changes land
  • replace temporary branch dependencies with merged or released refs

Comment thread .github/workflows/test.yml Fixed

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.rb during 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.

Comment thread Gemfile Outdated
Comment thread package.json Outdated
Comment thread .github/workflows/test.yml
Comment thread .github/workflows/test.yml
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
suleman-uzair force-pushed the feat/latest-plurimath-support branch from 1497a12 to 921aebe Compare April 29, 2026 12:09
@suleman-uzair
suleman-uzair marked this pull request as ready for review April 29, 2026 16:21
@suleman-uzair

Copy link
Copy Markdown
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.

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.

3 participants