Move app-exporter to repo under gitlab-org namespace
We are looking to promote https://gitlab.com/mkaeppler/app-exporter to a proper GitLab-run project. To that end we should:
- Create a new home for the source code under the
gitlab-org
namespace - Make sure CI is set up and working and common standards apply (e.g. code linters, Danger etc.) We should exclude artifact publishing considerations at this point.
- Rename the project to
gitlab-metrics-exporter
. Since gitlab-exporter is already taken, and since this system is meant to replace it eventually, the new name is both explicit in what it accomplishes and does not clash with existing system names.
New repository location
https://gitlab.com/gitlab-org/gitlab-metrics-exporter
New project guidelines
https://about.gitlab.com/handbook/engineering/gitlab-repositories/
-
Read and familiarize yourself with our stance on Dogfooding. Be aware that as part of a product development organization that builds a tool for people like us, that our default is to add features and tooling to the GitLab project. This is still true when the effort to do so is 2-5x. Despite this, if you still feel you need to create a project outside of GitLab, you must follow this process to document the decision -
Decided to place directly under gitlab-org as per #355433 (comment 887236227). Please avoid creating projects directly at the top-level/root namespaces unless necessary (E.g. gitlab-org/NEW_PROJECT). Doing so creates context and permission inheritance complications. Ensure that the project is under a subgroup of: - gitlab-org for anything related to the application.
- gitlab-com for anything strictly company related.
-
Configure the project repository to use main as the name of the default branch. -
Add the project to the list of GitLab projects in projects.yml. -
Help AppSec categorizing your new project. -
Add a license to the repository. Contact #legal as to which license to add. A sample license is here: gitlab-org/gitlab MIT License, but contact legal before using it. -
Add a section titled "Developer Certificate of Origin and License" to CONTRIBUTING.md in the repository. It is easiest to simply copy-paste the gitlab-org/gitaly DCO + License section verbatim.1. Add any further relevant details to the Contribution Guide. See Contribution Example. -
Add a link to CONTRIBUTING.md from the project's README.md. -
Add a CODEOWNERS file, to make it easy for contributors to figure out which teams are best suited to review their changes. -
Broken out into gitlab-metrics-exporter#2 (closed). Use teams rather than individuals as owners, to make it self updating over time and resilient to people taking time off -
You can scope ownership to subdirectories or individual files, but it should contain at the very least a top-level catch all for any new or non explicitly mentionned file. -
When possible, projects should have the following Merge request settings enabled: - Merge Trains.
- Delete source branch after merge.
- Merge only if pipeline succeeds.
- Merge only when all threads are resolved.
-
When possible, projects should have the following Pipeline settings enabled: - Auto-cancel pending pipelines.
-
Projects should have Users can request access setting disabled to discourage granting accidental external access. -
If needed, make sure to set up a default CI/CD configuration. https://docs.gitlab.com/ee/development/go_guide/#go-standards-and-style-guidelines -
If your project contains code that is distributed with GitLab or is executed in production, set up security jobs for your project and add your project to the AppSec team's triage rotation. The AppSec will triage security findings from the Security Dashboard and create issues for vulnerabilities. -
Broken out into gitlab-metrics-exporter#1 (closed). If the project is part of work that is shipped to customers, add it to projects_part_of_product.csv by opening an MR to that file or following the process outlined by Engineering Productivity.
Edited by Matthias Käppler