Conversation
PR #383 moved the Ossie document schema to one semantic model directly at the document root (dropping the `semantic_model:` wrapper), and #407 fixed the Microsoft converter for it, but the Sigma and NVIDIA GSF converters were never updated, so their CI failed on main as soon as an unrelated change touched their paths and re-triggered it. The Sigma, dbt, and wisdom converters share the `ossie` Python package's OssieDocument/OssieSemanticModel pydantic models, so fixing OssieDocument to match the flat schema required updating all three converters (and their tests/snapshots) together to keep them internally consistent. NVIDIA GSF parses Ossie YAML directly against a dict shape and is fixed independently. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
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
maincurrently has two red CI checks: Converters Sigma CI and Converters NVIDIA GSF CI. Both broke because #383 moved the Ossie document schema to a single semantic model defined directly at the document root (dropping thesemantic_model:list wrapper), and #407 followed up to fix the Microsoft converter for that shape — but the Sigma and NVIDIA GSF converters were never updated. Their CI simply hadn't re-run since #383 landed until an unrelated change (#416) touched their paths and re-triggered it, surfacing the break.semantic_model: [...]wrapper; the official validator now rejects that shape ('name' is a required property,'semantic_model' was unexpected).OssieDocument.model_validate(...)failed loading the (already-flattened)examples/tpcds_semantic_model.yamlfixture withsemantic_model: Field required.What changed
python/src/ossie/models.py:OssieDocumentnow extendsOssieSemanticModeldirectly (version+ the model's fields at the document root) instead of wrapping asemantic_model: list[OssieSemanticModel], matching the currentcore-spec/ossie-schema.json. It also drops the removed root-leveldialects/vendorsfields.EXTRA_MODEL_DROPPED, empty-model errors) since a document is always exactly one model now.ossiePython package'sOssieDocument/OssieSemanticModelmodels, so changingOssieDocument's shape would have broken them the moment their (currently green, but stale) CI next ran. Fixed in the same PR to keep the shared package's consumers consistent, including regenerating their syrupy snapshots.dialects=[...]argument dbt passed intoOssieDocument(that field no longer exists at the document root) and the test assertions that exercised it.All four converters plus the shared
python/package pass their full test suites locally with the exact commands CI uses (uv sync && uv run pytest): Sigma 90/90, NVIDIA GSF 77/77, dbt 106/106, wisdom 27/27, python 9/9.Follow-up
While fixing this I found the same latent break in several other converters that haven't had CI re-triggered since #383:
databricks,orionbelt,ontology(+ the rootexamples/flights.yaml),gooddata,omni,honeydew, and the Java-basedsalesforce/polaris. None of those are touched by this PR — filing a separate issue to track them.Test plan
cd python && uv run --with pytest --with PyYAML pytest tests/test_models.py— 9 passedcd converters/sigma && uv run pytest— 90 passedcd converters/nvidia && uv run pytest— 77 passedcd converters/dbt && uv run pytest— 106 passedcd converters/wisdom && uv run pytest— 27 passed🤖 Generated with Claude Code