expo-devbox 0.2.1 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -70,14 +70,14 @@ Several sessions in one directory help when two agents share a checkout. Each se
70
70
 
71
71
  ## On the worker
72
72
 
73
- After each change, run `expo-devbox sync`, then run these with `expo-devbox ssh '<command>'`. The `DEVBOX_*` variables are set in every SSH session. After the worker's first build, an incremental build takes a few seconds.
73
+ After each change, run `expo-devbox sync`, then the commands the change needs with `expo-devbox ssh '<command>'`. A JavaScript change needs none: Metro sends it to the running app. A native change needs a build, then install and launch. The rest are for checking the result. The `DEVBOX_*` variables are set in every SSH session. After the worker's first build, an incremental build takes a few seconds.
74
74
 
75
75
  ```sh
76
- # Build. Prints errors with file and line, then ** BUILD SUCCEEDED ** or ** BUILD FAILED **, and exits
76
+ # Build, after a native change. Prints errors with file and line, then ** BUILD SUCCEEDED ** or ** BUILD FAILED **, and exits
77
77
  # non-zero on failure. The full log is ~/.devbox/build.log.
78
78
  set -o pipefail; xcodebuild -workspace "$DEVBOX_WORKSPACE" -scheme "$DEVBOX_SCHEME" -configuration Debug -destination "id=$DEVBOX_SIMULATOR" -derivedDataPath "$DEVBOX_DERIVED_DATA" build 2>&1 | tee ~/.devbox/build.log | grep -E ": (fatal )?error:|\*\* BUILD" | sort -u
79
79
 
80
- # Install and launch the app on the simulator.
80
+ # After a build, install and launch the app on the simulator.
81
81
  xcrun simctl install booted "$DEVBOX_APP" && xcrun simctl launch --terminate-running-process booted "$DEVBOX_BUNDLE_ID"
82
82
 
83
83
  # JavaScript console output and errors (Metro).
@@ -132,7 +132,7 @@ When the user asks for it:
132
132
 
133
133
  1. Run `bunx expo-devbox help` and follow its "On the worker" section. It has the command for each step: build, install and launch, logs, crash reports and screenshots.
134
134
  2. Start a session with `bunx expo-devbox start`. It returns when the worker is ready, and EAS macOS minutes are billed until the session ends.
135
- 3. After each change, run `bunx expo-devbox sync`, then the commands from the help with `bunx expo-devbox ssh '<command>'`.
135
+ 3. After each change, run `bunx expo-devbox sync`, then the commands from the help that the change needs, with `bunx expo-devbox ssh '<command>'`.
136
136
  4. Commands use the session you started last in this directory. If another agent works in the same directory, pass your session's ID, which `start` prints, to every command: `bunx expo-devbox ssh --session <id> '<command>'`.
137
137
  5. When the user is done with the devbox, run `bunx expo-devbox stop`.
138
138
  ```
@@ -153,8 +153,7 @@ The workflow runs one custom job on `macos-large` in the `development` environme
153
153
 
154
154
  `sync` sends what git would track. Patterns from `.gitignore` are excluded, so local secrets such as `.env.local` stay local and files that the worker generated are not deleted. `.gitignore` lines that start with `!` are not supported.
155
155
 
156
- > [!NOTE]
157
- > SSH support for EAS Workflows is coming soon (`eas workflow:run --ssh` and `eas workflow:ssh`). It will cover about half of what this tool does: the SSH server, the Cloudflare tunnel, finding the worker, and ending idle sessions (steps 1 and 2, and the idle shutdown in step 4). The other half stays: preparing the worker, syncing your files safely, the variables and commands for building and running the app, and the instructions for coding agents. When workflow SSH ships, `expo-devbox` will use it.
156
+ **Coming soon:** SSH support for EAS Workflows (`eas workflow:run --ssh` and `eas workflow:ssh`). It will cover about half of what this tool does: the SSH server, the Cloudflare tunnel, finding the worker, and ending idle sessions (steps 1 and 2, and the idle shutdown in step 4). The other half stays: preparing the worker, syncing your files safely, the variables and commands for building and running the app, and the instructions for coding agents. When workflow SSH ships, `expo-devbox` will use it.
158
157
 
159
158
  </details>
160
159
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "expo-devbox",
3
- "version": "0.2.1",
3
+ "version": "0.2.2",
4
4
  "description": "Build and test an Expo app's native iOS code on an EAS macOS worker, from your terminal or a coding agent.",
5
5
  "type": "module",
6
6
  "bin": {
package/src/cli.ts CHANGED
@@ -27,14 +27,16 @@ Sessions:
27
27
  EXPO_DEVBOX_SESSION=<id>. Any unique prefix of an ID works; expo-devbox sessions lists them.
28
28
 
29
29
  On the worker:
30
- After each change, run expo-devbox sync, then the commands below with expo-devbox ssh '<command>'.
30
+ After each change, run expo-devbox sync, then the commands below that the change needs with
31
+ expo-devbox ssh '<command>'. A JavaScript change needs none: Metro sends it to the running app.
32
+ A native change needs a build, then install and launch. The rest are for checking the result.
31
33
  The DEVBOX_* variables are set in every SSH session.
32
34
 
33
- Build. Prints errors with file and line, then ** BUILD SUCCEEDED ** or ** BUILD FAILED **.
34
- The full log is ~/.devbox/build.log.
35
+ Build, after a native change. Prints errors with file and line, then ** BUILD SUCCEEDED ** or
36
+ ** BUILD FAILED **. The full log is ~/.devbox/build.log.
35
37
  set -o pipefail; xcodebuild -workspace "$DEVBOX_WORKSPACE" -scheme "$DEVBOX_SCHEME" -configuration Debug -destination "id=$DEVBOX_SIMULATOR" -derivedDataPath "$DEVBOX_DERIVED_DATA" build 2>&1 | tee ~/.devbox/build.log | grep -E ": (fatal )?error:|\\*\\* BUILD" | sort -u
36
38
 
37
- Install and launch the app on the simulator:
39
+ After a build, install and launch the app on the simulator:
38
40
  xcrun simctl install booted "$DEVBOX_APP" && xcrun simctl launch --terminate-running-process booted "$DEVBOX_BUNDLE_ID"
39
41
 
40
42
  JavaScript console output and errors (Metro):
package/src/init.ts CHANGED
@@ -14,7 +14,7 @@ When the user asks for it:
14
14
 
15
15
  1. Run \`bunx expo-devbox help\` and follow its "On the worker" section. It has the command for each step: build, install and launch, logs, crash reports and screenshots.
16
16
  2. Start a session with \`bunx expo-devbox start\`. It returns when the worker is ready, and EAS macOS minutes are billed until the session ends.
17
- 3. After each change, run \`bunx expo-devbox sync\`, then the commands from the help with \`bunx expo-devbox ssh '<command>'\`.
17
+ 3. After each change, run \`bunx expo-devbox sync\`, then the commands from the help that the change needs, with \`bunx expo-devbox ssh '<command>'\`.
18
18
  4. Commands use the session you started last in this directory. If another agent works in the same directory, pass your session's ID, which \`start\` prints, to every command: \`bunx expo-devbox ssh --session <id> '<command>'\`.
19
19
  5. When the user is done with the devbox, run \`bunx expo-devbox stop\`.
20
20
  `;