Change project templates contribution flow
Everyone can contribute. Help move this issue forward while earning points, leveling up and collecting rewards.
Problems
-
The current process of adding/updating of project templates is complicated. It requires user to have a GDK installed and then to manually execute a list of commands. It's complicated and inefficient, which makes it difficult for the community to contribute.
-
The list of project templates is not in sync with a built-in list of templates for new projects.
Proposal
Currently, we create vendor archives to distribute the built-in templates. They should match what user sees in project-template group but it's often not the case.
To fix that we can reverse the contribution flow. The SSOT will be the project-templates group. Projects listed there will be automatically archived and distributed with the GitLab package.
For automation, we can build a bot similar to renovate-bot. The bot will:
- Get a list of projects from the project-template group.
- Detect changes between the template from project-template group and the vendored archive.
- Open a MR to gitlab-org/gitlab with new changes.
The new flow
User wants to create a new template
- The user creates a public template and requests a review from a GitLab team member
- The GitLab team member approves it and forks the project into
project-templates
group - The bot automatically detect the new project and opens a merge request to gitlab-org/gitlab.
- The GitLab team member verifies the merge request and merges it.
User wants to update the existing template
- The user opens a merge request for project from
project-templates
group - The GitLab team member reviews, approves and merges it.
- The bot automatically detect that the project was changed and opens a merge request to gitlab-org/gitlab.
- The GitLab team member verifies the merge request and merges it.