Commit 0802470b authored by Alex Kalderimis's avatar Alex Kalderimis
Browse files

Update references to the team.yml file

Introduces a new documentation page explaining what this all is, and
links to this file in a number of relevant places.
parent 43e37daa
......@@ -4,7 +4,8 @@ GDK = GitLab Development Kit
 
1. [ ] Read the [code review page in the handbook](https://about.gitlab.com/handbook/engineering/workflow/code-review/) and the [code review guidelines](https://docs.gitlab.com/ee/development/code_review.html).
2. [ ] Understand [how to become a maintainer](https://about.gitlab.com/handbook/engineering/workflow/code-review/#how-to-become-a-maintainer)
3. [ ] Add yourself as a [trainee maintainer](https://about.gitlab.com/handbook/engineering/workflow/code-review/#trainee-maintainer) on the [team page](https://gitlab.com/gitlab-com/www-gitlab-com/blob/master/data/team.yml).
3. [ ] Add yourself as a [trainee maintainer](https://about.gitlab.com/handbook/engineering/workflow/code-review/#trainee-maintainer)
in the [team database](https://gitlab.com/gitlab-com/www-gitlab-com/blob/master/doc/team_database.md).
 
## Working towards becoming a maintainer
 
......@@ -40,6 +41,6 @@ maintainer responsibilities, any maintainer can take the next step. The trainee
should also feel free to discuss their progress with their manager or any
maintainer at any time.
 
1. [ ] Create a merge request for [team page](https://gitlab.com/gitlab-com/www-gitlab-com/blob/master/data/team.yml) proposing yourself as a maintainer.
1. [ ] Create a merge request updating [your team member entry](https://gitlab.com/gitlab-com/www-gitlab-com/blob/master/doc/team_database.md) proposing yourself as a maintainer.
2. [ ] Create a merge request for [CODEOWNERS](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/.gitlab/CODEOWNERS), adding yourself accordingly, and ask a maintainer to review it.
3. [ ] Keep reviewing, start merging :metal:
......@@ -13,7 +13,8 @@
 
1. [ ] Read the [code review page in the handbook](https://about.gitlab.com/handbook/engineering/workflow/code-review/) and the [code review guidelines](https://docs.gitlab.com/ee/development/code_review.html).
2. [ ] Understand [how to become a maintainer](https://about.gitlab.com/handbook/engineering/workflow/code-review/#how-to-become-a-maintainer)
3. [ ] Add yourself as a [trainee maintainer](https://about.gitlab.com/handbook/engineering/workflow/code-review/#trainee-maintainer) on the [team page](https://gitlab.com/gitlab-com/www-gitlab-com/blob/master/data/team.yml).
3. [ ] Create a merge request updating [your team member entry](https://gitlab.com/gitlab-com/www-gitlab-com/blob/master/doc/team_database.md)
adding yourself as a [trainee maintainer](https://about.gitlab.com/handbook/engineering/workflow/code-review/#trainee-maintainer)
4. [ ] Ask your manager to set up a check in on this issue every six weeks or so.
5. [ ] _Optional:_ [Consider finding a mentor](https://about.gitlab.com/handbook/engineering/workflow/code-review/#trainee-maintainer-mentorship-pilot-program) to help you become a maintainer.
 
......@@ -90,7 +91,7 @@ for the relevant application.
Remember that even when you are a maintainer, you can still request help from other maintainers if you come across an MR
that you feel is too complex or requires a second opinion.
 
1. [ ] Create a merge request for [team page](https://gitlab.com/gitlab-com/www-gitlab-com/blob/master/data/team.yml) using [the template](https://gitlab.com/gitlab-com/www-gitlab-com/blob/master/.gitlab/merge_request_templates/Backend%20maintainer.md) proposing yourself as a maintainer for the relevant application, assigned to your manager.
1. [ ] Create a merge request updating [your team member entry](https://gitlab.com/gitlab-com/www-gitlab-com/blob/master/doc/team_database.md) using [the template](https://gitlab.com/gitlab-com/www-gitlab-com/blob/master/.gitlab/merge_request_templates/Backend%20maintainer.md) proposing yourself as a maintainer for the relevant application, assigned to your manager.
2. [ ] Keep reviewing, start merging :metal:
 
/label ~"trainee maintainer" ~backend
......@@ -7,7 +7,8 @@
1. [ ] Read the [code review page in the handbook](https://about.gitlab.com/handbook/engineering/workflow/code-review/) and the [code review guidelines](https://docs.gitlab.com/ee/development/code_review.html).
2. [ ] Understand [how to become a maintainer](https://about.gitlab.com/handbook/engineering/workflow/code-review/#how-to-become-a-maintainer)
3. [ ] Read over our [Development Guide for GitLab CI/CD Templates](https://docs.gitlab.com/ee/development/cicd/templates.html)
4. [ ] Add yourself as a [trainee maintainer](https://about.gitlab.com/handbook/engineering/workflow/code-review/#trainee-maintainer) on the [team page](https://gitlab.com/gitlab-com/www-gitlab-com/blob/master/data/team.yml).
1. [ ] Create a merge request updating [your team member entry](https://gitlab.com/gitlab-com/www-gitlab-com/blob/master/doc/team_database.md)
adding yourself as a [trainee maintainer](https://about.gitlab.com/handbook/engineering/workflow/code-review/#trainee-maintainer).
 
## Working towards becoming a maintainer
 
......@@ -43,7 +44,7 @@ maintainer responsibilities, any maintainer can take the next step. The trainee
should also feel free to discuss their progress with their manager or any
maintainer at any time.
 
1. [ ] Create a merge request for [team page](https://gitlab.com/gitlab-com/www-gitlab-com/blob/master/data/team.yml) proposing yourself as a maintainer.
1. [ ] Create a merge request updating [your team member entry](https://gitlab.com/gitlab-com/www-gitlab-com/blob/master/doc/team_database.md) proposing yourself as a maintainer.
2. [ ] Create a merge request for [CODEOWNERS](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/.gitlab/CODEOWNERS), adding yourself accordingly, and ask a maintainer to review it.
3. [ ] Keep reviewing, start merging :metal:
3. [ ] Keep reviewing, and helping with merge requests! :tada:
......
......@@ -12,8 +12,10 @@ below to complete your setup.
- [ ] Read [Understanding EXPLAIN plans](https://docs.gitlab.com/ee/development/understanding_explain_plans.html)
- [ ] Get yourself added to [`@gl-database`](https://gitlab.com/groups/gl-database/-/group_members) group and respond to @-mentions to the group (reach out to any maintainer on the group to get added). You will get TODOs on gitlab.com for group mentions.
- [ ] Make sure you have proper access to at least an archive replica in production and a read-only replica in staging and production
- [ ] Indicate in `data/team.yml` your role as a database reviewer ([example MR](https://gitlab.com/gitlab-com/www-gitlab-com/merge_requests/19600/diffs)). Assign MR to your manager for merge.
- [ ] Once you are comfortable as a reviewer add `trainee_maintainer database` to your role in `data/team.yml`. Trainee maintainers count as reviewers and are [three times as likely to be picked as other reviewers](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/development/code_review.md#reviewer-roulette)
- [ ] Indicate in [your team member entry](https://gitlab.com/gitlab-com/www-gitlab-com/blob/master/doc/team_database.md) your role as a database reviewer ([example MR](https://gitlab.com/gitlab-com/www-gitlab-com/merge_requests/19600/diffs)). Assign MR to your manager for merge.
- [ ] Once you are comfortable as a reviewer add `trainee_maintainer database` to your role
in [your team member entry](https://gitlab.com/gitlab-com/www-gitlab-com/blob/master/doc/team_database.md).
Trainee maintainers count as reviewers and are [three times as likely to be picked as other reviewers](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/development/code_review.md#reviewer-roulette)
- [ ] Send one MR to improve the [review documentation](https://docs.gitlab.com/ee/development/database_review.html)
 
Note that *approving and accepting* merge requests is *restricted* to
......@@ -64,7 +66,8 @@ maintainer responsibilities, any maintainer can take the next step. The trainee
should also feel free to discuss their progress with their manager or any
maintainer at any time.
 
1. [ ] Create a merge request for [team page](https://gitlab.com/gitlab-com/www-gitlab-com/blob/master/data/team.yml) proposing yourself as a database maintainer.
1. [ ] Create a merge request updating [your team member entry](https://gitlab.com/gitlab-com/www-gitlab-com/blob/master/doc/team_database.md)
proposing yourself as a database maintainer.
2. [ ] Get yourself added to [`@gitlab-org/maintainers/database` group](https://gitlab.com/gitlab-org/maintainers/database) (this group is recognized in [CODEOWNERS](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/.gitlab/CODEOWNERS)). Reach out to any existing maintainer.
3. [ ] Keep reviewing, start merging :metal:
 
......
......@@ -11,8 +11,8 @@ Before nominating yourself as a trainee, talk with your manager and team about i
([`design.gitlab.com`](https://gitlab.com/gitlab-org/gitlab-design), [`gitlab-svgs`](https://gitlab.com/gitlab-org/gitlab-svgs)).
1. [ ] Read the [design review page in the handbook](https://about.gitlab.com/handbook/engineering/ux/pajamas-design-system/design-review).
1. [ ] Understand [how to become a maintainer](https://about.gitlab.com/handbook/engineering/ux/pajamas-design-system/design-review/#maintainer)
and add yourself as a [trainee maintainer](https://about.gitlab.com/handbook/engineering/ux/pajamas-design-system/design-review/#trainee-maintainer)
on the [team page](https://gitlab.com/gitlab-com/www-gitlab-com/blob/master/data/team.yml). Use the format under `projects`:
and add yourself as a [trainee maintainer](https://about.gitlab.com/handbook/engineering/ux/pajamas-design-system/design-review/#trainee-maintainer)
in the [team database](https://gitlab.com/gitlab-com/www-gitlab-com/blob/master/doc/team_database.md). Use the format under `projects`:
1. [ ] `design.gitlab.com: trainee_maintainer UX`
1. [ ] `gitlab-svgs: trainee_maintainer UX`
1. [ ] Mention a [design maintainer of the project you chose](https://about.gitlab.com/handbook/engineering/projects/) to become your Support Maintainer during the traineeship.
......@@ -73,9 +73,7 @@ responsibilities, any maintainer can take the next step. The trainee should also
feel free to discuss their progress with their manager or any maintainer at any
time.
 
1. [ ] Create a merge request for [team page](https://gitlab.com/gitlab-com/www-gitlab-com/blob/master/data/team.yml)
proposing yourself as a maintainer for the chosen project. Use the format under
`projects`:
1. [ ] Create a merge request updating [your team member entry](https://gitlab.com/gitlab-com/www-gitlab-com/blob/master/doc/team_database.md) proposing yourself as a maintainer for the chosen project. Use the format under `projects`:
1. [ ] `design.gitlab.com: maintainer UX`
1. [ ] `gitlab-svgs: maintainer UX`
1. [ ] Create a merge request for CODEOWNERS of [`design.gitlab.com`](https://gitlab.com/gitlab-org/gitlab-services/design.gitlab.com)
......
......@@ -9,7 +9,7 @@
## Basic setup
 
1. [ ] Read the [code review page in the handbook](https://about.gitlab.com/handbook/engineering/workflow/code-review/) and the [code review guidelines](https://docs.gitlab.com/ee/development/code_review.html).
2. [ ] Understand [how to become a maintainer](https://about.gitlab.com/handbook/engineering/workflow/code-review/#how-to-become-a-maintainer) and add yourself as a [trainee maintainer](https://about.gitlab.com/handbook/engineering/workflow/code-review/#trainee-maintainer) on the [team page](https://gitlab.com/gitlab-com/www-gitlab-com/blob/master/data/team.yml).
2. [ ] Understand [how to become a maintainer](https://about.gitlab.com/handbook/engineering/workflow/code-review/#how-to-become-a-maintainer) and add yourself as a [trainee maintainer](https://about.gitlab.com/handbook/engineering/workflow/code-review/#trainee-maintainer) in the [team database](https://gitlab.com/gitlab-com/www-gitlab-com/blob/master/doc/team_database.md).
 
## Working towards becoming a maintainer
 
......@@ -71,7 +71,7 @@ maintainer responsibilities, any maintainer can take the next step. The trainee
should also feel free to discuss their progress with their manager or any
maintainer at any time.
 
1. [ ] Create a merge request for [team page](https://gitlab.com/gitlab-com/www-gitlab-com/blob/master/data/team.yml) proposing yourself as a maintainer.
1. [ ] Create a merge request updating [your team member entry](https://gitlab.com/gitlab-com/www-gitlab-com/blob/master/doc/team_database.md) proposing yourself as a maintainer.
2. [ ] Keep reviewing, start merging :metal:
 
/label ~"trainee maintainer" ~Frontend
......@@ -10,7 +10,7 @@
1. [ ] The requirements for each project is different, please make sure to read the
[maintainer section in the Quality handbook](https://about.gitlab.com/handbook/engineering/quality/project-management/#reviewers-and-maintainers).
1. [ ] Add yourself as a [trainee maintainer](https://about.gitlab.com/handbook/engineering/workflow/code-review/#trainee-maintainer)
on the [team page](https://gitlab.com/gitlab-com/www-gitlab-com/blob/master/data/team.yml).
in the [team database](https://gitlab.com/gitlab-com/www-gitlab-com/blob/master/doc/team_database.md).
1. [ ] Mention your manager in this issue for awareness.
 
## Working towards becoming a maintainer
......@@ -68,7 +68,7 @@ increment that is right for you.
The trainee should also feel free to discuss their progress with their manager
or any maintainer at any time.
 
1. [ ] Create a merge request for [team page](https://gitlab.com/gitlab-com/www-gitlab-com/blob/master/data/team.yml)
1. [ ] Create a merge request updating your [team member entry](https://gitlab.com/gitlab-com/www-gitlab-com/blob/master/doc/team_database.md)
proposing yourself as a quality maintainer for the chosen project.
1. [ ] Keep reviewing, start merging 😃
 
......
/label ~backend ~"trainee maintainer"
 
<!-- Congratulations! Fill out the following MR when you feel you are ready to become -->
<!-- a backend maintainer! This MR should contain updates to `data/team.yml` -->
<!-- a backend maintainer! This MR should contain updates to a file in `data/team.yml` -->
<!-- declaring yourself as a maintainer of the relevant application -->
 
Trainee maintainer issue: <!-- Link to the trainee issue -->
......
......@@ -8,25 +8,26 @@ Access to the BambooHR API requires an API token. Scripts will be looking for
an environment variable called `BAMBOOHR_API_TOKEN`. If this does not exist,
you will be prompted for a token.
 
## Adding BambooHR IDs to existing `team.yml` entries
## Adding BambooHR IDs to existing team database entries
 
Employees that were created manually in `team.yml` need to have their BambooHR
Employees that were created manually in [the team database](team_database.md) need to have their BambooHR
ID added for further comparison and synchronization to work.
The script `bin/sync-employee-number` supports this process by attempting to
match entries between BambooHR and `team.yml`. Execute this command:
match entries between BambooHR and [the team database](team_database.md). Execute this command:
 
bundle exec bin/sync-employee-number
 
The script will update `team.yml` and list matches it found or BambooHR entries
The script will update [the team database](team_database.md) and list matches it found or BambooHR entries
it couldn't match.
 
**Please note:** matches are based on similarity of names, roles and start
dates. It is strongly recommended to review the modified `team.yml` and the
dates. It is strongly recommended to review the modified
[team database entries](team_database.md) and the
unmatched BambooHR entries before merging!
 
### Optional parameters
 
| Parameter | Description |
| --------- | ----------- |
| `-n`, `--dry-run` | Preview changes without modifying `team.yml`. |
| `--csv FILE` | Write matches/misses to a CSV file. |
| Parameter | Description |
| --------- | ----------- |
| `-n`, `--dry-run` | Preview changes without modifying any files. |
| `--csv FILE` | Write matches/misses to a CSV file. |
# Update the projects page (under `/handbook/engineering/projects`)
 
GitLab Engineering Projects page is generated using information stored in
`data/projects.yml` and `data/team.yml` files. Edit these files to add a
the `data/projects.yml` file and [the team member database](team_database.md).
Edit these files to add a
project and assign product owners / maintainers / reviewers.
 
* Typically, product owner is a Product Team member whose responsibilities
......@@ -15,7 +16,7 @@ and has ability to merge changes into the `master` branch / default branch.
providing a quick feedback during multiple review iterations.
 
To assign someone to a project it is necessary to add a `projects` section to
team member's entry in `data/team.yml`. See an example below.
team member's entry in [the team database](team_database.md). See an example below.
 
```yaml
- name: Full Name
......
# Team Member Database
This repository contains a database of GitLab team members, stored
in flat files. You will need to edit your file to keep it up-to-date,
in fact editing this database is one of your first tasks as a new
GitLab team member!
Currently the canonical version of this database is a single large
YAML file (`data/team.yml`). We are in the process of splitting this
up into individual files, one for each team member.
The `data/team.yml` file began, as many things do, as a simple solution
to the problem of keeping track of who we all are. Over time it became
enormous - a 26k line YAML file that everyone had to edit, breaking
tools and editors and sanity under its foot.
It is not strictly necessary (middleman can also access all these
separate files directly, under `data.team_members.person.sid` for
example), and it may be removed in the future.
# Managing the database
There are some rake tasks that can be used to manage this database:
- `build:split_team`
Takes the `date/team.yml` file and splits it into subfiles. This task
is intended to be a temporary addition to allow us to move away from
the monolithic team file. Each team member will be placed in a separate
file in `data/team_members/{type}/{slug}.yml`. For example:
`data/team_members/person/sid.yml`.
- `build:build_team`
Takes the individual files in the `data/team_members` directory
and builds a new `data/team.yml` file, that can be consumed by
existing tools. Generating this artifact allows us to keep
external tools working that rely on this single file.
- `build:verify_team`
This loads the individual files on disk, and the combined file on disk
and compares them. If they differ, the task aborts with an informative
message.
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment