zmkfirmware / zmkfirmware/zmk-cli
Add board/shield validation tools
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 20
- Forks
- 8
- PR merge metrics
- No merged PRs in 30d
Description
As discussed in #65, it may be useful to add a command that attempts to validate that a board or shield configuration is defined correctly to work with ZMK. I don't think it makes sense to try to build a full kconfig/devicetree linting system, but there are a few things that would be relatively simple to check and are easy errors to make.
Things we could check for boards and shields:
- Does the .zmk.yml file match the schema?
- If a board has a
default_revision, does a matching revision exist in its revisions list? - For every board/shield sibling, board variant, and board revision, do all of the non-optional kconfig and devicetree files exist?
- Are there any name collisions? (Often caused by copying a board/shield into your config and not renaming it.)
The validation command could support a list of .zmk.yml files to check or default to scanning all of them.
There are also a few things in the root build.yml file that we could validate as well, such as verifying that every board, shield, and snippet used in the build matrix exists. I'm not sure whether that should be part of the same command as checking boards/shields or a separate one if we were to do this though.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the existing command structure and the .zmk.yml files in the ZMK repository, then inspect the root build.yml matrix. Clarify whether the command covers board and shield checks only or also build-matrix references, and define which validation errors must be reported before implementation.】【。
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- cli, tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100