Page MenuHomePhabricator

Implement Subprojects
Closed, ResolvedPublic

Assigned To
Authored By
epriestley
Dec 18 2015, 10:19 AM
Referenced Files
F1096589: pasted_file
Feb 7 2016, 5:57 AM
F1096538: pasted_file
Feb 7 2016, 5:13 AM
Tokens
"Love" token, awarded by Luke081515.2.

Description

Container task for implementing subprojects, described in T3670.


Errata

  • Milestone icon in the workboard column header has whack spacing.
  • If you edit a task and change which milestone it's in, we don't move it to the proper column.
  • You can reorder subproject and milestone columns, but should not be able to.
  • Renaming subproject and milestone columns probably works but should not.
  • Milestone/subproject column headers should be linked to their workboards.
  • Add "Initial Members" on project create and drop autojoin behavior to reduce the number of "tag" projects with the author as a member.
  • "Subprojects" profile menu item should be hidden for milestones.

Revisions and Commits

Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes
epriestley added a revision: Restricted Differential Revision.Dec 28 2015, 8:53 PM
epriestley added a revision: Restricted Differential Revision.Dec 29 2015, 12:45 PM
epriestley added a revision: Restricted Differential Revision.Dec 29 2015, 2:59 PM
epriestley added a commit: Restricted Diffusion Commit.Dec 29 2015, 6:40 PM
epriestley added a commit: Restricted Diffusion Commit.
epriestley added a commit: Restricted Diffusion Commit.

Question: I saw your screenshots at rP7c5ad63fd1d613a62727624ec31436d7933b0bbd

Are you going to implement a way, that you can add existing projects as subproject or milestone, like at tasks? (Where you can add blocking tasks after creation)

No, you can not reorganize existing projects.

I know this is all prototype at this stage, but where's the best place to highlight bugs with the current implementation? Should I just file a bug report in maniphest?

You can just leave a comment here.

When you make a task in a subproject, clicking on the project name in the task detail view will give you a 404 as it tries to access /tag// (as there is no project tag set on sub projects)

Also, adding / removing members from superproject / subproject isn't working.

Otherwise this is all looking very exciting!

Also, adding / removing members from superproject

That's expected.

subproject isn't working.

I can't reproduce that.

That's expected.

Ah, I was probably getting confused by that: so as I now understand, the superproject membership inherits from the subprojects it contains?

