Page MenuHomePhabricator

Herald rule for iOS
Closed, ResolvedPublic

Description

The iOS team has a workflow that requires tasks to be funneled to one source: Wikipedia-iOS-App-Backlog

However, the team also uses other projects for tracking purposes:
https://phabricator.wikimedia.org/search/query/8bAe1tPxgoKI/#R
https://phabricator.wikimedia.org/search/query/_bysOXOY6neE/#R

They would like to automatically funnel any task for which they are responsible which does not get tagged with Wikipedia-iOS-App-Backlog . The logic would thus be:

Anything that acquires any of the following tags in these queries
https://phabricator.wikimedia.org/search/query/8bAe1tPxgoKI/#R
https://phabricator.wikimedia.org/search/query/_bysOXOY6neE/#R

that is not tagged with
Wikipedia-iOS-App-Backlog

should be tagged with
Wikipedia-iOS-App-Backlog

The team generally tags appropriately, but can't account for tagging by those outside of the team. This will ensure that the tasks get in front of the right eyes.

I am also happy to own updating this Herald rule, assuming additional components facing the same issue are created (and assuming I can get the specific permission). :)

See also:
T137352: Herald rule for Wikipedia-Android-App-Backlog
{H168}
T138975: Migrating projects to subprojects for Apps teams

Event Timeline

So if I get it right, the request here is:

  • If project is any of
    • ios-app-v5.1.0-saturn ios-app-v5.2.0-honey ios-app-bugs ios-app-feature-ipad ios-app-feature-nearby ios-app-feature-analytics ios-app-feature-wp0 ios-app-feature-database ios-app-feature-topread ios-app-feature-offline ios-app-feature-administrative-tasks ios-app-feature-feature-links ios-app-feature-toc ios-app-feature-notifications ios-app-feature-performance ios-app-feature-ios10 ios-app-feature-multilingual ios-app-feature-accessibility ios-app-feature-namespaces ios-app-feature-saved
  • every time also add project
    • Wikipedia-iOS-App-Backlog

I am also happy to own updating this Herald rule, assuming additional components facing the same issue are created (and assuming I can get the specific permission). :)

AFAIK Herald rule editing permissions are global and not per rule. As Herald rules create performance issues I wonder about our general take on having more people able to create global rules, and if there might be reasons to not do I'm not aware of. @mmodell: Any opinion/input?

@MBinder_WMF: I think it makes sense to allow you creating global Herald rules. But want to sort out the general approach a bit more. ^

Current situation: Can Manage Global Rules in our config is set to allow administrators and members of #Repository-Admins and #acl*phabricator.

AFAIK Herald rule editing permissions are global and not per rule. As Herald rules create performance issues I wonder about our general take on having more people able to create global rules, and if there might be reasons to not do I'm not aware of. @mmodell: Any opinion/input?

I really don't like situations like this one which involve ongoing maintenance and large lists of tags in herald rules, however if it's the only way to achieve the needed behavior then I won't object too loudly ;)

I can see why milestones isn't useful but what about subprojects? I can't think of any good reason why all of the ios app tags should not be collected under a single superproject. Doing that would make it easy to search for tasks by simply searching for the superproject in maniphest advanced search. That might even address the core need expressed by this task.

Current situation: Can Manage Global Rules in our config is set to allow administrators and members of #Repository-Admins and #acl*phabricator.

That should probably not include Diffusion-Repository-Administrators although I think that was added for setting up commit hooks.

I'm ok with adding @MBinder_WMF to #acl*phabricator

@Aklapper

So if I get it right, the request here is:

  • If project is any of
    • ios-app-v5.1.0-saturn ios-app-v5.2.0-honey ios-app-bugs ios-app-feature-ipad ios-app-feature-nearby ios-app-feature-analytics ios-app-feature-wp0 ios-app-feature-database ios-app-feature-topread ios-app-feature-offline ios-app-feature-administrative-tasks ios-app-feature-feature-links ios-app-feature-toc ios-app-feature-notifications ios-app-feature-performance ios-app-feature-ios10 ios-app-feature-multilingual ios-app-feature-accessibility ios-app-feature-namespaces ios-app-feature-saved
  • every time also add project
    • Wikipedia-iOS-App-Backlog

Yes, though, like that Android Herald rule in the description, if the tag is removed leave it so, to avoid bot-tagging-wars.

@MBinder_WMF: I think it makes sense to allow you creating global Herald rules. But want to sort out the general approach a bit more. ^

