Page MenuHomePhabricator

Need to create #meta-* projects without formally discussing each one first.
Closed, ResolvedPublic

Description

Background

I previously proposed that we define a new type of project in phabricator.wikimedia.org specifically for repository meta-data (see T128161: Proposal: New project type for repository metadata)

These meta-tag projects have type tag a name starting with #meta-

So far I have only created two such projects (meta-build-package and meta-jenkins-test)

My intent is that meta-tags are used as meta-data on repositories, and referenced the corresponding herald rules. They are not intended for use in maniphest task tagging and I want to explicitly bypass the expectation that each #meta-* project needs to be discussed before creation.

What I failed to make explicit in the previous discussion is that there will be a need to create many more meta tags to trigger many different actions related to continuous-integration and release automation.

Why we need meta-tag projects

Projects are the universal meta-data in phabricator. They are flexible and easy to use and almost every object in phabricator can be tagged with projects to add meaning or behavior.

When Release-Engineering-Team is working on prototyping CI configuration in phabricator, it's a significant burden to discuss each tag before we can start using it. Herald rules need to be set up for all of our git repositories and there are more than 1500 repositories already in Diffusion. Rather than configuring one herald rule for each repo the proper way to do this is to make a few herald rules for the various groups of related repositories and tag the repositories with meta-data to trigger the rules. It's much more efficient and manageable - the alternative would be completely unworkable with so many repositories. We should not have to edit 833 different herald rules in order to adjust access policies or add a new CI job to mediawiki extensions.

Our current project creation guidelines are overly rigid and heavily focused on "task management." It's unfortunate that they are called 'projects' in phabricator, since projects are really a lot more generic than the name implies. They are used for a lot more than just organizing projects and tasks.

Proposed changes

Unless there are serious objections then I would like to amend the project creation guidelines to explicitly allow for creation of #meta- tags without discussing each one beforehand.

Event Timeline

I think the definition "Meta projects are used to tag code repositories with special behaviors and workflows. These behaviors are triggered by custom Herald rules." is specific enough for now, support.

Mukunda, thanks a lot for taking the time to elaborate and explain this so it's clear why this is needed and how this is used! Very appreciated. +1.

I would like to amend the project creation guidelines to explicitly allow for creation of #meta- tags without discussing each one beforehand.

Problem I see is that there might be a proliferation of meta- tags. If they're needed for jenkins or other tools to work I'm ok with that, but in any case I think we should still ask folks to log the creation of those. Thanks.

mmodell claimed this task.

I updated the guidelines and linked to this task.