diff --git a/.changes/runtime-core-py/0.1.1.md b/.changes/runtime-core-py/0.1.1.md new file mode 100644 index 0000000..12704c8 --- /dev/null +++ b/.changes/runtime-core-py/0.1.1.md @@ -0,0 +1,7 @@ +## 0.1.1 - 2026-08-24 + +### Fixed + +- Acquire the Extension wheel from its Registry without resolving dependencies + there, then let pip install ordinary Python dependencies from its package + index. diff --git a/runtimes/core-py/CHANGELOG.md b/runtimes/core-py/CHANGELOG.md index e79afc5..c81c774 100644 --- a/runtimes/core-py/CHANGELOG.md +++ b/runtimes/core-py/CHANGELOG.md @@ -3,6 +3,14 @@ This changelog records notable changes to this independently released Python package. It is generated by [Changie](https://changie.dev/). +## 0.1.1 - 2026-08-24 + +### Fixed + +- Acquire the Extension wheel from its Registry without resolving dependencies + there, then let pip install ordinary Python dependencies from its package + index. + ## 0.1.0 - 2026-08-19 ### Added diff --git a/runtimes/core-py/pyproject.toml b/runtimes/core-py/pyproject.toml index 14f6c77..e8312b5 100644 --- a/runtimes/core-py/pyproject.toml +++ b/runtimes/core-py/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "inkcre-extension-runtime-core-py" -version = "0.1.0" +version = "0.1.1" description = "InKCre Core Python Extension Host Runtime" requires-python = ">=3.12,<3.14" dependencies = [ diff --git a/runtimes/core-py/src/inkcre_extension_runtime_core_py/distribution.py b/runtimes/core-py/src/inkcre_extension_runtime_core_py/distribution.py index ddf6b47..aad6c88 100644 --- a/runtimes/core-py/src/inkcre_extension_runtime_core_py/distribution.py +++ b/runtimes/core-py/src/inkcre_extension_runtime_core_py/distribution.py @@ -230,6 +230,7 @@ def acquire( download = self._runner( [ "download", + "--no-deps", "--only-binary=:all:", "--dest", str(wheel_dir), @@ -250,9 +251,7 @@ def acquire( ): extension_wheels.append(wheel) except zipfile.BadZipFile as error: - raise ExtensionAcquisitionError( - "Downloaded dependency wheel is invalid" - ) from error + raise ExtensionAcquisitionError("Downloaded wheel is invalid") from error if len(extension_wheels) != 1: raise ExtensionAcquisitionError( "Registry did not yield exactly one Extension wheel" @@ -263,10 +262,6 @@ def acquire( [ "install", "--no-compile", - "--only-binary=:all:", - "--no-index", - "--find-links", - str(wheel_dir), str(extension_wheel), ] ) diff --git a/tasks/extension-setup-wizard/active/00-state.md b/tasks/extension-setup-wizard/active/00-state.md index 81c0c5f..f3dcace 100644 --- a/tasks/extension-setup-wizard/active/00-state.md +++ b/tasks/extension-setup-wizard/active/00-state.md @@ -24,7 +24,8 @@ ## Current Gate -Batches 1–3 and local package-release preparation are complete. Toolkit 0.2.0 -and both Runtime 0.1.0 packages must be committed, pushed and published before -the Peer manifests can receive normal released dependencies and frozen locks. -Every remote mutation remains separately gated. +Batches 1–3 and the Python dependency-acquisition correction are locally +complete. Core Runtime 0.1.1 must be committed, pushed and published before +Core PR #65 can receive the released dependency and frozen lock. Its preview +producer finalization correction is locally ready in the Core worktree. Every +remote mutation remains separately gated. diff --git a/tasks/extension-setup-wizard/active/50-implementation/runtime-alignment.md b/tasks/extension-setup-wizard/active/50-implementation/runtime-alignment.md index 54a7e3b..5d51c6f 100644 --- a/tasks/extension-setup-wizard/active/50-implementation/runtime-alignment.md +++ b/tasks/extension-setup-wizard/active/50-implementation/runtime-alignment.md @@ -97,4 +97,29 @@ corrected protected-main release run; then update Core PDM and Client pnpm released locks and rerun their frozen full checks. +## Python dependency acquisition correction + +- Preview acceptance of Twitter 0.2.0 reproduced pip resolving `authlib` from + the Extension Registry's Simple API. That Registry owns Extension + Distributions, not ordinary third-party Python packages. +- Runtime 0.1.1 downloads the exact Extension wheel with `--no-deps`, validates + its installed Extension record, and then installs the local wheel while pip + resolves ordinary dependencies from its normal package index. +- This keeps Registry Release resolution exact without turning a Peer preview + Registry into a PyPI mirror or combining the two authorities through an + extra index. +- Core PR #65's preview producer now finalizes each raw PEP 517 wheel through + the released Toolkit before writing its preview inventory. The static + Registry therefore hosts the same installed-record-bearing Distribution that + the Runtime contract consumes. +- A disposable Python 3.12 environment completed the real acquisition path + against a locally built seven-Extension sibling Registry: Twitter 0.2.0 was + downloaded as the exact Extension wheel, its ordinary dependency closure was + resolved by pip, and installed-record discovery returned + `extensions.twitter:Extension`. +- The ext-reg static/build/type contract passes. Worker dry build requires the + repository-declared Node 22 runtime and passes there; the initially active + Node 26 executable lacks the Pyodide flag expected by this toolchain. Core's + format, lint and type checks pass, as does its seven-wheel preview build. + Do not append investigation narrative or restate historical product decisions. diff --git a/tasks/extension-setup-wizard/packet.md b/tasks/extension-setup-wizard/packet.md index a9e2926..a7cb822 100644 --- a/tasks/extension-setup-wizard/packet.md +++ b/tasks/extension-setup-wizard/packet.md @@ -92,6 +92,10 @@ authority. Their status and replacement are recorded in - Preview delivery must not use full-tree public reads, byte comparisons, cache-busters, digest substitutions or indiscriminate long propagation retries; ordinary provider signals and focused probes retain observability. +- Python acquisition separates package authorities: the Extension Registry + supplies only the exact Extension wheel, while standard pip resolves its + ordinary Python dependencies from the normal package index. A Peer preview + Registry is not a PyPI mirror or an extra index for one combined resolution. ## Review/Implementation Loop