You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
test(ci): generate and execute wrappers in a clean consumer project #333
Require generated-wrapper execution from a clean consumer project.
The focused review on 6b84614 passed 97 tests and skipped one generated runtime test. It requires generated/math.generated.ts to exist before the test starts.
Acceptance criteria:
Install the packed candidate package in a clean temporary consumer project.
Use an isolated Python environment with the matching tywrap-ir candidate.
Reject imports from the repository or an existing editable Python install.
Generate wrappers from controlled Python fixtures, compile them, import them, and execute them through NodeBridge.
Require no pre-existing generated directory or repository source alias.
A function annotated int that returns a string throws BridgeValidationError through its generated wrapper.
Required CI installs prerequisites and fails instead of skipping when they are missing.
Dispose bridges and remove temporary files after success and failure.
This extends shipped return validation in #268 and pinned contracts in #269. Snapshots and raw bridge tests remain useful but do not replace this check.
Architectural approach:
Provide the isolated consumer setup for #344. Add the architecture proof cases without replacing this issue's package-install and runtime-validation checks. Coordinate through #345.
Required CI now packs npm, builds a Python wheel, installs both in temporary isolated environments, and checks import origins. The consumer generates, compiles, imports, and executes wrappers through NodeBridge. It checks valid calls, numeric boundaries, float16, selected wrong-return rejection, and cleanup. Missing prerequisites fail the job.
Evidence: test/isolated_consumer.conformance.ts, vitest.isolated-consumer.config.ts, and the required isolated-consumer CI job. The published-consumer check also verifies exact registry packages without a local fallback.
Verified release evidence:
Implementation #362 and release #354 merged after independent review, green checks, and resolved CodeRabbit findings. Final candidate 0861ebe and merge f6f811d have identical trees.
Final full CI passed, including check:all, scientific 103/103, clean consumer 20/20, real Pyodide/browser 8/8, performance 25/25, and Node/Python/Bun/OS checks. Performance budgets remained unchanged.
Fresh published-consumer run passed 20/20 checks with exact registry versions, isolated imports, and generated calls. It used no local-package fallback.
Activity
bbopen commentedon Sep 20, 2026
Required CI now packs npm, builds a Python wheel, installs both in temporary isolated environments, and checks import origins. The consumer generates, compiles, imports, and executes wrappers through NodeBridge. It checks valid calls, numeric boundaries, float16, selected wrong-return rejection, and cleanup. Missing prerequisites fail the job.
Evidence:
test/isolated_consumer.conformance.ts,vitest.isolated-consumer.config.ts, and the requiredisolated-consumerCI job. The published-consumer check also verifies exact registry packages without a local fallback.Verified release evidence:
0861ebeand mergef6f811dhave identical trees.The architecture decision records the accepted scope and prototype limits.
Closing with the implemented and verified 0.11 release outcome.