Page MenuHomePhabricator

Graduate suggestions based on constraints beta feature out of beta features
Closed, ResolvedPublic

Description

We have a beta feature to give better value suggestions for properties that usually only use a small set of values like "sex and gender" or "driving side". Based on the on-of constraint defined on the property we show the expected value immediately in the value suggester.
The beta feature seems to be working fairly well. We should graduate it to a proper feature and make it available to all editors.

See "Entity suggestions from constraint definitions" on https://www.wikidata.org/wiki/Special:Preferences#mw-prefsection-betafeatures to enable and test it.

Acceptance criteria:

  • Beta feature is removed from beta feature settings page
  • Every editor receives suggestions based on constraints

Graduation requirements:

  • Most people are happy with your feature/change
  • It's agreed to be a good addition to the site, balancing features, design complexity and performance
  • All major bugs and obviously missing features are fixed
  • It passes a second design, security and performance review as per review queue
  • You have run it as the Beta Feature in "final configuration" (with only the bits you intend to deploy, and no others) for at least two weeks before deployment – last fixes were in T207363 and T220587, to be deployed with 1.34.0-wmf.1
  • Get agreement from @Jdforrester-WMF/@greg
  • Merge your code into an appropriate venue (usually MediaWiki core or an existing extension) behind a feature flag
  • Deploy, removing your Beta Features code from the servers and the Beta Features whitelist entry from mediawiki configuration

Event Timeline

Addshore changed the task status from Open to Stalled.Jan 29 2019, 9:45 AM
Addshore assigned this task to Lea_Lacroix_WMDE.

Waiting on results of community feedback round by Léa.

Lea_Lacroix_WMDE changed the task status from Stalled to Open.Mar 25 2019, 11:42 AM

We can go ahead once T207363 is fixed.

Lydia_Pintscher triaged this task as High priority.
Lydia_Pintscher updated the task description. (Show Details)
  • Every editor receives suggestions based on constraints

To clarify – does this mean just logged in users, like for constraint checks, or anonymous users as well?

The estimation covers only promoting from beta feature to the default feature.

WMDE-leszek set the point value for this task to 3.Apr 10 2019, 1:23 PM

The estimation covers only promoting from beta feature to the default feature.

Now a separate task, T220609: Enable constraints suggestions for everyone and remove beta feature.

I’m not sure how the graduation requirements apply to this task – some clarification from the beta masters would be appreciated :)

What exactly needs to go through another design, security and performance review, given that the feature is essentially just one JavaScript file (plus a bit of PHP bootstrapping) in a much larger PHP extension that’s already deployed everywhere?

How will the deployment work? T220609 has three Gerrit changes at the moment: effectively enable the feature for everyone; remove the beta feature from the extension; remove the beta feature from mediawiki-config. Which ones of these go with the train and which go through SWAT, and in what order are they deployed? Do we need more changes to first add a feature flag whether the feature is enabled for everyone, and then SWAT that, before the beta feature is removed?

I’m not sure how the graduation requirements apply to this task – some clarification from the beta masters would be appreciated :)

Sure. :-)

What exactly needs to go through another design, security and performance review, given that the feature is essentially just one JavaScript file (plus a bit of PHP bootstrapping) in a much larger PHP extension that’s already deployed everywhere?

The design review is at the discretion of the product owner of the relevant area (it's to make sure we're not pushing things into production by default that radically break the design concept of everything around them).

The security concern shouldn't be needed; if there were security concerns, the code should have been removed from production already.

The performance concern relate to tools which scale with 10 users but will break production if you have 100,000; if you as a team are comfortable with the load/profile.

How will the deployment work? T220609 has three Gerrit changes at the moment: effectively enable the feature for everyone; remove the beta feature from the extension; remove the beta feature from mediawiki-config. Which ones of these go with the train and which go through SWAT, and in what order are they deployed? Do we need more changes to first add a feature flag whether the feature is enabled for everyone, and then SWAT that, before the beta feature is removed?

Generally, just have the enable-for-all change (and remove the beta feature code) in the code repo that rides the train, then the next week when you're sure the train won't regress, drop the beta feature config from MW config.

Thanks! Is it okay if we shorten the “final configuration” deployment period to just one week (last fixes deployed this week, graduate beta feature next week)?

The performance concern relate to tools which scale with 10 users but will break production if you have 100,000; if you as a team are comfortable with the load/profile.

Hm, after a bit of thinking about that I’ve filed T220956: Cache API responses for constraint suggestions feature :) but I don’t think that needs to block the beta feature graduation – there shouldn’t be so many of these requests that they’d cause serious issues. (Famous last words…)

Thanks! Is it okay if we shorten the “final configuration” deployment period to just one week (last fixes deployed this week, graduate beta feature next week)?

Sure!

Apologies if this is the wrong place to mention this, but I've been using the suggestions feature for a while and my only complaint about it currently is that, when you create a new statement, qualifiers for it don't have any suggestions (e.g. when adding Steam Application ID to an item, I would expect that adding a qualifier would suggest the "platform" property as a qualifier). The suggestions only work when the statement has already been saved.

Should I open a separate issue for this?

Hi @connorshea, that's T102324 (which is the task in which the suggestions where hidden for qualifiers in new items as a temporary measure), T147117 (the parent of the previous one) and T197991 (which is probably a duplicate of the other two).

It turns out there’s no regular train this week (releng offsite), so I’ll backport the patch that unconditionally enables the feature in WBQC and SWAT that on ThursdayWednesdayThursday.

The feature is available for everyone now and the beta feature is no longer available, so let’s close this.