Skip to content

feat(extensions): resolve the Python extension from finos/morphir-python - #1104

Merged
DamianReeves merged 3 commits into
mainfrom
DamianReeves/python-provider-cutover
Oct 28, 2026
Merged

DamianReeves merged 3 commits into
mainfrom
DamianReeves/python-provider-cutover

Conversation

@DamianReeves

@DamianReeves DamianReeves commented Oct 27, 2026 •

Copy link
Copy Markdown
Member

Summary

The morphir-python MEP extension (crate morphir-python-binding, bundle tags extension/python/v*) moved from finos/morphir-rust to finos/morphir-python (finos/morphir-python#41). Its removal from morphir-rust is in finos/morphir-rust#314. This PR prepares the ecosystem references (OpenSpec migrate-python-binding, bead morphir-ukvn.1.6.7).

  • tools/fetch-published-bundles.ts: a [bundles.*] pin can name the repository that owns it (owner/name). Pins without one still come from finos/morphir-rust, so the downloads are unchanged, and the guest sha256 check is unchanged. Malformed repositories are refused for bundle and executable pins. There are 6 new tests.
  • .config/published-extension-bundles.toml: [bundles.python] stays on the published extension/python/v0.4.0 and now names finos/morphir-rust explicitly. A comment says when to move it.
  • INSTALLING.md, the release-manager skill, ecosystem README/AGENTS, README and a provenance comment in host_compatibility.rs now point the Python extension's source and future releases at finos/morphir-python. They say that the historical bundles stay in morphir-rust releases.

Verification

  • mise run tools:typecheck and bun test tools: 162 pass. python3 -B -m unittest discover -s tests/ci: 55 OK. mise run check passes.
  • The fetcher downloads all 6 current pins with their digests checked.
  • MORPHIR_PYTHON_BUNDLE=<bundle built in finos/morphir-python at 2b96642, v0.4.1> cargo test --release -p morphir --test python_extension -- --ignored: 1 passed. An isolated install selects the bundle built in finos/morphir-python and round-trips offline, with no Python crate in morphir-rust.
  • The CI published-bundle tests and the host_compatibility cases for python, avro, openapi and rust pass against the current pins.

Before merge (draft)

  1. After maintainer approval, finos/morphir-python publishes extension/python/v0.4.1.
  2. A final commit here moves [bundles.python] to repository = "finos/morphir-python", tag = "extension/python/v0.4.1", artifact = "morphir-python-binding-0.4.1", and the sha256 of the published guest, computed from the release asset. The release publishes the bundle CI built from the tagged commit; the 2026-10-27 qualification run built a guest with sha256 a04722e1…. A local macOS build differs, so do not use a local digest. With those values, host_compatibility (python) and python_extension pass locally.
  3. Merge after feat: maintain the Python compiler here with a native API, CLI and extension bundle morphir-python#41, so the new documentation links resolve. Merging needs maintainer approval.

…s it

A [bundles.*] pin can now name its releasing repository as `owner/name`,
as [executables.*] pins already do. A pin without one still comes from
finos/morphir-rust, so the existing pins download the same assets. A
repository that is empty or not of the form owner/name is refused, for
bundle and executable pins alike. The guest is still checked against the
pinned sha256.

finos/morphir-python now owns the Python extension. The python pin names
finos/morphir-rust explicitly, because extension/python/v0.4.0 is
released there, and says to move to finos/morphir-python when it
publishes extension/python/v0.4.1.
The Python compiler crate, morphir-python-binding, its extension guide
and new extension/python/v* bundles now live in finos/morphir-python.
Bundles up to extension/python/v0.4.0 stay in the finos/morphir-rust
releases. Update the installation guide, the release-manager skill, the
ecosystem guides and the host compatibility test comment to say so, and
note that a morphir-python release on PyPI that includes the compiler
gives the same compiler as a Python API and command.
@netlify

netlify Bot commented Oct 27, 2026 •

Copy link
Copy Markdown

✅ Deploy Preview for angry-raman-7c44f6 canceled.

Name Link
🔨 Latest commit 45760e9
🔍 Latest deploy log https://app.netlify.com/projects/angry-raman-7c44f6/deploys/6ae1348a7f0f41d0647162c2

finos/morphir-python published extension/python/v0.4.1 (guest sha256
a04722e1, built from 0d7e2eb). Fetch it from that repository. The
python_extension and host_compatibility python tests pass against it.
@DamianReeves
DamianReeves marked this pull request as ready for review October 27, 2026 23:32
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 27, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-27T23:33:32.024743Z 45760e9 Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@DamianReeves
DamianReeves merged commit 6f00af0 into main Oct 28, 2026
17 checks passed
@DamianReeves
DamianReeves deleted the DamianReeves/python-provider-cutover branch October 28, 2026 03:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant