Deprecate team.yml file as it is too large

The team.yml file is too large to comfortably edit with normal editors. Dedicated editors like vim and emacs are fine, but the file is thousands of lines long and being YAML, it is easy to mess it up during rebase. It is hard to get a single history of any one person in the team, and adding/removing team members is particularly subject to conflicts. We therefore propose splitting the team.yml in order to remove it in the long run

Phase 1: Splitting the team.yml (done)

We split the team.yml into a file per person, which then can be found in data/team_members/person. Those files are the new SSOT.

We add a danger job that warns against editing data/team.yml directly.

The team.yml is not deleted.

  1. add scripts to split and build the team.yml: !73086 (merged)
  2. Splitting the team.yml: !73139 (merged)
  3. Automatically update the team.yml if needed in order to make it eventually consistent:

Phase 2: Migrate consumers away from a checked-in team.yml (current)

A lot of people are using the team.yml directly for their automation. Luckily this should be mostly downloading the file directly from e.g. https://gitlab.com/gitlab-com/www-gitlab-com/-/raw/master/data/team.yml. With Phase 1 we ensure that the file is updated regularly and made consistent from time to time and those integrations should work.

In order to prepare removing the team.yml from the repo:

  1. Expose the built team.yml under https://about.gitlab.com/company/team/team.yml. This file will be built every time and is always up to date: !74225 (merged)
  2. Migrate as many external scripts to use the newly built file. It should be as simple as migrating the URL from https://gitlab.com/gitlab-com/www-gitlab-com/-/raw/master/data/team.yml to https://about.gitlab.com/company/team/team.yml. For example:

Phase 3: Removing the team.yml

After Phase 2 has been done, we should give people a grace period of 14 days in order to migrate the script. If everything else is migrated and we haven't run into any problems, we can:

  1. Delete the team.yml, the update_team_yml job and script, parts of Danger and our update automation. For people consuming the full team.yml we are still exposing it on: https://about.gitlab.com/company/team/team.yml.

Follow-ups

Currently we consume the data/team.yml directly within www-gitlab-com, we should switch the linters, org chart, team page and everything else to consume the split files directly.

Original Description

The team.yml file is too large to comfortably edit with normal editors. Dedicated editors like vim and emacs are fine, but the file is thousands of lines long and being YAML, it is easy to mess it up during rebase. It is hard to get a single history of any one person in the team, and adding/removing team members is particularly subject to conflicts.

Proposal:

split the file into individual files that can be edited separately.

See: !73086 (merged)

Related issues:

#7084 (closed)

Edited by Lukas Eipert