This repository provides a reproducible build test for model format conversion using the SBML Semantic Test Suite.
SBML → Heta → canonical JSON + DynMS
Each selected SBML case is built with heta-compiler. The suite records whether
the build produced its canonical JSON and DynMS artifacts; it does not compare
generated files with stored baselines and does not validate numerical
simulations.
The dependency-free Report viewer
loads a local report.json or a public report URL. Its files are in
viewer/; see viewer/README.md for usage.
config/options.json is the source of truth for the
SBML Semantic Test Suite version, archive URL, checksum, and extraction target.
Check that this configuration is valid and that the archive URL is reachable:
npm run verify:configDownload and verify the configured SBML archive:
npm run fetch:sbmlCreate cases/index.json from the downloaded suite:
npm run index:sbmlThe index contains available SBML paths, source metadata, and the pinned
test-suite identity. Both cases/ and results/ are generated and ignored by
Git.
npx fcts sbml-report --source=cases/index --input-field=sbmlL3V2Path \
--target=results/candidate --concurrency=1 --skip=0 --limit=10The target directory is recreated for each run. report.json records the
conversion description, generator and run metadata, command parameters, build
status for every selected case, and relative paths to artifacts from successful
builds. After a successful compiler build, canonical JSON and DynMS artifacts
are validated against the heta-compiler/heta-json-schema and
heta-compiler/dynms-schema exports. A schema violation marks the case as
failed while preserving buildStatus: "success" and validation errors.
The target also receives badge.json, which is compatible with the
Shields endpoint badge. It contains
successful assessed cases over all assessed cases; not-evaluated cases are
excluded.
--input-field accepts sbmlL3V2Path (default) or sbmlL2V5Path. To build
cases while excluding selected tags from assessment, use
--skip-component-tags and --skip-test-tags; matching cases keep their build
result but receive status not-evaluated. Excluded cases do not affect the
overall report status: a report is success when every assessed case succeeds.
The manual Verify heta-compiler conversion workflow downloads and indexes
the SBML suite, builds L3V2 and L2V5 reports for the chosen heta-compiler ref,
and fails if any selected case has status failed. It uploads the generated
build reports for inspection.
See LICENSE.