Open-CMSIS-Pack / Open-CMSIS-Pack-Spec

Common Microcontroller Software Interface Standard - Pack(age) based distribution system
https://open-cmsis-pack.github.io/Open-CMSIS-Pack-Spec/
Apache License 2.0
53 stars 21 forks source link

Organizing Cclass Taxonomy #263

Open ReinhardKeil opened 11 months ago

ReinhardKeil commented 11 months ago

Open-CMSIS-Pack should enable software re-use across software vendors and companies. To achieve this we need guidelines and this talks about the usage of Cclass/Cgroup.

Software components are defined with the element <component>. Application Programming Interfaces (API) are defined with the element <api>. Both use Cclass and Cgroup names to organize selectable components for software re-use.

Each Cclass and every selected Cclass/Cgroup should have one of the following modes that are validated by packchk.

An unexpected Cclass or Cgroup naming clash may result to incompatible operation of the Open-CMSIS-Pack system. Sometimes even established software packs become unusable or users get confused by way components are represented. It is therefore required to organize the Cclass/Cgroup taxonomy at the level of the Open-CMSIS-Pack project beyond the current information in the Open-CMSIS-Pack specification that is described under the element.

The implications (that should be verified by tools like packchk) of the different modes are:

Proposed steps:

ReinhardKeil commented 11 months ago

Related to #22

iomint commented 11 months ago

Reinhard, Can you explain the way you have define the list of "mode" you propose ? In particular I do not understand the rational of the "Device" mode and the consistency of a "bundle" mode vs some others e.g "open" mode is unclear to me. Furthermore, Device is already a Cclass to using it also as mode is confusing and in the same way "api" is also already an element.
For a better understanding of the mode idea, can you map the mode to the existing Cclass ? in your foreseen usage of mode is the mapping fixed or can it depends on the pack contents e.g for components with a Cclass 'graphics' can some be mapped on a mode 'bundle' and others on the mode 'controlled' or 'open' ? To my understanding the 'mode' is used to check if Cgroup can be added or not. Do you confirm ? Consequently, to my understanding of your proposal, Cclass list is fixed (limited to the existing list in Open-CMSIS-Pack spec) and enforced using Packchk. Any new Cclass addition will have to be approved by a CCB, Is it what you have in mind ?

ReinhardKeil commented 11 months ago

We have a better description here: https://github.com/Open-CMSIS-Pack/open-cmsis-pack-taxonomy

Also there is a start of the mapping in this file https://github.com/Open-CMSIS-Pack/Open-CMSIS-Pack-Taxonomy/blob/main/Open-CMSIS-Pack-Taxonomy.yaml

Any new Cclass addition will have to be approved by a CCB, Is it what you have in mind ? Yes, I think this is what is required to ensure compatibility.

I believe we need further work on the mode "Bundle". Let's see what feedback we can get here.