Repository navigation
refactor!: remove the Python extension crate, now maintained in finos/morphir-python - #314
Merged
Merged
Conversation
The Python extension (crate morphir-python-binding 0.4.0, bundle morphir-python, short id python) now lives in finos/morphir-python at rust/crates/morphir-python-binding, with its tests, fixtures, examples and Gherkin acceptance. This workspace no longer builds, tests or releases it. The extension/python/v0.1.0 to v0.4.0 releases stay published here. Removed: - the crate, its default-members entry, the Ruff workspace dependencies and the lockfile entries only it used (cargo update --workspace --offline; no other package version changed); - [extensions.python] in .github/extensions.toml, the extension:artifact:python task, the python case of test:cli-release and the CI step for generated Python functions. Host tests: crates/morphir-host-native/tests/python_extension.rs is deleted. Both of its tests were ignored and read fixtures from the deleted crate. The packaged test checked publish to a local repository, version-2 claims with frontend and backend, Unchecked claim checks before and after install, install from LocalIndex, activation from Morphir Home after the repository is removed, MEP negotiation of frontend languages and backend targets, and compile, generate and close in IR v3 and v4. The same host path is covered for remaining guests by rust_extension.rs, gleam_extension.rs and elm_native_extension.rs, which their extension:artifact tasks run in the CI extension-bundle job. gleam_extension.rs also compiles, generates and compiles again in both IR versions. Direct Extism container calls (initialize, capabilities, generate, lifecycle order) stay covered by extism_extension.rs. No host behavior loses its only coverage. Python compile and generate lifecycle checks move to finos/morphir-python, which runs them with the morphir CLI as an offline MEP host. No support code was used only by this file. CI tests: the classifier, graph, output, change-detection, consistency, routing, packaging and Windows identity tests now use morphir-rust-binding, rust or openapi as their sample, so they test the same behavior. The test_python_extension_release.py checks that are not covered elsewhere (selection keeps frontend languages and refuses a descriptor without them; packaging accepts frontend-only entries and refuses invalid languages) move to test_frontend_extension_release.py with a Rust sample. Its tag routing and CI bundle checks were duplicates of test_extension_release_routing.py and test_ci_workflow_definition.py and are removed. README drops the two Python rows and points to finos/morphir-python. BREAKING CHANGE: build morphir-python-binding from finos/morphir-python. Refs: morphir-ukvn.1.6.7 (OpenSpec migrate-python-binding task 7.1)
The tutorial page stays at its URL as a short pointer: the extension is now maintained and released from finos/morphir-python, and the historical extension/python/v0.1.0 to v0.4.0 bundles remain in morphir-rust releases. The extension tutorial now names the Rust binding as its frontend and backend example. docs/llms.txt and docs/llms-full.txt are regenerated with the docs:llms-txt generator. Refs: morphir-ukvn.1.6.7
DamianReeves
marked this pull request as ready for review
October 27, 2026 23:32
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
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
This PR removes
crates/morphir-python-bindingfrom this workspace. The crate moved to finos/morphir-python, which now maintains and releases it (finos/morphir-python#41; OpenSpec changemigrate-python-binding, beadmorphir-ukvn.1.6.7).[extensions.python]registry entry, theextension:artifact:pythontask, the Python case oftest:cli-release, and the CI step that ran generated Python.crates/morphir-host-native/tests/python_extension.rs. That file read fixtures from the deleted directory. The remaining Rust, Gleam and Elm-native guests already cover every host behavior it checked: packaged install and activation, v3/v4 compile/generate, recompile, and Extism calls (see the commit body). The Python-specific lifecycle check now runs in finos/morphir-python, through an offline Morphir CLI host.test_python_extension_release.pybecomestest_frontend_extension_release.pyand keeps the two checks that had no other coverage.llmsfiles are updated, and CHANGELOG has a Breaking entry.The historical
extension/python/v0.1.0–v0.4.0releases stay published.Verification
cargo metadata --locked,cargo build --locked --workspace,cargo fmt --all --check.cargo test --locked -p morphir-distribution: 288 passed.cargo test --locked -p morphir-host-native: 0 failures.-D warningson the touched crates.python -m unittest discover -s tests/ci: 272 run, with 1 error,test_provider_child_environment_is_explicit_and_drops_inherited_values. It fails in the same way on clean0aa60eb(a localpwshmise shim has no version), so this PR does not cause it.git grepfor the crate name, the artifact task andMORPHIR_PYTHONfinds only historical changelog lines and the new pointer text.Merge order
Merge this PR after the first finos/morphir-python bundle is published and finos/morphir pins it. Until then, the existing morphir-rust releases remain the published provider. Merging needs maintainer approval.