RDF Export Plugin – Bugfix Report (Flowchart Tweaked metadata regression)
Summary
Investigated pytest failure triggered by
test_generated_metadata_fixtures_round_tripwhere Flowchart fixtures causedArrowWithoutIndividualAsSourceException.Determined root cause: legacy DrawIO fixtures still using
<object>metadata envelope were ignored by_extract_drawio_metadata, so thekbprefix never reached the classifier, leaving decision nodes treated as literals. Metadata patcher also overwrote legacy prefixes when injecting modern metadata.Added a new override (
legacy/overrides/metadata_extraction.py) so_extract_drawio_metadatarecognises both<UserObject>and legacy<object>wrappers and harvests existing preamble entries.Updated
tests/utils/patchDrawioWithMetadata.tsto merge any pre-existing preamble entries into the generated metadata, preserving legacy prefixes when the fixture already declared them.Regenerated the parser via
python -m meta_builder -o legacy/draw_io_parser.pyand reformatted with Ruff & Prettier.
Commands Executed
Environment prep:
bun install,bun run setup:uv,bun run setup:pyodide,bun run test,bun run check(with supporting lint/format subtasks), plus targetedpytest legacy/tests/test_patched_parser.py::test_generated_metadata_fixtures_round_tripduring diagnosis.Formatting:
ruff format,prettier --write .(with CI log-level guard) to satisfy repository style gates.
Testing
Targeted pytest run for
legacy/tests/test_patched_parser.py::test_generated_metadata_fixtures_round_tripconfirmed the regression fix locally before rerunning the full suite.bun run test(legacy + TypeScript + Pyodide integration) andbun run checkexecuted cleanly with all existing skips unchanged.
Notes
No CHANGELOG entry provided for this focused bugfix per existing project cadence.
Flowchart fixtures continue to be skipped in baseline regeneration until dedicated
.ntfixtures exist; behaviour unchanged by this patch.