Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove all Team and Component labels #146

Open
1 task done
chadwhitacre opened this issue May 19, 2023 · 10 comments
Open
1 task done

Remove all Team and Component labels #146

chadwhitacre opened this issue May 19, 2023 · 10 comments
Assignees

Comments

@chadwhitacre
Copy link
Member

chadwhitacre commented May 19, 2023

With the move to Product Area labels the Team and Component labels are now obsolete. We should remove them in sentry and sentry-docs and wherever else.

I sent out the following email to EPD and Support today:

Team,

tl;dr Stop using the Team and Component labels on GitHub. They'll be deleted on June 19.

GitHub has two different product paradigms for managing issues: labels and project metadata. Labels are the older of the two systems. They’ve been around since forever and are tightly integrated with the Issues tab. GitHub started shipping a new Projects product a couple years ago, which since then has evolved to be fairly robust. Many EPD teams (for example, Mobile and Crons) are now using projects for their day-to-day execution tracking.

Projects have three big advantages over plain issues:

  1. Projects are decoupled from repositories. They live at the organization level, which means one project board can contain issues from multiple repos.
  2. Projects are decoupled from each other. Any team can create a project and implement the workflows and metadata that make sense for them, without having to coordinate with or bother other teams.
  3. Projects are decoupled from issues. A single issue can live on multiple project boards at once, participating in the workflows and metadata for each board simultaneously.

Labels are not entirely obsolete, but for many issue-tracking use cases, projects are now the better option.

The OSPO recently switched GitHub issue routing from an approach based on teams to one based on product areas, and we’re building out our own project board for Issues Someone Else Cares About. With this we are going to be deleting the old “Team” labels along with the “Component” labels in the sentry and sentry-docs repos, as they are now obsolete. You should stop using the old labels today. If you have workflows that depend on these labels, you should add the relevant issues to a project board and use project metadata to track the info formerly encoded in the labels.

I intend to delete the Team and Component labels in sentry and sentry-docs on Monday, June 19. That gives you a month to migrate any workflows away from these labels to project boards. Ask in #discuss-open-source if you need help. I’ll send out a few more reminders between now and then.

In the future we’ll likely depend even further on project boards to manage our growing issues backlog. For example, we may auto-close orphan issues that are not on any project board. I also expect the Product Area labels to migrate to a field on the Issues Someone Else Cares About board. Stay tuned!

To Do

@chadwhitacre chadwhitacre changed the title remove all Team and Component labels Remove all Team and Component labels May 19, 2023
@chadwhitacre chadwhitacre self-assigned this May 19, 2023
@chadwhitacre
Copy link
Member Author

I started getting into this with Teams, I was able to delete a few easy labels. For the Emerging Tech label they were all closed, I put them in a new project board for safe keeping in case anyone cares in the future.

Label New Location
Team: Design getsentry/sentry#25670
getsentry/sentry#26688
Team: Dev Infrastructure getsentry/sentry#41303
Team: Emerging Technology https://github.com/orgs/getsentry/projects/107
Team: Security https://github.com/getsentry/sentry/labels/Security
Team: Profiling https://github.com/getsentry/sentry/labels/Product%20Area%3A%20Profiling

Here are the remaining labels:

  • Team: Backend
  • Team: Core UI
  • Team: Discover & Dashboards
  • Team: Ecosystem
  • Team: Enterprise
  • Team: Front End
  • Team: Growth
  • Team: Infrastructure
  • Team: Ingest
  • Team: Issue Experience
  • Team: Issue Platform
  • Team: Mobile Developer Experience
  • Team: Mobile Platform
  • Team: Native Platform
  • Team: Open Source
  • Team: Ops
  • Team: Performance
  • Team: Revenue
  • Team: Search & Storage
  • Team: Stacktrace
  • Team: Support
  • Team: Telemetry Experience
  • Team: Web SDKs - Backend
  • Team: Web SDKs - Frontend
  • Team: Workflow
  • Team: Crons

I'm thinking through how to account for these. One idea is to put them all on a single "Old Team Labels" (or whatever) project board and encode the team in a project field. Why? Would they be easy enough to work with from there?

I think ideally these tickets would all end up on an existing project board for whatever team. Not all these boards exist and for those that do I would need to coordinate with the EMs/PMs that own them. 🤔

@chadwhitacre
Copy link
Member Author

I've added all issues in sentry to a board with a team field on it that reflects the team labels. I've deleted the team labels(!). I've archived the issues on the board that are closed.

@chadwhitacre
Copy link
Member Author

I was able to get a list of all issues for each component label (hit a limitation with the GitHub API paginating an issues list filtered by label, it's truncated both in REST and GraphQL—but! GraphQL on the labels endpoint gives an easily paginated list of associated issues 👍). I want to look to see how frequently we have multiple component labels on a single issue, I think it's pretty extensive.

@chadwhitacre
Copy link
Member Author

Number of issues, Number of component labels (4 with 4, 9 with 3, etc.):

$ cat issues|grep '^  '|sort|uniq -c|sort -nr|sed -Ee 's/^ +([0-9]+).*/\1/'|uniq -c
   4 4
   9 3
  63 2
 664 1

@chadwhitacre
Copy link
Member Author

Alright so I think what I want to do is have four Component columns on the board and the later ones will be partially empty for those with less than four.

@chadwhitacre
Copy link
Member Author

Ultimately this is all just clean-up from #137. Where we need to go next is getting all teams on GitHub project boards so that issues can live on one or two boards (product area board, engagement board). We'll map product areas to those boards. For now I just need to delete the labels so people stop trying to use them (I had someone in Slack this morning asking which Component label they should be using). Getting tickets onto the right product area boards will need to be informed by the team and component labels currently applied, but I can't wait for the product area boards to exist before removing the labels, so this is a temporary solution to maintain the info in the meantime.

@chadwhitacre
Copy link
Member Author

chadwhitacre commented Jun 27, 2023

Aw, crunch. I'm only seeing 170 Component: Integration issues in my download, but 417 through the UI. 😭

@chadwhitacre
Copy link
Member Author

The sentry and sentry-docs repos have had "bonus labels" sneak in through manual addition over the past N weeks/months. I have been working through cleaning those up:

I've also been working through normal-course product area/owner updates, which ofc impact labels:

@chadwhitacre
Copy link
Member Author

I'm gonna have to deprioritize this, I have to focus on #79.

Next step here is to write a script that takes a label prefix (Component, Team) and a repo (sentry, sentry-docs), and migrates label data to the appropriate field in https://github.com/orgs/getsentry/projects/108.

@chadwhitacre chadwhitacre mentioned this issue Jul 24, 2023
21 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant