Page MenuHomePhabricator

Map from bugzilla aliases to phabricator tasks
Closed, DeclinedPublic

Description

Note for import script: If there is a Bugzilla alias, put "Alias: alias-name" in Maniphest description so it's searchable.


It took one hour due to T395, T396, T397, T398, T399, T400, T401 and forgetting what I was here for in the first place... but previous browser tab reminded me what I was here for. :)

Since we upgraded bugzilla (currently 4.4.4), we have an increasing (IMHO worringly increasing) number of bug aliases, which can be used in place of bug numbers anywhere, e.g. dependencies and URL.
https://bugzilla.wikimedia.org/show_bug.cgi?id=37883 ~ https://bugzilla.wikimedia.org/show_bug.cgi?id=Commons

What's the plan to preserve links to such non-numerical IDs? Surely we're not going to keep the bugzilla database in place for redirection, and perhaps we don't want to have hundreds or thousands URL rewrite rules?

This needs to be figured out urgently: in worst case, aliases (or at least their direct usage in URLs) should be disabled on bugzilla.wm.o to reduce future damage.

Related Objects

StatusSubtypeAssignedTask
ResolvedQgil
ResolvedQgil
ResolvedQgil
Resolved chasemp
ResolvedAklapper
Declined chasemp
Resolved chasemp
Resolved chasemp
Resolved mmodell
Resolved chasemp
Resolved mmodell
ResolvedAklapper
ResolvedAklapper
Declined mmodell
Resolved chasemp
DeclinedQgil
Resolved chasemp
InvalidQgil
Resolved chasemp
Resolved chasemp
Resolved chasemp
Resolved chasemp
DuplicateNone
Resolved chasemp
Resolved chasemp
Resolved chasemp
DuplicateNone
DeclinedAklapper

Event Timeline

flimport raised the priority of this task from to Medium.Sep 12 2014, 1:39 AM
flimport set Reference to fl402.

Nemo_bis wrote on 2014-06-15 10:08:27 (UTC)

aliases (or at least their direct usage in URLs) should be disabled on bugzilla.wm.o to reduce future damage.

A comment on bugzilla suggests this setting was removed in 4.4, but maybe there's a workaround to disable at least URLs.

aklapper wrote on 2014-06-15 12:33:17 (UTC)

What's the plan to preserve links to such non-numerical IDs?

Does anybody actually use them? In any case, this is something to cover in T39, yeah. Thanks for finding out!

Nemo_bis wrote on 2014-06-15 20:53:03 (UTC)

Does anybody actually use them?

I saw someone using such links, IIRC, yes. Otherwise I wouldn't even have tried, it seems so evil to me!

qgil wrote on 2014-06-16 19:03:08 (UTC)

Adding to Day 1 project only to avoid having this task orphan.

mattflaschen wrote on 2014-06-16 21:12:47 (UTC)

I'm assuming Phabricator doesn't have aliases (I think it's a nice feature, but certainly not a blocker).

I do use them. I mainly consider them a shortcut to type into the blocks/blocked by fields. I don't think I've ever copied in a URL like https://bugzilla.wikimedia.org/show_bug.cgi?id=alias-name .

My understanding is we're going to import the entire Bugzilla set of bugs. During that import, we can rewrite any links in comments at import time (keep the text of the link the same, and change the URL to be numeric by consulting Bugzilla's alias table). Also, at import time we can simply put a line "Alias: alias-name" in the Phabricator task description, to make it searchable.

That still leaves external links to Bugzilla (source other than Bugzilla). Those I think we're just have to deal with breaking (it will be easier to fix due to the aforementioned searchability).

aklapper wrote on 2014-06-17 11:00:03 (UTC)

In T402#13, @mattflaschen wrote:

