Page MenuHomePhabricator

Allow self-service creation of Maniphest projects for Tools
Closed, ResolvedPublic

Description

Now that Striker allows creating Diffusion repos for tools, a logical extension would be to allow creating a single #Tool-<toolname> Maniphest project. That project could be associated with any Diffusion repos for the tool and would complete the git+code review+bug reporting feature set that is commonly found in 3rd party VCS hosting services.

There are some existing Maniphest projects for tools (e.g. #Tool-Labs-tools-Xtools) that use a different naming convention of #Tool-Labs-tools-<toolname>. This looks like a carry over from the old Bugzilla nested organization scheme. The naming guidelines seem to favor shorter names for new project creation. An alternate way to organize per-Tool projects would be as subprojects of a new umbrella project named "Tool-Labs-Tools" or just "Tools". Input from the Project-Admins and the Tool Labs developer community on this would be useful.

Naming and organization questions were settled by T167244: Rename and update Cloud Services Phabricator projects. Projects for Toolforge hosted tools should be named tool-<name of tool> and be sub-projects of the Tools umbrella project. Vanity naming that strips the tool- prefix can be handled on a per-project basis via the normal Phabricator project management request process. Even if that is done the Phab project should remain a sub-project of Tools to increase discoverability.

Event Timeline

Dereckson renamed this task from Allow self-service creation of Manifest projects for Tools to Allow self-service creation of Maniphest projects for Tools.Aug 28 2016, 2:10 AM
Dereckson updated the task description. (Show Details)
bd808 triaged this task as Medium priority.Aug 31 2016, 12:20 AM

There are some existing Maniphest projects for tools (e.g. Tool-Labs-tools-Xtools) that use a different naming convention of #Tool-Labs-tools-<toolname>. This looks like a carry over from the old Bugzilla nested organization scheme.

We should keep this naming scheme, It easy for people to detect that its a Tools Lab based project and not some other random project with similar naming. (We also just standandized on this naming iirc).

The naming guidelines seem to favor shorter names for new project creation.

Length does not matter, descriptiveness is the important part in a project name (because most people won't type a full name and just select from the type-a-head.)

There are some existing Maniphest projects for tools (e.g. Tool-Labs-tools-Xtools) that use a different naming convention of #Tool-Labs-tools-<toolname>. This looks like a carry over from the old Bugzilla nested organization scheme.

We should keep this naming scheme, It easy for people to detect that its a Tools Lab based project and not some other random project with similar naming. (We also just standandized on this naming iirc).

Is there a phab ticket, wiki page, or mailing list that documents that decision? I'm not looking to change things just for fun, but the current ultra verbose naming scheme seems arbitrary to me.

The naming guidelines seem to favor shorter names for new project creation.

Length does not matter, descriptiveness is the important part in a project name (because most people won't type a full name and just select from the type-a-head.)

At Phabricator/Creating_and_renaming_projects#Guidelines it says:

  • Come up with a good name:
    • Think of the shortest name that users can find easily typing ahead.
    • Ideally one word, otherwise multiple words must be connected with dashes in order to allow linking project names in the context of Phabricator's markup (cf. T43).
    • Unnecessary use of frequent words like Wikimedia or MediaWiki should be avoided, except for differentiation to help avoiding misunderstandings (e.g. WMF-Design for a Wikimedia Foundation team project, in contrast to general design issues). Remember that Phabricator is a public place and that the entire community shares Phabricator's flat "Projects" namespace.

My interpretation of that is apparently different than @Peachey88's interpretation. If we end up with a project for even only 10% of the ~1500 Tool accounts that are currently created I would think that "Tool-Labs" would become part of the "frequent words" classification.

Ultimately I'm fine with either naming scheme, but I'd like to not perpetuate a scheme that seems to be in contradiction to the existing wiki documentation.

We should keep this naming scheme, It easy for people to detect that its a Tools Lab based project and not some other random project with similar naming. (We also just standandized on this naming iirc).

Is there a phab ticket, wiki page, or mailing list that documents that decision?

I'm not aware of any such decision to standardize.
(See also my comment being quoted in T103700#2531755.)

Can confirm that the current naming convention is just an artifact of bugzilla migration, and I do favor a shorter name. Thanks for working on it!

In general I think prefixing and namespacing Phabricator projects is a good idea. In this case I think it's mostly important because we can have wikibugs automatically send Tool labs prefixed projects to #wikimedia-labs instead of the default of #wikimedia-dev.

In general I think prefixing and namespacing Phabricator projects is a good idea. In this case I think it's mostly important because we can have wikibugs automatically send Tool labs prefixed projects to #wikimedia-labs instead of the default of #wikimedia-dev.

I think we agree. The current debate seems to be whether the prefix #Tool- is ok or if we should stick with the longer #Tool-Labs-tools- prefix.

If we decided to change it to #Tool-{toolname}, Toolforge would look pretty weird, though maybe we could rename it to #Labs-Tools or something

OK, let's go with "Tool-{toolname}", for consistency with the Diffusion setup, e.g. https://phabricator.wikimedia.org/source/tool-precise-tools/. It's also shouldn't be too long but lets us prefix.

Toolforge (#Tool-Labs) does clash, but we can figure that out later and not block this on that one exception :)

IMO this is the perfect use case for sub-projects.

bd808 moved this task from Needs Discussion to Ready on the Striker board.

I'm investigating this to see how feasible it would be to have Maniphest projects at the point of tool creation in Striker.

At the moment, creation is limited to Project-Admins. This is a sizable number of people but not "anyone who could conceivably create a tool"-large. Are there plans for opening up project creation to more people? Otherwise, I am not sure that Maniphest project on creation is really feasible. (It would only be useful to a small number of project admins.)

Also I assume a similar problem would exist for repository creation. But this task notes that repository creation via Striker is possible, so either we found a way around access limitations or it's a feature many people won't be able to use.

We would probably add the @StrikerBot account to Project-Admins , so that striker itself would create the projects.

We would probably add the @StrikerBot account to Project-Admins , so that striker itself would create the projects.

Yes, that's my plan. Basically it would work just like the Diffusion repo creation does where the credentials for the bot account are used to make the initial resource via Conduit API calls. Once the project is created they would be public editable just like most other Maniphest projects. Striker would enforce naming and placing the project under the Tools parent project.

Change 591811 had a related patch set uploaded (by Majavah; owner: Majavah):
[labs/striker@master] [WIP] Add self-service Phabricator project creation

https://gerrit.wikimedia.org/r/591811

taavi moved this task from Unsorted to Pending review on the User-Majavah board.

Change 613355 had a related patch set uploaded (by BryanDavis; owner: Bryan Davis):
[mediawiki/vagrant@master] striker: Add support and docs for phab project creation

https://gerrit.wikimedia.org/r/613355

Change 613355 merged by jenkins-bot:
[mediawiki/vagrant@master] striker: Add support and docs for phab project creation

https://gerrit.wikimedia.org/r/613355

Change 591811 merged by jenkins-bot:
[labs/striker@master] Add self-service Phabricator project creation

https://gerrit.wikimedia.org/r/591811

Change 623075 had a related patch set uploaded (by BryanDavis; owner: Bryan Davis):
[labs/striker/deploy@master] Bump striker and wheels sub modules

https://gerrit.wikimedia.org/r/623075

Change 623075 merged by jenkins-bot:
[labs/striker/deploy@master] 2020-09-02 release

https://gerrit.wikimedia.org/r/623075

Mentioned in SAL (#wikimedia-operations) [2020-09-02T21:46:25Z] <bd808@deploy1001> Started deploy [striker/deploy@3c2090a]: Deploying r20200902 tag (T198114, T223610, T245804, T144111, T261810)

Change 626007 had a related patch set uploaded (by BryanDavis; owner: Bryan Davis):
[labs/striker@master] Register PhabricatorProject model with admin

https://gerrit.wikimedia.org/r/626007

Change 626007 merged by jenkins-bot:
[labs/striker@master] Register PhabricatorProject model with admin

https://gerrit.wikimedia.org/r/626007

Mentioned in SAL (#wikimedia-operations) [2020-09-09T16:03:10Z] <bd808@deploy1001> Started deploy [striker/deploy@e120c6c]: Deploying r20200909 tag (T262323, T144111)

Mentioned in SAL (#wikimedia-operations) [2020-09-09T16:04:30Z] <bd808@deploy1001> Finished deploy [striker/deploy@e120c6c]: Deploying r20200909 tag (T262323, T144111) (duration: 01m 21s)

Mentioned in SAL (#wikimedia-operations) [2020-09-09T16:05:15Z] <bd808@deploy1001> Started deploy [striker/deploy@e120c6c]: Deploying r20200909 tag (T262323, T144111) [take 2]

Mentioned in SAL (#wikimedia-operations) [2020-09-09T16:05:25Z] <bd808@deploy1001> Finished deploy [striker/deploy@e120c6c]: Deploying r20200909 tag (T262323, T144111) [take 2] (duration: 00m 11s)

Mentioned in SAL (#wikimedia-operations) [2020-09-09T16:10:19Z] <bd808@deploy1001> Started deploy [striker/deploy@e120c6c]: Deploying r20200909 tag (T262323, T144111) [take 3]

Mentioned in SAL (#wikimedia-operations) [2020-09-09T16:10:30Z] <bd808@deploy1001> Finished deploy [striker/deploy@e120c6c]: Deploying r20200909 tag (T262323, T144111) [take 3] (duration: 00m 11s)