Repository navigation
Conversation
…red vendor-specific data
…-specific metadata
…-specific metadata
… rules Add a migration note for string data, require JSON-representable data, require consumers to preserve unknown data, note null preservation, align Vendor examples with extensions/vendors.md, and test non-object rejection at every custom_extensions location.
Core semantics do not depend on any property in the extension area. The old field name is not accepted. validate.py rejects dates, timestamps, and non-finite floats under data, and the spec states the YAML retyping that check cannot catch. BREAKING CHANGE: custom_extensions is renamed to nonportable_extensions with no alias. data remains an object. A date, timestamp, or non-finite float under data is a schema error. Co-authored-by: Mike Carlo <mike@powerbi.tips>
Add a field guide for nonportable_extensions with the YAML cases validate.py rejects and the ones it still accepts after retyping. Co-authored-by: Mike Carlo <mike@powerbi.tips>
Keep the custom_extensions rename only in the 0.3.0.dev0 version history. Point the schema data description at the spec section, and leave quoting details in the field guide. Co-authored-by: Mike Carlo <mike@powerbi.tips>
Add the unreleased 0.3.0.dev0 rename and object-data change to the significant-change history, which is where migration impact belongs. Co-authored-by: Mike Carlo <mike@powerbi.tips>
Keep nested extension payloads from being mutated after validation, and serialize them back to plain dicts and lists. Co-authored-by: Mike Carlo <mike@powerbi.tips>
…a separate PR) This reverts commit 77659ec. Co-authored-by: Mike Carlo <mike@powerbi.tips>
Keep nested extension payloads from being mutated after validation, and serialize them back to plain dicts and lists. Co-authored-by: Mike Carlo <mike@powerbi.tips>
ekut
added a commit
to Dactopus/dactopus-ossie-clickhouse
that referenced
this pull request
Nov 11, 2026
apache/ossie#522 renamed custom_extensions to nonportable_extensions and made its data an object instead of a string holding JSON, keeping the schema version 0.3.0.dev0. Vendor apache-ossie at af7630c, read and write the entry in the new form, and name the change when a model still uses the old one: the SDK refuses it, so it is not read. Messages show data values without json.dumps on them directly, so a frozen data object (apache/ossie#713) still prints. Co-Authored-By: Claude Opus 5.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
Deep-freezes
OssieNonportableExtension.datain the Python models so the model'sfrozen=Trueconfig actually holds for the payload.This addresses the Copilot review on #522 (#522 (comment)) and was split out of #522 at reviewer request.
datais annotatedMapping[str, Any].MappingProxyType, lists become tuples, recursively. The caller's input dict is not aliased.model_dump(),model_dump(mode="json"), and YAML/JSON output are unchanged.Depends on #522. This branch is stacked on #522, so the diff includes #522's commits until it merges. After that I will rebase so only this change remains (one commit touching
python/src/ossie/models.pyandpython/tests/test_validation.py).No spec, schema, or
docs/spec_changes.mdchange: this is Python package behavior only.Related Issues
Follow-up to #522.
Checklist
Specification
core-spec/and follow the existing structure (n/a)docs/spec_changes.mdrecords rationale, compatibility and migration impact, or the PR explains why no entry is needed (no spec change)Tests
pytest/ CI green): local runs pass (validation/test_validate.py 59, validation/tests 615, python/tests 280, generate-spec-types --check, example validators, audit-spec-changes); GitHub CI awaits fork-workflow approvaltest_nonportable_extension_data_is_deep_frozen_and_not_aliased,test_nonportable_extension_round_trip_emits_plain_dicts)Compliance