Thank you for your interest in contributing to the Toob hardware registry. This document describes the process for submitting new chips, drivers, cryptographic backends, and other packages.
- Read the documentation. Familiarize yourself with the Toob-Boot architecture and the package manifest format.
- Check existing packages. Browse the repository to see the established patterns and quality standards.
- Open an issue first. For new chip support or major driver additions, open a GitHub Issue to discuss the design before writing code.
Every package lives in a category directory and contains a manifest file:
drivers/
flash/
my_new_driver/
driver_manifest.json ← required
flash.c ← implementation
flash.h ← optional header
name: Unique, lowercase, no spaces (e.g.my_spi_flash)version: SemVer string (e.g.1.0.0)author: Your GitHub username or organizationdescription: One-line summary of what the package provides
See existing manifests (e.g. drivers/flash/esp_rom_spi/driver_manifest.json) for reference.
Fork this repository and create a feature branch:
git checkout -b add-stm32f4-chipAdd your files in the correct category directory. Ensure your manifest validates against the registry schema.
If you have the Toob CLI installed, validate your changes locally:
toob registry validateOpen a pull request against the main branch. The CI pipeline will automatically:
- Lint your C code with
clang-tidy - Validate your manifest schema
- Run a dry-run compatibility check against affected chips
Your PR will be reviewed by the Toob core team. After approval:
dev— Your package is published in development stage (visible only to you).staging— After code review, the package enters the compatibility matrix test cycle.stable— Once all matrix tests pass, the package is promoted to stable and appears in the public registry index.
- NASA Power of 10 (P10) compliance is required for all safety-critical code (chips, crypto).
- No dynamic memory allocation in driver implementations.
- All functions must have bounded execution time.
- Comments should explain why, not what.
- Follow the coding style of existing packages in the same category.
- Never include private keys, tokens, or credentials in any file.
- Cryptographic code requires additional review by a core team member with crypto expertise.
- Packages with
chip_bindingrestrictions are validated against the declared chip list.
By contributing, you agree that your contributions will be licensed under the same license as this repository (see LICENSE).