Replies: 6 comments 5 replies
-
I like the general idea, would be good to flush out a bit of the logic that twister would need to implement around use of this board classifier field. |
Beta Was this translation helpful? Give feedback.
-
Definitely an improvement. We're already doing something similar on our bench (by generating list of dev boards at each run) |
Beta Was this translation helpful? Give feedback.
-
It seems to me that emulation vs. real is independent of the other values. What is the distinction between Product vs Hobbyist/Maker? |
Beta Was this translation helpful? Give feedback.
-
I like this idea. As I understand the goal of such differentiation is to provide better scope (improved transparency and traceability), therefore QA, for on-target testing by introducing more descriptive "hierarchy" for platforms available in zephyr. E.g. there are ~27 nrf platforms defined in https://github.com/zephyrproject-rtos/zephyr/tree/main/boards/arm. However, they have different values from the testing perspective. My thoughts for the proposed naming and definition in such context:
From my point of view, having in mind discussions during the testing wg meetings, it is important to first define the "functional differentiation", which will be used to give a "tier" for a platform. I propose to evaluate boards in three categories:
In my opinion, the difference between "reference" and "maker" boards is not precise enough for our purpose. I think boards like "reel_board" and "bbc_microbit" could end up in the same "top tier" category (I think "reference" is a good name) as e.g major dks from Intel or Nordic but it would require major contributors taking them under their hood, running regular hw tests on them and publishing the results (which is already the case for "reel_board"). |
Beta Was this translation helpful? Give feedback.
-
@carlescufi I think you might be interested in this discussion. |
Beta Was this translation helpful? Give feedback.
-
There seem to be two different concerns here, which don't overlap completely:
I fully support the goals of
However, I think that as a user, I don't care about that so much. As a user, I want to know which boards are supported and actively maintained by Zephyr. I have seen several users ask "what is a good board to get started with Zephyr"? The answer to this doesn't have to be a "reference" board sold by the SoC vendor -- in fact, a "hobbyist and maker" board which is maintained by an active company may be better supported, if the maintainer is active on Discord, etc. I think it would be good if this proposal can untangle these separate concerns. |
Beta Was this translation helpful? Give feedback.
-
Abstract
Add new board class property for boards (in their yaml file) which signifies the class of those platforms or boards. For example we could have the following classes:
Using this classification we should be able to cover majority of testing with the baseline boards (Reference Boards) and limit testing and building for derivatives to only the additional features not covered by the reference boards.
For example a maker board or a product based on
STM32F769I
(note: randomly selected) from ST Micro will be covered for the most part by thestm32f769i_disco
boards available in Zephyr. If a product or a derivative of this board is available for example with Wifi, only the Wifi functionality is tested and verified on the derivative and we will not try to build every single available test or sample with the derivative.Why?
To allow for better test coverage and improve targeted testing in CI and to avoid duplication and time consuming unnecessary builds both in CI activity related to PRs and nightly builds
How?
Add class to the board yaml file and enhance twister to do the needed filtering. We can select a few general tests or samples that would have to run on any class as a way to make sure the basic board integration is correct.
Beta Was this translation helpful? Give feedback.
All reactions