Create development guide for GitLab-maintained components
Problem
With the new CI/CD Catalog we want GitLab team members to contribute to it by creating components that will serve the GitLab community. GitLab-maintained component projects must follow specific guidelines, like we have for CI templates: https://docs.gitlab.com/ee/development/cicd/templates.html
Details
We need to specify:
- When to create a GitLab-maintained component project and when it's best not to. Typically we should be able to dogfood the components. Otherwise we should have domain experts and have a large number of users interested. If none of these conditions are met we should not create a GitLab-maintained component but instead let the community fulfil the demand.
- How ownership is defined.
- which team owns the project and they must be set as maintainers.
- Semantic versioning should be consistent across all GitLab components.
- https://docs.gitlab.com/ee/ci/components/index.html#best-practices must be followed.
- correct LICENSE.
- etc.
We also need to indicate:
- How GitLab will review such contributions.
- Stop creating CI templates (instance-level) which are maintained by GitLab: !137047 (comment 1670233622)
- Changes to existing CI templates need to be ported to components.
- Cross reference component projects from a comment in the CI templates.
We can build components to test that some of the documented requirements are met. E.g. the component will add a job that checks that a MIT LICENSE file is added.
Edited by Fabio Pitino