Reasonable. Obviously, it would be less overhead for others if I could make the updates myself, but I don't want to create unnecessary tensions, as you point out is possible.

@mmodell

I really don't like situations like this one which involve ongoing maintenance and large lists of tags in herald rules, however if it's the only way to achieve the needed behavior then I won't object too loudly ;)

Same. I wish there was a better way. I added this task to the "See also" in the description: T138975: Migrating projects to subprojects for Apps teams

I can see why milestones isn't useful but what about subprojects? I can't think of any good reason why all of the ios app tags should not be collected under a single superproject. Doing that would make it easy to search for tasks by simply searching for the superproject in maniphest advanced search. That might even address the core need expressed by this task.

My understanding is that if you tag a task with a subproject, it does not tag the parent project. Might work for Maniphest purposes, but not for workboard purposes. The team can't check every tag for incoming work, which is why it funnels to one workboard/backlog. If it doesn't appear on the unified workboard, they don't see it (they primarily use the tags for tracking and filtering on that main board). Please correct me if I'm wrong. I'd love to see this functionality, and forego this likely-unsustainable Herald approach if possible.

@mmodell Of course, if Herald can make a rule to tag any subproject of a specific project with the parent project, that's a mix of both solutions that I think is more sustainable.

Example: iOS-app-feature-Analytics becomes a subproject of Wikipedia-iOS-App-Backlog , and when the former is tagged, the latter is also tagged, because Herald says "If [subproject] of Wikipedia-iOS-App-Backlog is tagged, add Wikipedia-iOS-App-Backlog .

@MBinder_WMF That actually sounds feasible with a custom herald rule.

@mmodell Far out. :) Shall I update the description? We can make the rule for iOS, then I can reopen that ticket for migrating to subprojects, and assuming it works, I can reopen the task for Android's Herald rule, too.

We should probably start with a manually created rule as I'm not sure how long it will take to develop a custom herald rule (and it seems like it'll be sort-of low maintenance, assuming the list of projects doesn't change very often)

@mmodell Ah, sorry, misunderstood what "custom" meant. I'm OK to wait on the custom rule if it makes this requested manual one redundant. At the moment, it's not much more manual for me to keep an eye on the projects. It's always been about thinking long-term.

(and it seems like it'll be sort-of low maintenance, assuming the list of projects doesn't change very often)

The list has not changed that often, though I can't speak for the future as accurately. Sounds like these are the next steps:

  1. T144041: Develop a custom herald condition for maniphest tasks: "projects include any subprojects of ___ " is resolved
  2. T138975: Migrating projects to subprojects for Apps teams is re-opened and resolved
  3. T143948: Herald rule for iOS is edited to reflect the possibilities of the custom Herald rule in T144041: Develop a custom herald condition for maniphest tasks: "projects include any subprojects of ___ " and is resolved
  4. {H168} is updated to take advantage of the new custom Herald rule

Would you like a new epic with these subtasks?

@mmodell hiya, just checking in on this. Not urgent, but it's simply on my list of things to resolve. Anything I can do to help?

I don't know when I'll be able to get to T144041: Develop a custom herald condition for maniphest tasks: "projects include any subprojects of ___ " so we can go ahead with setting up the manual herald rules for now...

Great. I don't think I have permissions to make global herald rules. Should I wait, or ping someone else? :)

@mmodell Thanks. I think it also needs iOS-app-v5.2.1-Egg-Tart . Any verdict on whether or not I could have permissions to update this going forward? I don't mind pinging when it needs updating, but you might. :)

@MBinder_WMF you should be able to edit now, can you try adding iOS-app-v5.2.1-Egg-Tart and let me know whether it lets you?

Any objections to remove the underscores from title?

mmodell renamed this task from Herald_rule_for_iOS to Herald rule for iOS.Sep 19 2016, 5:23 PM

Thanks @mmodell . @MarcoAurelio I used the underscores after a similar task I filed got a title updated to use them: T137352: Herald rule for Wikipedia-Android-App-Backlog. Looks like that has since been updated, too. :)

What's left to do in this task? Or can this be closed?

I believe the scope of this task is covered. However, I think it remains open because it has been "blocked" by T144041: Develop a custom herald condition for maniphest tasks: "projects include any subprojects of ___ "

Would be OK closing this and continuing in the other task.

greg assigned this task to mmodell.
greg subscribed.

Yup