The GitHub Actions job "Required Checks" on texera.git/fix/local-dev-linux has succeeded. Run started by GitHub user Yicong-Huang (triggered by Yicong-Huang).
Head commit for run: b68bfe3a5e7e5354b4985d8529e07bd268c334f7 / Yicong Huang <[email protected]> feat(local-dev): support Linux `bin/local-dev.sh` was macOS-only in three places. It already carried some Linux support — `_find_jdk17` globs `/usr/lib/jvm/*`, SDKMAN and asdf are probed, the docker install hint has a `Linux:` line — but the platform probes underneath were not, and the first of them was fatal. `_detect_host_lan_ip` probed `route get default` and `ipconfig getifaddr en0..en10`. Neither exists on Linux — `route` is net-tools with different syntax, `ipconfig` is macOS/Windows, and the interfaces are `eth0`/`enp*` — so `_require_host_lan_ip` aborted every `up`/`auto` there. Split the probe per platform and add the iproute2 equivalent. The scan skips loopback and the interfaces that would defeat the purpose of this address: a container bridge (docker0, br-*, veth*) is reachable from the host but not from inside another container's netns, and an overlay/VPN address (tailscale, zerotier) is not reachable from the docker bridge at all. The FATAL now names the probes that actually ran instead of always blaming the macOS ones. `svc_artifact_mtime` used BSD `stat -f "%Sm" -t FMT`. GNU coreutils reads `-f` as "file system info" and the format strings as filenames, so it wrote a diagnostic to stderr, printed filesystem fields on stdout and exited 1 — `watch`'s ARTIFACT MTIME column rendered that. `_file_mtime_str` probes for the dialect rather than branching on `uname`, so GNU coreutils on macOS works too. `listen_pid_for_port` required lsof. It ships with macOS but is not a default package on Debian/Ubuntu/Fedora, and without it every native service read as stopped — `up` relaunched services that were already running and `down` silently no-opped. Falls back to `ss` from iproute2, which is essential on any modern Linux. Also in `_install_hint`: the docker line named `docker-compose-plugin`, which only exists in Docker's own apt repo rather than stock Ubuntu, and the node / yarn / bun cases had no Linux line at all. Documents the result in bin/local-dev/README.md: a per-platform table of which probe is used where, the Linux prerequisites (iproute2, docker + compose v2, the `docker` group re-login), and why a docker-bridge address is not a valid HOST_LAN_IP even though it looks like one. Closes #7065 Report URL: https://github.com/apache/texera/actions/runs/30498198673 With regards, GitHub Actions via GitBox