If a subproject has a subproject does that now work as both a subproject and a superproject (inherited memberships that bubble up to it's parent)?

Ah, I was probably getting confused by that: so as I now understand, the superproject membership inherits from the subprojects it contains?

Yep.

If a subproject has a subproject does that now work as both a subproject and a superproject (inherited memberships that bubble up to it's parent)?

Yeah, they go all the way up.

The "Members" page will get more clear about these things in the future (for example, it will probably show which subproject(s) each member belongs to, so you can see why they're part of the superproject, and likely have some way to get an explicit textual explanation).

Excellent, thanks for explaining!

epriestley added a revision: Restricted Differential Revision.Dec 30 2015, 11:48 AM
epriestley added a commit: Restricted Diffusion Commit.Dec 30 2015, 10:42 PM
epriestley added a revision: Restricted Differential Revision.Dec 31 2015, 3:11 PM
epriestley added a commit: Restricted Diffusion Commit.Jan 8 2016, 10:01 PM
epriestley added a revision: Restricted Differential Revision.Jan 19 2016, 5:53 PM
epriestley added a commit: Restricted Diffusion Commit.Jan 19 2016, 6:02 PM
epriestley added a revision: Restricted Differential Revision.Feb 1 2016, 3:19 PM
epriestley added a commit: Restricted Diffusion Commit.Feb 1 2016, 5:18 PM
epriestley added a revision: Restricted Differential Revision.Feb 2 2016, 9:07 PM
epriestley added a commit: Restricted Diffusion Commit.Feb 2 2016, 9:12 PM
epriestley added a revision: Restricted Differential Revision.Feb 2 2016, 11:36 PM
epriestley added a revision: Restricted Differential Revision.Feb 3 2016, 5:52 PM
epriestley added a revision: Restricted Differential Revision.Feb 3 2016, 7:07 PM
epriestley added a revision: Restricted Differential Revision.Feb 3 2016, 8:03 PM
epriestley added a revision: Restricted Differential Revision.Feb 3 2016, 8:14 PM
epriestley added a revision: Restricted Differential Revision.Feb 3 2016, 9:07 PM
epriestley added a commit: Restricted Diffusion Commit.Feb 3 2016, 11:05 PM
epriestley added a commit: Restricted Diffusion Commit.
epriestley added a commit: Restricted Diffusion Commit.
epriestley added a commit: Restricted Diffusion Commit.
epriestley added a commit: Restricted Diffusion Commit.Feb 3 2016, 11:08 PM
epriestley added a commit: Restricted Diffusion Commit.Feb 4 2016, 12:38 AM
epriestley added a revision: Restricted Differential Revision.Feb 4 2016, 1:23 AM
epriestley added a commit: Restricted Diffusion Commit.Feb 4 2016, 1:30 AM
epriestley added a revision: Restricted Differential Revision.Feb 4 2016, 3:58 PM
epriestley added a commit: Restricted Diffusion Commit.Feb 4 2016, 4:07 PM
chad edited projects, added Projects (v3); removed Projects.
chad moved this task from Backlog to Evan on the Projects (v3) board.
epriestley added a revision: Restricted Differential Revision.Feb 5 2016, 9:34 PM
epriestley added a commit: Restricted Diffusion Commit.Feb 5 2016, 10:31 PM
epriestley added a revision: Restricted Differential Revision.Feb 6 2016, 8:50 PM
epriestley added a commit: Restricted Diffusion Commit.Feb 6 2016, 8:55 PM
epriestley added a revision: Restricted Differential Revision.Feb 7 2016, 12:26 AM
epriestley added a commit: Restricted Diffusion Commit.Feb 7 2016, 12:33 AM

I just hit this exception when I had:

  • A parent project
  • A subproject underneath it that had no tasks in it
  • After immediately creating a new milestone inside the subproject

pasted_file (707×1 px, 109 KB)

Once I added a single task to the subproject, it started working again.

epriestley added a revision: Restricted Differential Revision.Feb 7 2016, 5:21 AM

T10294 talks about showing subprojects on a board, which may be confusing. One path we could take is allowing people to toggle on/off various columns (milestones, subprojects, hidden, backlog) like we do hidden columns today.

With the new column design, there's no more "View All Tasks" button as far as I can see, which is slowing down my work today quite a bit. I keep having to go to the advanced Maniphest search and query different things there instead of just clicking a tag on a task and then going "View All Tasks" to find tasks like it.

Ah, I'm using it in conjunction with the bulk editor. The "View All Tasks" button used to take you to the Maniphest query page where you could then use the bulk editor to manipulate tasks.

That button applies to the whole workboard, but then you can only bulk edit per column.

I'm not sure what you mean by "View all tasks" button. Are you referring to the link in the sidenav?

Yeah, there used to be a button on the project page somewhere which linked you to the Maniphest query page with that project prefilled in the "Projects" query field. I used it for doing bulk edits on tasks a lot when cleaning up projects that were no longer active or on the backburner (like bulk removing assignees or bulk changing statuses from whatever they were to Wishlist).

Oh I guess it was just an icon when it was on the workboard. Those have been removed, you can add it back via "Manage Project" -> "Edit Menu", then build a link menu to the URL. We'll have more tools likely for managing those down the road. Our long term goal is to let you put links, dashboards, milestones, nearly anything on that side menu, configurable per project.

If you haven't played with the new nav, it's pretty configurable. Build buttons to new tasks, phriction pages, harbormaster queries, whatever. It's a bit manual at the moment, but otherwise powerful.

Yeah, it's just a bit tedious to go back through like 40+ projects in the system and add a link which is probably hard-coded and might break in the future (if the project gets renamed or something?)

epriestley added a commit: Restricted Diffusion Commit.Feb 7 2016, 10:36 AM

This is now substantially complete.

  • See T10349 for followups / errata.
  • Guidance on the new features will be forthcoming in the Changelog this evening or tomorrow.