Run Expo serve-sim under EAS supervision - #4114
Conversation
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #4114 +/- ##
==========================================
- Coverage 62.27% 62.25% -0.02%
==========================================
Files 994 994
Lines 44735 44820 +85
Branches 9412 9425 +13
==========================================
+ Hits 27854 27897 +43
- Misses 15434 15474 +40
- Partials 1447 1449 +2 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
|
✅ Thank you for adding the changelog entry! |
| ]; | ||
| } | ||
|
|
||
| async function findAvailablePortAsync(): Promise<number> { |
There was a problem hiding this comment.
This is weird to me. Shouldn't serve-sim pick a port itself? Or, couldn't we just assign a well known port to serve-sim?
There was a problem hiding this comment.
serve-sim can choose/scan for a port, but EAS needs to know the selected port to poll /readyz and configure ngrok. I allocated one in EAS to avoid parsing serve-sim output. That said, since the runner is single-tenant and only starts one serve-sim instance, using a well-known port like 3200 is simpler. I can switch this to a constant.
Why
EAS Simulator currently launches the production-only
serve-sim-szdziedzicfork and depends on its private tunnel flags andTunnel:stdout format. The official@expo/serve-simpackage is now published, but it is not a safe drop-in until EAS owns the production concerns that do not belong in the OSS server.Coordinated serve-sim change: expo/serve-sim#36
That PR must merge and be published to npm's
latestdist-tag before this change is rolled out, because the currently published package must contain the readiness/encoder startup contract.How
@expo/serve-sim@latestinstead of using the personal fork or a hard-coded package version/readyzendpoint instead of scraping stdoutThis is intentionally split across repositories: serve-sim owns generic streaming/readiness primitives; EAS owns infrastructure, credentials, policy, versioning, and supervision.
Test Plan
yarn build— all 13 monorepo targets passed, including@expo/build-toolsyarn fmt:checkyarn lint— 0 errors (13 unrelated existing warnings)Rollout order
latestdist-tag contains the coordinated serve-sim changes.serve-sim-szdziedzic.