From 99feb57767f4aac30dfd20c7a77ef25ac74bde1f Mon Sep 17 00:00:00 2001 From: "russell@unturf.com" Date: Tue, 16 Jun 2026 11:00:14 -0400 Subject: [PATCH] roadmap: mark phase 2 done --- docs/ROADMAP.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/ROADMAP.md b/docs/ROADMAP.md index d7db4f6..fa99f5e 100644 --- a/docs/ROADMAP.md +++ b/docs/ROADMAP.md @@ -19,16 +19,16 @@ Phases below are sized to land as discrete commits. Each phase ends with - Round-trip tests for the encoder - Generator script committed at `docs/etf_vectors.erl` -## Phase 2 — EPMD client +## Phase 2 — EPMD client ✅ EPMD (Erlang Port Mapper Daemon) maps node names to TCP ports. -Tiny synchronous TCP client. -- Connect `epmd_host:4369` (configurable) -- `PORT_PLEASE2_REQ` (113) → port + dist version range -- Return `EpmdNodeInfo(port, lo_ver, hi_ver, node_type, proto)` -- Tests: live EPMD on localhost (skip if not running), unit tests - against a recorded byte stream +- Synchronous TCP client +- `PORT_PLEASE2_REQ` (122) → `EpmdInfo(name, port, node_type, protocol, hi_ver, lo_ver, extra)` +- Returns `None` cleanly on unregistered node, raises `EpmdError` on + socket failures +- Tests: recorded byte streams from real EPMD + live integration that + spawns its own `erl -sname` and tears it down ## Phase 3 — Distribution handshake