Skip to content

docs: make the quick start clone a repository that exists - #86

Merged
srpatcha merged 1 commit into
masterfrom
docs/quickstart-clones-a-real-repo
Sep 1, 2026
Merged

docs: make the quick start clone a repository that exists#86
srpatcha merged 1 commit into
masterfrom
docs/quickstart-clones-a-real-repo

Conversation

@srpatcha

Copy link
Copy Markdown
Member

Every quick start in the tree opens with:

git clone https://github.com/anthropic/EoS.git

That repository does not exist. gh api repos/anthropic/EoS → 404.

It is step one of the documented onboarding path in seven files: GETTING_STARTED.md, the host/stm32/rpi4/nrf52 quickstarts, the integration guide, and the STM32 tutorial. Any external developer following the docs stopped there.

§30's 12-month framework lists "tested quick start" among the 0–3 month Foundation deliverables. It was not tested, and could not have been.

Two further defects, only visible once the clone succeeds

The path doesn't exist either. The docs then cd EoS/eos/examples/blink-gpio, but cloning eos.git creates a directory called eos with examples/ at its root. EoS/eos/... belongs to a multi-repo workspace the single clone command never produces.

Fixed for the single-repo quick starts. Left alone for the guides that genuinely describe the multi-repo workspace — their paths are correct, and what they're missing is a step that sets the workspace up. That's a larger documentation question than this change, and I'd rather flag it than guess at it.

The toolchain file doesn't exist. They pass -DCMAKE_TOOLCHAIN_FILE=toolchains/arm-none-eabi.cmake. The real ARM toolchain files are arm-cortex-m4.cmake, arm-none-eabi-stm32f4.cmake and arm-none-eabi-r5.cmake. Pointed at arm-cortex-m4.cmake — the one the CI job and the Cortex-M reference class use.

Verification

Ran the host quick start verbatim against the published repo, from an empty directory:

$ git clone https://github.com/embeddedos-org/eos.git
$ cd eos/examples/blink-gpio
$ cmake -B build -DEOS_PRODUCT=iot
$ cmake --build build
$ ./build/blink-gpio
[blink] Starting LED blink on pin 13
[blink] LED ON
[blink] LED OFF

The example itself was always fine. Only the instructions were wrong.

Docs only — no source changes, so this is independent of #82 and can land on its own.

🤖 Generated with Claude Code

Every quick start in the tree opened with

    git clone https://github.com/anthropic/EoS.git

That repository does not exist — `gh api repos/anthropic/EoS` returns 404. It
is step one of the documented onboarding path in seven files: GETTING_STARTED,
the host/stm32/rpi4/nrf52 quickstarts, the integration guide and the STM32
tutorial. Any external developer following the docs stopped there.

The §30 12-month framework lists "tested quick start" among the 0–3 month
Foundation deliverables. It was not tested, and could not have been.

Two further defects behind the URL, both of which only surface once the clone
succeeds:

- The docs then `cd EoS/eos/examples/blink-gpio`, but cloning eos.git creates
  a directory called `eos` with `examples/` at its root. `EoS/eos/...` belongs
  to a multi-repo workspace that the single clone command never produces. The
  single-repo quick starts now use the path the clone actually creates. The
  guides that genuinely describe the multi-repo workspace are left alone —
  their paths are right, and what they are missing is a step that sets the
  workspace up, which is a larger documentation question than this change.

- They pass -DCMAKE_TOOLCHAIN_FILE=toolchains/arm-none-eabi.cmake, which does
  not exist. The ARM toolchain files are arm-cortex-m4.cmake,
  arm-none-eabi-stm32f4.cmake and arm-none-eabi-r5.cmake. Pointed at
  arm-cortex-m4.cmake, which is the one the CI job and the Cortex-M reference
  class use.

Verified by running the host quick start verbatim against the published repo,
from an empty directory:

    git clone https://github.com/embeddedos-org/eos.git
    cd eos/examples/blink-gpio
    cmake -B build -DEOS_PRODUCT=iot
    cmake --build build
    ./build/blink-gpio
    [blink] Starting LED blink on pin 13
    [blink] LED ON

The example itself was always fine. Only the instructions were wrong.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@srpatcha
srpatcha merged commit 1a0e069 into master Sep 1, 2026
25 of 32 checks passed
@srpatcha
srpatcha deleted the docs/quickstart-clones-a-real-repo branch September 1, 2026 10:36
Kartikey1306 added a commit to Kartikey1306/eos that referenced this pull request Sep 4, 2026
The pin in the previous commit stops an eBoot or ebuild master that does not
compile from turning every eos pull request red. It also stops that break
being visible from here at all, which on its own is the worse half of the
trade: the next upstream breakage would be silent instead of loud, and the
pin would sit at a172a6d indefinitely because nothing would ever ask -- while
quietly dropping the six eBoot commits that follow it.

`.github/workflows/upstream-drift.yml` is the other half. It builds eBoot at
master and compares both pins against their master, so an upstream break
still surfaces, on a run that blocks no pull request and names the repository
responsible.

Design choices, each one avoiding a defect this repo has been filing against:

  Its own file, schedule + workflow_dispatch only. The first draft was a job
  inside eos-simulation.yml guarded by `if: github.event_name == 'schedule'`.
  That works, but the run showed it on the PR as a SKIPPED check -- and a
  required-check gate that treats any non-success as a failure, which is the
  design in embeddedos-org#121, would trip on exactly that. Moving it out removes the check
  from PR runs entirely rather than relying on every future gate to exempt it.

  Not `continue-on-error`. A job reporting success over a failure is the
  fail-open shape we keep finding in aggregating gates. This one may fail
  honestly precisely because it gates nothing.

  Failing is reserved for "upstream does not build". A pin merely behind a
  healthy master is a warning: actionable, not broken.

  The pins are read out of eos-simulation.yml, not copied. A second copy of a
  SHA is a second thing to forget. The read demands a 40-character hex value
  and fails closed if it cannot find one, so a renamed or reformatted key
  stops the job instead of silently letting it check a pin of "".

  The failure message is scoped to the build step's own outcome, so a
  checkout, apt or pin-read failure cannot report itself as evidence about
  eBoot's master. The summary says eBoot is built and ebuild is only
  compared, rather than implying both were checked.

Verified by execution, not by reading:

  eBoot @ a172a6d (the pin)   host build rc=0, 0 errors
  eBoot @ 22d8f8b (master)    host build rc=2, "no member named 'reserved'
                              in 'eos_image_header_t'" at eos_image.h:135
                              and :142 -- the same defect CI reports, so the
                              pin is demonstrably the difference

  pin extraction, run against the real file and two mutations of it:
    real workflow                -> both SHAs read correctly, and the eBoot
                                    one resolves to embeddedos-org#86's merge
    key renamed to EBOOT_SHA     -> fails closed, rc=1
    value unquoted and shortened -> fails closed, rc=1

  drift logic, run against the real repositories:
    pin 6 behind healthy master  -> "behind by 6" warning, no failure
    pin absent from master       -> "not an ancestor" warning, exit 0 under
                                    set -e (the first draft printed "pinned
                                    pin not found on master commit(s)")
    pin equal to master          -> no warning

  eos on this branch: cmake build rc=0, ctest 39/39, pytest 15/15 with the
  new workflow file present, test_crypto_ed25519_loworder registered and
  passing.

When eBoot embeddedos-org#94 lands, bump EBOOT_COMMIT to that merge; this job is what will
say whether it holds.

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