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

Reply via email to