Skip to content

refactor: take the thin-edge.io client from tiny-edge - #17

Merged
reubenmiller merged 2 commits into
mainfrom
refactor/move-tedge-to-tiny-edge
Nov 3, 2026
Merged

reubenmiller merged 2 commits into
mainfrom
refactor/move-tedge-to-tiny-edge

Conversation

@reubenmiller

@reubenmiller reubenmiller commented Nov 3, 2026 •

Copy link
Copy Markdown
Contributor

Summary

The thin-edge.io client (tedge-zephyr/) moves to its own repository, thin-edge/tiny-edge, with its history (thin-edge/tiny-edge#1). This repository becomes the example of applications built with it. tiny-edge is laid out as a portable core plus one port per RTOS, so it can later support FreeRTOS, ThreadX, QNX, and VxWorks.

Its board profiles (lib/common/tedge-boards/), the Smart Functions, the client's own DTM sets (zephyr_tedge, zephyr_tedge_remote_access), its OpenSpec specs and archived changes, and the tedge-zephyr CI workflow move with it.

Changes

  • west.yml adds tiny-edge as a west project at modules/lib/tiny-edge. West adds it as a Zephyr module, so the four apps no longer list it in ZEPHYR_EXTRA_MODULES.
  • release/devices.yml refers to the profiles as "{tiny-edge}/ports/zephyr/profiles/...". matrix.py resolves those paths with west list. Where west is missing (the release workflow's matrix job), it skips the existence check. package.py reads tiny-edge's VERSION the same way.
  • scripts/measure_tedge.sh, the READMEs, SCOPE.md, DEVICES.md, and the OpenSpec config point at tiny-edge.
  • cumulocity/ keeps the applications' DTM sets and points at tiny-edge for the Smart Functions.

Unchanged: Kconfig, the tedge_* API, every message a device sends, and the release JSON keys (tedgeZephyrVersion included).

For developers: run west update once to fetch tiny-edge. To work on the client and an app together, mount a tiny-edge clone over /ws/modules/lib/tiny-edge (README, "First-time workspace setup").

Testing

Four release images were built from main and from this branch against tiny-edge 48a42201 (now released as v0.1.0): tedge-agent-tedge-full-esp32c6-devkitc, modbus-server-tedge-ota-esp32-devkitc, snmp-agent-tedge-ota-esp32-cam, and opcua-server-tedge-ota-qtpy-esp32s3.

  • The sorted .config is identical for all four.
  • C6: every loadable section is identical.
  • Xtensa: no symbol changed size in the Modbus image. Two Zephyr networking functions in the OPC-UA image changed by 4 bytes each. .text changed by 16 B and 144 B, smaller in both. This comes from the new link order (west modules now link before the app's extra modules), not from the client.
  • The client's unit tests (native_sim) and the 29 Kconfig checks pass from tiny-edge.
  • The release-script unit tests pass (43), including a new test for {project}/ paths. matrix.py validates release/devices.yml with west.

Not flashed to hardware: the client's code compiles the same, and the only differences are link-order placement.

Release

west.yml pins tiny-edge v0.1.0, the first release from its own repository (thin-edge/tiny-edge#1, thin-edge/tiny-edge#2). Its code is the same as 48a42201, which the testing above used. The only differences are VERSION (0.0.2 → 0.1.0) and the new changelog.

🤖 Generated with Claude Code

reubenmiller and others added 2 commits November 3, 2026 15:50
The client (tedge-zephyr/) now lives in its own repository,
thin-edge/tiny-edge, with its history, board profiles, Smart Functions,
its own DTM sets and its specs. This repository becomes an example of
applications built with it.

- west.yml pins tiny-edge as a west project; west adds it as a Zephyr
  module, so the apps no longer list it in ZEPHYR_EXTRA_MODULES.
- release/devices.yml names tiny-edge's profiles as
  "{tiny-edge}/ports/zephyr/profiles/...", which matrix.py resolves with
  `west list`; package.py reads tiny-edge's VERSION the same way.
- The tedge-zephyr CI workflow moved to tiny-edge.

Kconfig, the tedge_* API, the release JSON keys and every message the
devices send are unchanged. Built against the pinned commit, the four
sample release images have identical sorted .config, and every symbol
has the same size; only link-order placement differs on Xtensa.

A workspace needs `west update` to fetch tiny-edge, and
paths under tedge-zephyr/ and lib/common/tedge-boards/ are gone.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@reubenmiller
reubenmiller merged commit a6c9fdc into main Nov 3, 2026
22 of 24 checks passed
@reubenmiller
reubenmiller deleted the refactor/move-tedge-to-tiny-edge branch November 3, 2026 07:07
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