Page MenuHomePhabricator

Organize additional projects as #cloud-services subprojects
Closed, DeclinedPublic

Event Timeline

Converting a top level project to a sub-project is magic that @mmodell has an admin script for somewhere I believe. I know he did the needful for the projects that we moved around this way before.

Is this still wanted? If yes, which project tag (URL) should become a subproject under which project tag (URL)?

Flagging for discussion by the WMCS team.

Some context for that discussion:

Ah, usual disclaimer: I highly recommend checking the "Here are some warnings, to avoid wrong expectations" section in https://www.mediawiki.org/wiki/Phabricator/Project_management#Parent_Projects,_Subprojects_and_Milestones first. :)

Discussed in the 2020-09-30 WMCS team meeting. Our consensus:

@Aklapper if you can do the needful for PAWS and Quarry that would be great.

Aklapper renamed this task from Organize additional projects as #Cloud subprojects to Organize additional projects as #cloud-services subprojects.Oct 3 2020, 12:06 PM

Urgh, looking at https://wikitech.wikimedia.org/wiki/Phabricator#Converting_a_parent_project_into_a_subproject I am wondering if The workboard seems to get nuked so you'd have to locally keep data which task is in which column and manually fix that up is still true (I really hope not?)

Also, as I'd first need to manually remove the future-parent project #cloud-services from all #PAWS and #Quarry tasks to avoid DB corruption, Phab's "Advanced" search for those tasks being in both parent projects (cloud-services && (paws || quarry)) also lists tasks which are in subprojects of #cloud-services, making identifying the actual tasks a bit more cumbersome. Links for myself when proceeding here:

When I discovered VPS subproject list my expectation has been that the full structure of the cloud architecture will be reflected.

Minus 2:

All VPS subdomains but no other should be derived from Cloud-Services > VPS-Projects rather than from Projects root.

Active things under toolforge.org should be in Tools. That might improve navigation and understanding, and avoid confusion. Cloud-Services is branching into Tools and VPS and this is quite intuitive. Together with Data-Services as umbrella and administrative tasks like Toolforge etc. that makes structure obvious. Dead projects do not need to be moved around.

This is incorrect. WDQS has some testing environment(s) in Cloud VPS projects, but WDQS itself (https://query.wikidata.org/) is hosted in the Wikimedia Foundation's "production" network on dedicated hardware.

Maybe; one reason more to avoid confusion and attempt clear structures.

I guess I've said before that this is a PITA. And buggy. And complex. I tried and I failed, see below.

FAIL: ...and this is where we lost the Quarry milestone "FY2021/2022-Q1" with its four tasks at https://phabricator.wikimedia.org/project/view/5469/ : "This object has an unknown or invalid policy setting ("")." https://phabricator.wikimedia.org/project/edit/5469/ cannot be reached either.

Quarry at https://phabricator.wikimedia.org/project/subprojects/800/ incorrectly shows no milestones.

https://phabricator.wikimedia.org/maniphest/query/Cc_iNCoVId1j/#R also shows no tasks in that milestone and after entering the milestone name and running the query, it converts its displayed name to "Restricted Project".

mysql:phstats@m3-slave.eqiad.wmnet [phabricator_project]> SELECT id, name, phid, viewPolicy, editPolicy, hasMilestones, hasSubprojects, parentProjectPHID, milestoneNumber FROM phabricator_project.project WHERE (id = 5469 OR id = 800 OR id = 832);
+------+----------------+--------------------------------+------------+--------------------------------+---------------+----------------+--------------------------------+-----------------+
| id   | name           | phid                           | viewPolicy | editPolicy                     | hasMilestones | hasSubprojects | parentProjectPHID              | milestoneNumber |
+------+----------------+--------------------------------+------------+--------------------------------+---------------+----------------+--------------------------------+-----------------+
|  832 | Cloud-Services | PHID-PROJ-msyn2z45n7mw45bfuscb | public     | PHID-PLCY-gsth6m2as2637wjel4ti |             0 |              1 | NULL                           |            NULL |
|  800 | Quarry         | PHID-PROJ-yh2h2e536o6uq6dvw3bu | public     | PHID-PLCY-gsth6m2as2637wjel4ti |             1 |              0 | PHID-PROJ-msyn2z45n7mw45bfuscb |            NULL |
| 5469 | FY2021/2022-Q1 | PHID-PROJ-zmu45phc7kizekpym7uo | public     | users                          |             0 |              0 | PHID-PROJ-yh2h2e536o6uq6dvw3bu |               1 |
+------+----------------+--------------------------------+------------+--------------------------------+---------------+----------------+--------------------------------+-----------------+
3 rows in set (0.001 sec)

mysql:phstats@m3-slave.eqiad.wmnet [phabricator_maniphest]> SELECT CONCAT("https://phabricator.wikimedia.org/T", t.id) AS affectedTasks FROM phabricator_maniphest.edge e INNER JOIN phabricator_maniphest.maniphest_task t WHERE e.type = 41 AND e.src = t.phid AND e.dst = "PHID-PROJ-zmu45phc7kizekpym7uo"; 
+-------------------------------------------+
| affectedTasks                             |
+-------------------------------------------+
| https://phabricator.wikimedia.org/T288528 |
| https://phabricator.wikimedia.org/T289503 |
| https://phabricator.wikimedia.org/T287471 |
| https://phabricator.wikimedia.org/T71037  |
+-------------------------------------------+
4 rows in set (0.001 sec)
$:acko\> echo '{"objectIdentifier":"5469", "transactions":[{"type":"view","value":"public"}]}' | /var/www/html/phorge/arcanist/bin/arc call-conduit --conduit-uri https://phabricator.wikimedia.org --conduit-token "api-xxxxxxxxxxxxxxxxxxxxxxxxxxxx" project.edit --
{
  "error": "ERR-CONDUIT-CORE",
  "errorMessage": "ERR-CONDUIT-CORE: <project.edit> [Access Denied: Restricted Project] (Can View) You do not have permission to view this object. // This object has an unknown or invalid policy setting (\"\"). Members of a project can always view it.",
  "response": null
}

This is why I'd like to entirely refrain from trying to convert parent projects to subprojects until someone spends a lot of time fixing and testing that script.

No big damage done here. Still not the way how to do things.

I guess I've said before that this is a PITA. And buggy. And complex. I tried and I failed, see below.

I disagree that these should be a sub-project of cloud-services. Sounds like that is difficult to facilitate as well. These are community projects. I believe some general perspective on this has changed in the three years since previous consensus was reached. I would ask that these not be designated a sub-project. And it sounds like it is a terrible thing from a phabricator perspective to do, so bonus?

Eh, sorry.
I could manually revert this if wanted by creating a new Quarry Phab project, moving the tasks, and archive the old one. Though will trigger some notifications.

Eh, sorry.
I could manually revert this if wanted by creating a new Quarry Phab project, moving the tasks, and archive the old one. Though will trigger some notifications.

I probably misread the above. If this is already done, there is no need to revert it.