Closed
Description
Component(s)
No response
Describe the issue you're reporting
All components must have a status table describing their stability, supported pipeline types, available distributions and warnings (see #19172 for the latter). This is useful for end-users to understand how to use a component.
Currently, this table is on each component's README file which makes it difficult to ingest this information. I propose moving this table to a separate machine readable file so that
- we can validate its contents (e.g. validate presence of required fields, validate their values, in the future try to match the metadata with the actual code)
- it's easier to build automated tooling around it, for example to
- include status information on the component registry,
- help the community understand what components are available on contrib and what their capabilities are
- automatically validate OCB manifests (e.g. forbid components with a given warning or below a given stability level)
- in the future, help validate that a component can be added to the registry even if not living on contrib
We can still generate the README table from the machine-readable file by placing a comment marking the position of the table.
To kickstart this we would need to:
- Define a schema for the component's status table
- Create a tool to generate README table from the machine-readable file.
- Add status metadata to all components #21213
- Consider adding requirement to use metadata.yaml in new components #20908
Future work may include
- Validation of code against schema (e.g. supported pipeline types or stability)
- Adding information other than status to this file (e.g. description or statefulness)
Activity