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
50 stars 19 forks source link

Inconsistency: Cversion attribute of components within a bundle is not allowed according to documentation (but allowed by schema and implementations) #274

Closed RobertRostohar closed 5 months ago

RobertRostohar commented 5 months ago

Is it allowed for components within a bundle to have different versions (Cversion)?

Would be expected and useful.

It seems to be allowed according to schema and seems to be supported by tools (RTE window in uVision).

But it is not allowed according to documentation:

I guess the documentation needs to be updated.

mdortel-stm commented 5 months ago

You're right, there seems to be an inconsistency. In the bundle version attribute description, we can read as well:

Note: components can redefine their version using the Cversion attribute of the component element.

jkrech commented 5 months ago

How about this:

A component bundle is a named set of components that must share identical attributes for Cvendor and Cclass by introducing the attribute Cbundle which becomes a mandatory part of the component ID. If Cvendor is not specified, the value is inherited from the pack level vendor element.

The attributes Cvendor, Cclass, Cbundle as well as Cversion are inherited by all component elements within a bundle section. Only the Cversion attribute can be redefined by a component element.

Components of the same Cclass belonging to a different Cbundle shall not be selected concurrently. In this way bundles ensure interoperability across multiple components and restrict the mix and match of components within a Cclass.