You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Migrate the Python SDK and all affected converters to the single-model document format merged in #383. Ossie input/output now puts name, datasets, relationships, and metrics directly at the root alongside version; the legacy semantic_model wrapper is rejected instead of selecting its first entry.
Rebased onto current main after #383 merged. This PR now contains only the SDK/converter migration and its CI/documentation updates. It also incorporates #397: root-level dialects and vendors are removed; expression dialects and vendor custom extensions remain supported.
Behavior
Flatten the shared OssieDocument API and update dbt, Sigma, Wisdom, Databricks, Honeydew, Omni, OrionBelt, Snowflake, GoodData, NVIDIA GSF, Microsoft/Power BI, Salesforce, and Polaris readers/writers, fixtures, snapshots, and usage documentation.
Remove obsolete root dialects/vendors fields and first-model/drop-extra-model behavior. Preserve vendor-native collections such as dbt's semantic_models.
Preserve the ontology mapping's embedded semantic_model structure and exclude standalone document metadata from that embedded object.
Add Polaris import --output-dir DIR to emit one document per nonempty namespace with deterministic, collision-safe filenames and no overwrites. Single-file/stdout imports require one nonempty namespace.
Trigger converter CI, including Microsoft, on shared schema/example changes and run shared SDK tests in Validation CI.
This is a breaking SDK and converter format change for the mutable 0.2.0.dev0 specification. Legacy documents must be migrated first; see the spec's migration guidance.
Breaking behavior and bulk export migration described.
Focused regression coverage added or updated.
Ontology embedding and vendor-specific model collections preserved.
No runtime dependencies added.
Validation
Passed 199 focused SDK/converter tests, including dbt relationship, composite-key, template-safety, CLI, and snapshot regressions.
Passed Microsoft CLI import/export round-trip and schema validation; all 10 checked-in standalone converter fixtures validate against the merged schema.
Microsoft Ruff checks, changed-Python compilation, and whitespace checks pass. Comparison against the rebased branch found no new Ruff diagnostics in the other changed Python files; existing style findings remain.
Full converter regression suites and optional Microsoft TOM/live-engine checks were not run locally; full regression validation is left to CI.
#393 was settled by removing the root dialects/vendors arrays from the schema (#397, now on main), and #383 has been asked to drop them in its rebase. This branch still keeps them in a few places that will need the same treatment: converters/sigma/tests/test_roundtrip.py asserts serialized["dialects"] == ["ANSI_SQL", "SIGMA"] and serialized["vendors"] == ["SIGMA"], the orionbelt test_schema_rejects_root_dialects_and_vendors is flipped to test_schema_accepts_root_dialects_and_vendors, the nvidia reader allow-lists both keys at the root, the honeydew tests expect a root vendors, and the SDK tests and python/README.md list them alongside version. I merged the schema change with this branch earlier; the conflict is confined to those spots and resolves by dropping them.
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
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
Migrate the Python SDK and all affected converters to the single-model document format merged in #383. Ossie input/output now puts
name,datasets,relationships, andmetricsdirectly at the root alongsideversion; the legacysemantic_modelwrapper is rejected instead of selecting its first entry.Rebased onto current main after #383 merged. This PR now contains only the SDK/converter migration and its CI/documentation updates. It also incorporates #397: root-level
dialectsandvendorsare removed; expression dialects and vendor custom extensions remain supported.Behavior
OssieDocumentAPI and update dbt, Sigma, Wisdom, Databricks, Honeydew, Omni, OrionBelt, Snowflake, GoodData, NVIDIA GSF, Microsoft/Power BI, Salesforce, and Polaris readers/writers, fixtures, snapshots, and usage documentation.dialects/vendorsfields and first-model/drop-extra-model behavior. Preserve vendor-native collections such as dbt'ssemantic_models.semantic_modelstructure and exclude standalone document metadata from that embedded object.import --output-dir DIRto emit one document per nonempty namespace with deterministic, collision-safe filenames and no overwrites. Single-file/stdout imports require one nonempty namespace.This is a breaking SDK and converter format change for the mutable
0.2.0.dev0specification. Legacy documents must be migrated first; see the spec's migration guidance.Checklist
Validation