Page MenuHomePhabricator

Implementation and test labels should not need to be globally unique
Open, Needs TriagePublic

Description

Currently, we make sure that objects have globally unique labels per languages.

This leads to unnecessary long and specific labels for tests and implementation. Tests and implementations are basically never shown outside of the context of the functions page, and therefore only need labels useful in this context. These can frequently and with good reason be the same on different functions (e.g. integer addition and natural number addition both might want to have a test called "1+1=2").

We should drop the requirement that labels for tests and implementations are globally unique per language.

I was thinking whether we should keep a requirement that they should be unique per language and per function, but I think that the work to ensure that is not justified by the gain.

Event Timeline

I think we should do some of T373735 at the same time (or first), because Recent changes and List all objects of a given type (etc) are contexts where we see Implementation and Test case labels without their function’s context.

Search needs more careful consideration, but excluding Implementations and Test cases from the default search would appear to be a step forward. (I’d also exclude search terms beginning with a colon from typeahead searches, just because it’s annoying.)

Jdforrester-WMF subscribed.

Currently, we make sure that objects have globally unique labels per languages.

Changing this requirement at this point is a pretty major engineering challenge. This needs some effort to explain the product value.