I'm assuming Phabricator doesn't have aliases (I think it's a nice feature, but certainly not a blocker).

Nothing that I am aware of, no. :(

Also, at import time we can simply put a line "Alias: alias-name" in the Phabricator task description, to make it searchable.

Yepp, sounds good, noted.

That still leaves external links to Bugzilla (source other than Bugzilla). Those I think we're just have to deal with breaking (it will be easier to fix due to the aforementioned searchability).

I think we won't be able to have no link breakage at all, we can only minimize. Discussed in T417.

aklapper wrote on 2014-06-23 16:28:17 (UTC)

To get an idea of the impact (and whether the work spent on creating a mapping is feasible), there are currently 89 Bugzilla tickets with an Alias field set:

https://bugzilla.wikimedia.org/buglist.cgi?columnlist=bug_id%2Cproduct%2Ccomponent%2Calias&f1=alias&o1=notregexp&query_based_on=&query_format=advanced&v1=^%24

aklapper wrote on 2014-07-16 12:49:07 (UTC)

I do not want the Bugzilla Alias of a bug report to be converted into a Maniphest task's title like a "[alias]" prefix/suffix as the alias normally is nearly always already included in the title. Too noisy.

Which leaves us with the question if we want to set up ~90 redirect rules.

Nemo_bis wrote on 2014-07-17 19:30:59 (UTC)

Which leaves us with the question if we want to set up ~90 redirect rules.

Yes.

Nemo_bis wrote on 2014-07-19 09:07:16 (UTC)

Added to subscribers those who appear to have added aliases and could be found in https://www.mail-archive.com/search?l=wikibugs-l%40lists.wikimedia.org&q=%22added+alias%22&x=0&y=0 , except Samuel B., Vulpix, Reza.

JeanFred wrote on 2014-07-19 15:30:01 (UTC)

Regarding my usage of redirects : same as @mattflaschen − merely use them as nice shortcuts for blocks/blocked fields, never linked to them from outside Bugzilla.

aklapper wrote on 2014-07-22 20:57:05 (UTC)

Setting up ~100 redirect rules in Apache to maintain forever, for those URLs with Aliases, sounds like a not very performant scenario and so far there is no indication that this is a widely used feature.

Hence an edge case likely not to support in Phabricator. Proposing WONTFIX.

Rush wrote on 2014-07-22 21:01:32 (UTC)

A few thoughts:

  1. there isn't a feature like this that exists that we can map too sanely
  2. the existing bugzilla will have to persist in a way that allows users who are actively using their aliases to convert to flags

This will have to be a self serve option.

I am open to making some aliases into project tags? But that's not a direct transfer so it's not really ideal.

legoktm wrote on 2014-07-22 21:32:15 (UTC)

I mainly use aliases for ease of usage in the blockers / depends on fields. I rarely (like twice) use the aliases when linking to things on IRC.

Rush wrote on 2014-07-22 21:37:43 (UTC)

hopefully phab is a more sane interface where this won't be a big loss then?

preview-Screen_Shot_2014-11-05_at_3.07.36_PM.png (55×220 px, 4 KB)

profile-profile-logstash.png (50×50 px, 3 KB)

mattflaschen wrote on 2014-07-28 23:39:30 (UTC)

In T402#20, @Aklapper wrote:

I do not want the Bugzilla Alias of a bug report to be converted into a Maniphest task's title like a "[alias]" prefix/suffix as the alias normally is nearly always already included in the title. Too noisy.

Yeah, I don't think it should be in the title. Putting it in the description (just "Alias: some-alias") should be enough to make it searchable.

Which leaves us with the question if we want to set up ~90 redirect rules.

I'm not that worried about performance on the Bugzilla domain name redirects (we want people to transition to direct links anyway, and redirects are relatively fast). However, I don't see alias redirects as a requirement either.

In T402#27, @Rush wrote:
  1. the existing bugzilla will have to persist in a way that allows users who are actively using their aliases to convert to flags

I'm not sure what you mean by this. Bugzilla aliases are global, and they seem different from Phabricator flags.

I am open to making some aliases into project tags? But that's not a direct transfer so it's not really ideal.

I don't think aliases need to be converted into the Phabricator data model beyond just including in the Phabricator task description.

Rush wrote on 2014-07-29 17:52:32 (UTC)

@mattflaschen on tokens I just meant so people can keep tracking what they want individually

is the conclusion here for the description of a task to have:

Alias: Foo

aklapper wrote on 2014-08-10 19:19:03 (UTC)

Conclusions:

  • For the import script, if there is a Bugzilla alias, put "Alias: alias-name" in Maniphest description so it's searchable.
  • We will not set up ~100 redirect rules in Apache to maintain forever, as written above.

Nemo_bis wrote on 2014-08-15 09:30:34 (UTC)

In T402#34, @Aklapper wrote:
  • We will not set up ~100 redirect rules in Apache to maintain forever,

Why?

as written above.

Where? Do you mean "sounds like a not very performant scenario"? Sounds like a not very compelling argument. Is there anyone from ops confirming that this would cause performance issues?

The list of redirect is trivial to make and minuscule compared to the 1600+ lines of https://git.wikimedia.org/blob/operations%2Fapache-config.git/HEAD/redirects.conf

aklapper wrote on 2014-08-15 11:41:16 (UTC)

Import script and putting "Alias: foo" into the initial description is part of the export/import script, hence tentatively setting Chase as assignee. Again, anything else here I consider WONTFIX/declined.

In T402#36, @Nemo_bis wrote:

Why?

Is there any proof that more than five people extensively use "https://bugzilla.wikimedia.org/show_bug.cgi?id=alias" URLs (and not just their one or two favorites)? I doubt. Again, I don't see how this is worth the hassle. Don't even think this functionality is documented somewhere.

Is there anyone from ops confirming that this would cause performance issues?

I'll leave commenting to ops...

Rush wrote on 2014-08-20 15:06:13 (UTC)

resolving as handled by T423

This is my take as well

is there any proof that more than five people extensively use "https://bugzilla.wikimedia.org/show_bug.cgi?id=alias" URLs (and not just their one or two favorites)? I doubt. Again, I don't see how this is worth the hassle. Don't even think this functionality is documented somewhere.

Nemo_bis subscribed.

Note for import script: If there is a Bugzilla alias, put "Alias: alias-name" in Maniphest description so it's searchable.

Reopening. There is no reason we can't redirect people to something meaningful when they visit a bugzilla URL with a non-numeric ID. If a phabricator search for "Alias: alias-name" isn't feasible, there are two options:

  • redirect to old-bugzilla;
  • redirect to an external search engine search for the string.

Please describe how exactly (specific steps that I can reproduce by following them) you are using Bugzilla Aliases now that we have moved to Phabricator, so I can understand better which problems there are to solve. For example, is this a matter of updating some browser bookmarks that you click? Or what are the interactions that are happening?

Furthermore, redirecting to old-bugzilla for a specific ticket just because you used its Alias instead of the ID as URL parameter feels very inconsistent with the rest of the policy to redirect IDs to Phabricator.

Reopening. There is no reason we can't

There is a reason: the amount of work it takes to implement each feature, and the prioritization we need to make among Phabricator tasks. I'm fine with the Needs Volunteer for now, just in case there is some that indeed wants to work on this, but if there is no movement in, say, a couple of months, then I think we can safely decline this request.

aklapper wrote on 2014-08-15 11:41:16 (UTC)

putting "Alias: foo" into the initial description is part of the export/import script

Maybe I misread this as descriptive when it's aspirational, but I don't see this line. E.g. in the migrated T39883 , there's no "Alias: commons" from old bug 37883; in T29946 there's no "Alias: ssl", etc.

(Which is OK for me: Phabricator automatically shows the task title after to the task number in "Blocks/Blocked by", so I don't miss seeing "Blocks: commons".)

Uhm, looks like we did not put the Alias into the initial description... I'm sorry for that. I think we forgot while discussing all the other stuff to drop in the description in T694 and while discussion focused on redirects. :(
If considered somehow useful (how?) one could still manually copy that from BZ into the initial description in a Phab task.

If considered somehow useful (how?) one could still manually copy that from BZ into the initial description in a Phab task.

Among other things, it lets you search by alias (e.g. code_quality).

In T240#786684, @Mattflaschen wrote:

If considered somehow useful (how?) one could still manually copy that from BZ into the initial description in a Phab task.

Among other things, it lets you search by alias (e.g. code_quality).

Yeah, but you could also go to https://phabricator.wikimedia.org/T2700 instead and look at the "Blocked by" list? (/me trying to understand the different workflows of people)

Qgil lowered the priority of this task from Medium to Lowest.Nov 27 2014, 8:49 AM
Qgil added a project: Phabricator.
Qgil set Security to None.
Qgil moved this task from To Triage to Need discussion on the Phabricator board.

Yeah, but you could also go to https://phabricator.wikimedia.org/T2700 instead and look at the "Blocked by" list? (/me trying to understand the different workflows of people)

Yes, but I need to somehow figure out that code_quality is 2700. Search was meant to be a solution to that.

One approach could be one rewrite rule mapping any b.w.o/show_bug.cgi?id=[[:alpha:]]+ to old-b.w.o

But I also dont recall using aliases outside of Bugzilla, so dont mind if they are not mapped.

However, I would like an aliases feature in Phab; that there are not many aliases in b.w.o isnt a good indicator of their importance - instead, look at which bugs had aliases - they are the 'big' bugs/tasks which people want to access very quickly, regularly, and will continue to be relevant for quite a long time.
Manually adding aliases to the start or end of the task name could be a simple substitute for this functionality.

Change 176898 had a related patch set uploaded (by Nemo bis):
Redirect bugzilla alias URLs to old-bugzilla

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

Patch-For-Review

In T240#800306, @jayvdb wrote:

One approach could be one rewrite rule mapping any b.w.o/show_bug.cgi?id=[[:alpha:]]+ to old-b.w.o

Yep, that's what I proposed in https://phabricator.wikimedia.org/T240#779973 . Capturing all aliases actually requires some more characters, which doesn't matter much as the numerical-only URLs are captured earlier by the redirector AFAICS.

As written in Gerrit, I consider the confusion of redirecting some reports to a ticket in old-bugzilla (when passing an alphabetic ID parameter) and redirecting some other reports to a ticket in phabricator (when passing a numeric ID parameter) more confusing and hurtful than making a user manually add a "old-" to the URL of her/his ticket URL with an alphabetic id parameter to find out the actual numeric ID.

In T240#800120, @Mattflaschen wrote:

Yes, but I need to somehow figure out that code_quality is 2700. Search was meant to be a solution to that.

Ah. You could always go to https://old-bugzilla.wikimedia.org/show_bug.cgi?id=code_quality where it shows the ID "700" and then go to https://bugzilla.wikimedia.org/show_bug.cgi?id=700

Change 176898 abandoned by Nemo bis:
Redirect bugzilla alias URLs to old-bugzilla

Reason:
First and last phabricator patch I make.

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

Aklapper claimed this task.

Apart from this ticket I have not seen users bringing up the missing alias functionality or problems finding their corresponding task in Phabricator. Nothing on https://www.mediawiki.org/wiki/Talk:Phabricator/Help or https://www.mediawiki.org/wiki/Talk:Phabricator either.

Having users end up on the generic phabricator.wikimedia.org frontpage for numerous Bugzilla URLs that could not easily be converted into direct (non-frontpage) redirects is intended (T40) as users have to get acquainted to Phabricator anyway. I consider that more important than showing them outdated data on old-bz.
I assume that users are aware of using old-bugzilla.wm.org to get the ID of an Alias and then removing the "old-" from the URL to access the Phab task. Also see T240#801134.

I'm closing this task as declined.