cps-org / cps

Common Package Specification — A cross-tool mechanism for locating software dependencies
https://cps-org.github.io/cps/
Other
91 stars 8 forks source link

Location required for component type extensions? #52

Open tylerjw opened 3 months ago

tylerjw commented 3 months ago

From the spec on component.name.type:

If the type is not recognized by the parser,
the component shall be ignored.
(Parsers are permitted to support additional types
as a conforming extension.)

From the spec on component.name.location:

This attribute is required for |component|\ s
that are not of :string:`"interface"` :attribute:`type`.

Do you think this is an intentional interaction? I am working on adding tests to our parser. Maybe location should be required on a closed set of specific types instead of the open set excluding interface?

mwoehlke commented 3 months ago

I'm going to claim that the intended meaning is defined component types. That is, more generally, the specification says nothing about the other attributes of a non-defined component type.

If a wording change is desired, it probably makes more sense to clarify in the first quoted paragraph (i.e. at type).