title: TPA-RFC-19: GitLab Labels usage
costs: staff
approval: TPA
affected users: GitLab users interacting with TPA projects and service admins
deadline: One week, starting at 2022-03-16, so 2022-03-23.
status: standard
discussion: https://gitlab.torproject.org/tpo/tpa/team/-/issues/40649
Summary: create a bunch of labels or projects to regroup issues for all documented services, clarify policy on labels (mostly TPA services) vs projects (git, external consultants) usage.
Background
Inside TPA, we have used, rather inconsistently, projects for certain
things (e.g. tpo/tpa/gitlab
) and labels for others
(e.g. Nextcloud). It's unclear when to use which and why. There's
also a significant number of services that don't have any project or
label associated with them.
This proposal should clarify this.
Goals
Must have
- we should know whether we should use a label or project when reporting a bug or creating a service
Nice to have
- every documented service in the service list should have a label or project associated with it
Proposal
Use a project when:
- the service has a git repository
(e.g.
tpo/tpa/dangerzone-webdav-processor
, most web sites) - the service is primarily managed by service admins
(e.g.
tpo/tpa/schleuder
) or external consultants (e.g.tpo/web/civicrm
) who are actively involved in the GitLab server and issue queues
Use a label when:
Scope
This applies only to TPA services and services managed by "service admins".
Current labels
TODO: should we add an "issues" column to the service list with this data?
Those are the labels that are currently in use inside tpo/tpa/team
:
Label | Fate | Note |
---|---|---|
Cache | keep | deprecated, but shouldn't be removed |
DNS | keep | need reference in doc |
Deb.tpo | keep | |
Dist | keep | |
keep | needs documentation page! | |
Git | keep | |
Gitlab | keep | |
Gitweb | keep | |
Jenkins | keep | |
LDAP | keep | |
Lists | keep | |
Nextcloud | move | external service, move to project |
RFC | keep | |
RT | keep | |
Schleuder | move? | move issues to existing project |
~Service admin | remove? | move issues to other project/labels |
Sysadmin | remove | everything is sysadmin, clarify |
incident | keep | internally used by GitLab for incident tracking |
New labels
Those are labels that would need to be created inside tpo/tpa/team
and linked in their service page.
Label | Description | Note |
---|---|---|
Backup | backup services | |
BBB | Video and audio conference system | external consultants not on GitLab |
BTCpayserver | TBD | TODO: is that a TPA service now? |
CI | issues with GitLab runners, CI | |
~DRBD | is that really a service? | |
Ganeti | ||
Grafana | ||
IRC | TODO: should that be external? | |
IPsec | ||
~kvm | deprecated, don't create? | |
Logging | centralized logging server | maybe expand to include all logging and PII issues? |
~Nagios | Nagios/Icinga monitoring server | rename to Icinga? |
Openstack | Openstack deployments | |
PostgreSQL | PostgreSQL database services | |
Prometheus | ||
Puppet | ||
static-component | ||
static-shim | static site / GitLab shim | |
SVN | ||
TLS | X509 certificate management | |
WKD | OpenPGP certificates distribution |
Note that undocumented and retired projects do not currently have explicit labels or projects associated with them.
Current projects
Those are services which currently have a project associated with them:
Service | Project | Fate | Note |
---|---|---|---|
GitLab | tpo/tpa/gitlab | retire | primarily maintained by TPA move all issues to Gitlab |
status | tpo/tpa/status-site | keep | git repository |
blog | tpo/web/blog | keep | git repository |
bridgedb | ? | ? | anti-censorship team |
bridgestrap | ? | ? | idem |
check | ? | ? | network health team? |
CRM | tpo/web/civicrm |
keep | external consultants |
collector | ? | ? | network health team |
dangerzone | tpo/tpa/dangerzone-webdav-processor |
keep | git repository |
metrics | ? | ? | metrics team |
moat | ? | ? | anti-censorship |
newsletter | tpo/web/newsletter |
keep | git repository |
onionperf | ? | ? | metrics team |
schleuder | tpo/tpa/schleuder | keep | schleuder service admins? |
rdsys | ? | ? | anti-censorship team |
snowflake | ? | ? | idem |
styleguide | tpo/web/styleguide |
keep | git repository |
support | tpo/web/support |
keep | git repository |
survey | ??? | ??? | ??? |
website | tpo/web/tpo | keep | git repository |
New projects
Those are services that should have a new project created for them:
Project | Description | Note |
---|---|---|
tpo/tpa/nextcloud |
to allow Riseup to manage tickets? |
Personas
Anathema: the sysadmin
Anathema manages everything from the screws on the servers to the CSS on the websites. Hands in everything, jake-of-all-trades-master-of-none, that's her name. She is a GitLab admin, but normally uses GitLab like everyone else. She files a boatload of tickets, all over the place. Anathema often does triage before the triage star of the week even wakes up in the morning.
Changes here won't change her work much: she'll need to remember to assign issues to the right label, and will have to do a bunch of documentation changes if that proposal passes.
Wouter: the webmaster
Wouter works on many websites and knows Lektor inside and out. He doesn't do issues much except when he gets beat over the head by the PM to give estimates, arghl.
Changes here will not affect his work: his issues will mostly stay in his project, because most of them already have a Git repository assigned.
Petunia: the project manager
Petunia has a global view of all the projects at Tor. She's a GitLab admin and her mind holds more tickets in her head than you ever will even imagine.
Changes here will not affect her much because she already has a global view. She should be able to help move tickets around and label everything properly after the switch.
Charlie, the external consultant
Charlie was hired to deal with CiviCRM but also deals with the websites.
Their work won't change much because all of those services already have projects associated.
Mike, the service provider
Mike provides us with our Nextcloud service, and he's awesome. He can debug storage problem while hanging by his toes off a (cam)bridge while simultaneously fighting off DDOS attacks from neonazi trolls.
He typically can't handle the Nextcloud tickets because they are often confidential, which is annoying. He has a GitLab account so he will be possibly happy to be able to do triage in a new Nextcloud project, and see confidential issues there. He will also be able to watch those issues specifically.
George, the GitLab service admin
George is really busy with dev work, but really wanted to get GitLab off the ground so they helped with deploying GitLab, and now they're kind of stuck with it. They helped an intern develop code for anonymous tickets, and triaged issues there. They also know a lot about GitLab CI and try to help where they can.
Closing down the GitLab subproject means they won't be able to do triage unless they are added to the TPA team, something TPA has been secretly conspiring towards for months now, but that, no way in hell, will not happen.
Alternatives considered
All projects
In this approach, all services would have a project associated with them. In issue tpo/tpa/gitlab#10, we considered that approach, arguing that there were too many labels to chose from so it was hard to figure out which one to pick. It was also argued that users can't pick labels so that we'd have to do the triage anyways. And it is true that we do not necessarily assign the labels correctly right now.
Ultimately, however, having a single project to see TPA-specific issues turned out to be critical to survive the onslaught of tickets in projects like GitLab lobby, Anon ticket and others. If every single service had its own project, it would mean we'd have to triage all those issues at once, which is currently overwhelming.
All labels
In this approach, all services would be labels. This is simply not possible, if only because some service absolutely do require a separate project to host their git repository.
Both project and label
We could also just have a label and a project, e.g. keep the status
quo between tpo/tpa/gitlab
and Gitlab. But then we can't really
tell where to file issues, and even less where to see the whole list
of issues.
References
This proposal is discussed in issue tpo/tpa/team#40649. Previous discussion include:
- issue tpo/tpa/gitlab#10, "move tpa issues into subprojects or cleanup labels"; ended up in the status quo: current labels kept, no new subproject created
- issue tpo/tpa/gitlab#55, "move gitlab project back into tpo/tpa/team"; ended up deciding to keep the project and create subprojects for everything (ie. reopening gitlab#10 (closed) above, which was ultimately closed)
See also the TPA-RFC-5: GitLab migration proposal which sets the policy on other labels like Doing, Next, Backlog, Icebox and so on.