Orchestrata Ultimate › Plans › briefs › vendor-compiled-members
§5.1 — vendor the compiled workspace members into orchestrata's wheel
Source: plans/briefs/vendor-compiled-members.md at 8a2cb42ad · last changed 2026-10-20 · first committed 2026-10-20 · 66 lines.
Prose pending.
Plan text
§5.1 — vendor the compiled workspace members into orchestrata's wheel
Status: DISPATCH-READY (dispatch slot: after P-RUL040 consumption + P-RUL039 + T17/T21 + Batch-2 —
the orchestrata queue is serial; the coordinator names the slot) · Repo:
/home/mohamed/workspace/wt-COMPONENTS (branch components)
Authority: Mohamed ruling 2026-10-20 §5.1, option (b): "Vendor compiled artifacts into the wheel".
Accepted consequence recorded in the ruling: the wheel loses py3-none-any and becomes
platform/ABI-tagged (cp314t/linux for this fleet); the pure-Python _fast_fallback.py stays for
source installs. This replaces the accidental-then-retracted "(a)" answer — (a) is NOT the ruling.
Context (measured, verify each)
orchestrata-ultimate==1.5.0declares runtime deps on three workspace members published to no registry:codemod-fast,cxpt,ctok([tool.uv.sources]path sourcesscripts/_codemod_fast,scripts/_cxpt,scripts/_ctok; all three inno-build-isolation-package— they compile C extensions against the 3.14t ABI, Py_GIL_DISABLED / PyUnstable_Module_SetGIL). The base wheel therefore can never install externally ("codemod-fast was not found in the package registry")._codemod_fasthas a parity-tested pure-Python fallback (orchestrata_ultimate.refactor.codemod. _fast_fallback) — keep it exactly as-is; this packet does NOT change the fallback or its tests.pyproject.tomlalready: hatchling build with[tool.hatch.build.targets.wheel] packages = [all three top-level packages](the mechanism that made them ship — DO NOT regress it), requires-python>=3.14,<3.15,no-build-isolation-package = ["janus-swi", "codemod-fast", "cxpt", "ctok"].- The members import as TOP-LEVEL names (
codemod_fast,cxpt,ctok) — the wheel must ship them as additional top-level packages carrying their compiled.so, and the runtime deps must drop (they are IN the wheel now, not fetched).
Deliverables
- D1 — measure first and paste: each member's
setup.py/pyprojectbuild (what it compiles, where the.solands, the module layout), how uv builds them today (no-build-isolationpath), and the exact hatchling hook API this repo's build-system version provides for adding build artifacts (custombuild_hook/force_include/artifacts— cite the installed hatchling version). - D2 — the build: extend the wheel build so
uv build(and anypip installof the built wheel) produces a wheel containing the three members as top-level packages with their compiled extensions, alongside the existing three packages. Keep source/dev installs working unchanged (the workspace members remain foruv syncdev flows — the fallback story stays). - D3 — the dependency surface: remove
codemod-fast/cxpt/ctokfrom[project.dependencies](they are vendored), and adjustno-build-isolation-package+[tool.uv.sources]accordingly; keep every GIL-floor pin and thelocal-embeddingsextra EXACTLY as they are (tests/core/ test_pyproject_contract.py pins them — do not move a pin; if an assertion encodes the members being deps, repoint it to the vendored reality and say so, never weaken a floor). - D4 — the proof, real and complete: build the wheel; install it into a CLEAN venv outside any
workspace context (no PYTHONPATH, no repo on sys.path — L26 discipline); prove
import codemod_fast,import cxpt,import ctokwork AND thatorchestrata_ultimate.refactor.codemodimports and dispatches correctly; paste the wheel tag (must now be cp314t/linux-ish, never py3-none-any) and the installed direct_url if any. Also prove the dev flow still works:uv sync --dev --no-editablein the repo still installs everything and the codemod tests pass via the sanctioned runner. - D5 — lanes (verbatim): the codemod/refactor tests
(
ORCHESTRATA_ENV_PROFILE=test python scripts/run_tests.py tests/refactor/codemod/ --skip-gates— measure the exact dir first) +tests/core/test_pyproject_contract.py. No full-suite run (RUL-040).
Fence
ALLOWED: pyproject.toml, new build-hook file(s) under scripts/ or build/ (name them in the
report), tests/core/test_pyproject_contract.py (only the member-deps assertions), the codemod
tests ONLY if a repoint is unavoidable. FORBIDDEN: everything else — scripts/run_tests.py,
scripts/affected_tests.py, scripts/rts.py (P-RUL040 fences), tests/plugins/** (§5.2 fence),
uv.lock (regenerate ONLY via uv lock if the dep removal requires it and SAY so — the
coordinator commits it with you), plans/, reports/, /tmp. FOREIGN DIRT — untouched:
context.json, context.md, context.history.md, docs/CODEBASE_MAP*.md, plans/ast-*.json,
reports/run-tests-latest.json, .claude/skills/**, .deepchat/**.
Conduct
RUL-037 (no python -c/heredoc writes; file tools only). Measure before editing; verbatim outputs;
no false attribution. Do NOT commit. Do not run a full-suite run. Final report ends with: the D1
measurements, the wheel's tag + contents listing (unzip -l), the clean-venv import proof verbatim,
the dev-flow proof, the D5 lane outputs.