Keep converter outputs aligned with root schema - #306
Conversation
|
Gentle ping on #306, #307, and #308. I noticed the workflows for #306 and #308 are waiting for maintainer approval ( For review order, #307 and #308 are related:
#306 is independent and keeps converter/Python output aligned with the published root schema. Happy to adjust or split further if the direction looks off. |
|
Hey @LiangRuoShui Could you please resolve the merge conflicts because of the rename ? |
08e8141 to
ad69857
Compare
|
Thanks for the reminder! I have rebased this PR on the latest main and resolved the merge conflicts caused by the rename. I also ran the relevant local tests to make sure the changes still behave as expected. Please let me know if there is anything else you would like me to adjust. |
| # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | ||
| # KIND, either express or implied. See the License for the | ||
| # specific language governing permissions and limitations | ||
| # under the License. |
There was a problem hiding this comment.
The header shoudln't have been removed ?
Why
The published core JSON Schema only allows
versionandsemantic_modelat the document root and setsadditionalProperties: false. dbt and Honeydew could still emit root-level advertisement fields (dialects/vendors), and the PythonOSIDocumentmodel accepted those fields, which allowed generated OSI documents to fail the official validator.What changed
dialectsemission from the dbt MSI-to-OSI converter.vendorsemission from the Honeydew-to-OSI converter.vendorsanddialectson OSI input.OSIDocumentmodel reject schema-invalid root extra fields.Tests added/updated
dialectsandvendorswhile preserving expression-level dialects.vendors/dialectsare rejected.dialectsis rejected.Verification
uv run validation/validate.py examples/tpcds_semantic_model.yamlcd python && uv run --with pytest pytest -qcd converters/dbt && uv run pytest -qcd converters/honeydew && uv run pytest -q