Page MenuHomePhabricator

Add support for custom fields per project
Closed, ResolvedPublic


Mantis, JIRA and bugzilla, allows to specify very basic thing: component of a product the task is related to.

I tried to add a custom Component field to maniphest: see mycompany:components in
I enabled it. It's visible for any task regardless of a project selected. This way per-project components aren't available.

Please correct me if I misconfigured something.

Event Timeline

kexipl raised the priority of this task from to Needs Triage.
kexipl updated the task description. (Show Details)
kexipl added a subscriber: kexipl.

This isn't the same as subprojects support. I gave example of a custom field called component but any custom field has the same issue: it's not per project, it's global. This way it's not possible to have a hosted instance with custom fields beign really custom for projects.

Unless I missed something...

I don't understand what you're asking for if it's not subprojects. Please read up a little on requesting features here:

Specifically, just give us the real problem you are having with Phabricator. Feature requests that are just "this feature doesn't exist" or "JIRA has it" doesn't help us identify the why of the issue. We want to understand as many processes as our users have and combine them into a single, scalable solution.

Phabricator does not support per-project fields, and we have no plans to add them at this time.

@epriestley thanks for the statement. We (at KDE) have to take this into account at this (testing) stage.

@chad Example scenario is as follows: even in a very small instance of Phabricator, let's say there are Marketing and Development. Marketing has a field "Advertisement type" [select] which makes no sense for Development tasks. Similarly Development tasks fill a field "Testing scenario" which makes no sense for Marketing.

By mentioning Mantis or JIRA or Bugzilla I mean that per my opinion they model basic workflows better for now. Well, when I use pen an paper to manage projects, I also categorize components.
Initially I thought there are tags for projects that can be be used. Did I miss something? I was surprised to read that "tags are projects, projects are tags" somewhere.

Even for the basic example with components, please note, components are not projects or subprojects. Just like a user is not modeled as a group of user where count == 1.

It's OK that custom fields aren't available but that they are not planned is more serious. Could you please share rationale behind it? Why is this particular part of the work model so different than what I think I know.

Thanks for your time!

I could see custom fields being split by space, but not really by project (since they are just tags).

Split by space -- that's much better than nothing!

When you search tasks, do you expect to have separate query UIs for "Marketing" tasks and "Development" tasks, or a single query UI (with support for querying by either field) for both?

That's a valid usability question. One of the solutions could be that a [+ Search in custom field] combo box appears, and I am able to select value from a set sorted nicely by (project, field_name). The logic could be then like: if I picked (Marketing, Ad_type = TV) and (Development, Testing_scenario LIKE 'by hand') this would mean:

(Project == Marketing AND Ad_type == TV) OR (Project == Development AND Testing_scenario LIKE 'by hand')

So sometimes selecting "A, B, C" as a query means "A AND (B OR C)", and sometimes it means "A AND B AND C", depending on whether B and C are from different projects?

What if Marketing actually has two different types of tasks that they work with: some are advertising (and have fields like "Ad Type"), and some are promotions (and have fields like "Promo Code"). Do those have to be separate top-level types, or can they be subtypes of "Marketing"? If they share several other fields (say, "Account Manager"), are those fields really the same field, or are they two different fields which have the same name? Is there a way for me to find all tasks with the same "Account Manager" across both types of "Marketing" tasks, without selecting two different fields?

If a task is mis-filed as a "Development" task but is actually a "Marketing" task, how does the application convert between the task types? What if "Marketing" tasks have several required fields which "Development" tasks do not? If the task is converted back, do the "Development" fields retain their values? If I search for an "Ad Type" and a task which has that "Ad Type", but is now a "Development" task with no "Ad Type" field, is that task returned in the result list?

@epriestley I just gave a solution at the UI level, which is similarly limited to, say, Thunderbird filter creator:

complex cases can be handled using expressions.

Oh, so we just need a query language to make this work? Do you think it would be better to build the query language first?

Global space switcher is the only thing that comes to my mind. At any rate, this is a fairly narrow/uncommon problem in Phabricator land and Spaces is pretty new. We'll have to see what other needs arise in the community over time.

@epriestley A typical search form like bugzilla for example covers many needs, with saving them it's quite OK. For complex cases (when user wants OR insted of AND somewhere?), yes, logical expressions are the popular and known way.

chad changed the task status from Duplicate to Resolved.Jan 23 2016, 3:25 AM

I believe the use cases here are reasonably solved with EditEngine in Maniphest and new Projects (build your own custom form, hide what you want from Marketing, and provide a link to the form on the Marketing project).

This comment was removed by chad.