Skip to content

Device type sets (@common, @extended) and RAFT_NO_NETWORKING, for raft new - #30

Merged
robdobsn merged 1 commit into
mainfrom
feature/raft-new-support
Oct 25, 2026
Merged

robdobsn merged 1 commit into
mainfrom
feature/raft-new-support

Conversation

@robdobsn

Copy link
Copy Markdown
Owner

Support for RaftCLI's new raft new questions (RaftCLI devdocs/raft-new-questions-and-defaults-review.md). Pairs with RaftSysMods (no networking), raftjs (sets) and RaftCLI PRs.

Device type sets

  • What: devtypes/sets/common.json (10 popular I2C sensors) and extended.json (25) are named selections of RaftCore's records.
  • Using one: "include": ["raftcore:@common"] (also in exclude, and in typeFile). A set's records are treated like raftcore:*, so a local copy still replaces one.
  • Rules: sets are only for the bundled source. An unknown set, or a set naming a record RaftCore doesn't have, is an error. A test checks that RaftCore's own sets name only real records.
  • Published: in the Pages catalogue.json (sets), so raftjs and the Device Types app can resolve them.
  • Vectors: shared selection vectors cover sets, for raftjs's TypeScript copy.

RAFT_NO_NETWORKING

  • What: a project-wide define, set by raft new in features.cmake when the app has no WiFi.
  • Change here: SysManager no longer uses networkSystem (hostname, the WiFi pause for BLE, and reboot-if-disconnected). With RaftSysMods' matching change, nothing references WiFi or IP code, so it isn't linked.
  • Measured on an ESP32-S3 with no BLE, web server or device types: 581,296 bytes, against 1,310,176 with WiFi. The WiFi, lwIP, wpa_supplicant and mDNS libraries are gone from the map. BLE only is 870,400.

Testing

  • scripts/tests: 100 pass. make -C linux_unit_tests check passes.
  • Apps generated by the new raft new and built against this branch: defaults, module N8R8 with no networking, FeatherS3 BLE only, ESP32-C6 WiFi. All build, with only the LittleFS warning.
  • Not yet run on a board.

🤖 Generated with Claude Code

… for raft new

- devtypes/sets/common.json (10 popular I2C sensors) and extended.json (25): named selections of RaftCore's
  records, chosen in DeviceTypeSources.json as "<bundled source>:@<set>" (include or exclude). Only for the bundled
  source; an unknown set or a set naming a missing record is an error. Published in the Pages catalogue.json; shared
  selection vectors cover them
- RAFT_NO_NETWORKING (a project-wide define, set by raft new without WiFi): SysManager no longer uses networkSystem
  (hostname, WiFi pause, reboot-if-disconnected), so a build without the networking SysMods links no WiFi or IP code
  (581 KB instead of 1.31 MB for a minimal ESP32-S3 app)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@robdobsn
robdobsn merged commit b693c5d into main Oct 25, 2026
1 check passed
@robdobsn
robdobsn deleted the feature/raft-new-support branch October 25, 2026 17:31
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