Repository navigation
Add experimental Express and Hono support with opt-in Node runtime - #25
Merged
Merged
Conversation
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.
Adds experimental Express 5.3.0 and Hono 4.13.13 support through an opt-in Node runtime (
Engine::enableNode()/phasis --node). CommonJS loading and Node host APIs are implemented in PHP; JavaScript executes in Phasis, including JavaScript children launched throughprocess.execPath. The runtime covers buffers, streams, filesystem and process I/O, networking, TLS, compression, timers, async context and isolated VM realms. Includes the v0.9.0 changelog and runtime version metadata.Pinned upstream runners preserve original assertions, complete case inventories, upstream skips, source identities and bounded worker cleanup. Express/Hono runs explicitly use
--timeout-scale 10, recording original and effective test/hook deadlines. The default remains 1; application clocks, test262 deadlines and engine execution budgets are unchanged. Independent native Hono Vitest baselines retain their original limits. Support remains experimental while framework performance work is deferred.Validation of the release source b4624b7, with report-only commit a60d51b:
d53ebc8b1931d9f1541e43d59650776e4b766248.verify-all: 2,410 tests, 6,695 assertions, two existing skips, all 16 oracle scenarios, PHPStan and coding standards pass. Existing asynchronous diagnostics match the previous successful run.Complete local Hono validation passes: main has 4,158 passes and 37 upstream skips across all 122 files; alternate JSX DOM has 505 passes and three upstream skips; the Node adapter passes all 14 cases. Generated Node controls and independent native Vitest baselines also pass, including all five declaration/toolchain cases. Ordered case identities, assertion counts and original/effective deadlines match. A byte-for-byte comparison of all 357 normalized generated files and dependency resolutions proves that the default JSX profile's nine files and 508 cases are covered by the main run. No local Hono retries were needed. All owned test workers and listeners are reaped.
Framework CI reports complete passing Phasis cases. Its remaining failure is the generated Node control's timing-sensitive concurrent interval test. The complete local Phasis checks and local native controls pass. The merge relies on those results, as requested; framework CI is not rerun. v0.9.0 is published. Release and release-format workflows pass; the downloaded archive matches all 527 runtime files and 57 Node assets, and installed CLI, Node-mode and file-based child-process checks pass. Local main and the release tag point to merge commit
1408569, whose tree is identical to tested PR heada60d51b.