Skip to content

docs: eNet is Implemented — in eos, not here - #1

Open
srpatcha wants to merge 1 commit into
masterfrom
docs/status-implemented-in-eos
Open

docs: eNet is Implemented — in eos, not here#1
srpatcha wants to merge 1 commit into
masterfrom
docs/status-implemented-in-eos

Conversation

@srpatcha

@srpatcha srpatcha commented Sep 1, 2026

Copy link
Copy Markdown
Member

This repository has three files: .gitignore, LICENSE, README.md. The README
said:

Status: Planned. There is no implementation in this repository yet.

The first sentence is now wrong. eNet is Implemented — 25 public functions in
eos/net/include/eos/net.h, a POSIX backend in net/src/net_posix.c, and
test_net passing in the eos suite. That is §28's definition: "feature exists
and is usable", evidenced by code and functional tests.

The second sentence stays true, and is the point: none of it is here, on purpose.

What changes

The status is corrected, so the README stops describing a subsystem that was
built three weeks ago as unstarted.

The rationale cites v2.0, which is sharper than the §24 line it replaces:

§10: Repositories should not be the dependency API.

§21.1: Do not create a separate repository merely to create a branded name. A
subsystem earns a separate repository when it has a stable interface,
independent release lifecycle, clear maintainers and multiple consumers.

It says what to do instead. The old text explained what not to do and left
the alternative implicit. Depend on eNet through a component manifest — that
format now exists (embeddedos-org/embeddedos-stack#20), and enet/wifi is its
worked example, chosen because this repository is empty.

It states the cost of getting the split wrong, because the platform is
already paying it: two independent Ed25519 implementations (eos, eBoot) and two
OTA implementations (eos, eos-health), each pair drifted — the same low-order-key
bypass in both Ed25519 copies, and eos-health's OTA calling a verification
function defined nowhere.

It names the four conditions under which this repository would earn code, so
that question has an answer instead of being re-argued.

Why not just put code here

Because §21.1's conditions are not met, and I checked each:

  • stable interfacenet.h is 0.x and still moving
  • independent release lifecycle — eNet ships when eos ships
  • distinct maintainers — none
  • multiple consumers as a component — needs the manifest format, which is
    itself only just proposed

Copying eos/net/ here would create a third instance of the duplication problem
described above, in a repository whose own README warns against it.

The README said "Status: Planned. There is no implementation yet." The first
half is now wrong. eNet has 25 public functions in eos/net/include/eos/net.h,
a POSIX backend in net/src/net_posix.c, and test_net passing in the eos
suite — which is §28's definition of Implemented: "feature exists and is
usable", evidenced by code and functional tests.

The second half stays true and is the point: none of it is in this
repository, deliberately.

Replaces the §24 citation with v2.0's two statements, which are sharper:

    §10: Repositories should not be the dependency API.

    §21.1: Do not create a separate repository merely to create a branded
    name. A subsystem earns a separate repository when it has a stable
    interface, independent release lifecycle, clear maintainers and multiple
    consumers.

Adds what the alternative actually is, which the old text left implicit:
depend on eNet through a component manifest. That format now exists —
embeddedos-org/embeddedos-stack#20 — and manifests/enet-wifi.yml is the
worked example, chosen precisely because this repository is empty.

Also states the cost of getting the split wrong, since the platform is
already paying it. Two independent Ed25519 implementations (eos, eBoot) and
two OTA implementations (eos, eos-health), and each pair has drifted: the
same low-order-key bypass in both Ed25519 copies, and eos-health's OTA
calling a verification function defined nowhere. Splitting code across
repositories before a component model exists is how that happens.

Finally, names the four conditions under which this repository would earn
code, so "when do we move it" has an answer rather than being a judgement
call each time it is raised.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant