Page MenuHomePhabricator

Growth team: Review stable code (hooks, mw object, undocumented) and mark (un)stable interfaces before 1.42.0
Closed, DeclinedPublic

Description

The stable interface policy was introduced in September 2023 during the 1.41 MediaWiki release. As a result of the introduction of this policy I am asking teams to take the opportunity to review their existing stable APIs and take appropriate action to limit unsupported APIs where necessary and possible.

TODO

  • Please read the guidelines around what constitutes stable code
  • Please remove any functions on the mw object that you do not wish to consider stable. Note "Code that was never part of a public MediaWiki release, and never consumed according to Codesearch and Global Search MAY be changed (including marked explicitly as @private) or removed without deprecation, since the code has never become part of the stable interface or used."
  • Please add @private or @internal documentation tags to hook events that you wish to limit usage of.

Event Timeline

Jdlrobson renamed this task from Growth team: Review code on mw object and mark (un)stable interfaces before 1.42.0 to Growth team: Review stable code (hooks, mw object, undocumented) and mark (un)stable interfaces before 1.42.0.Oct 4 2023, 4:46 PM

FYI, the 1.42 branch point is in a matter of hours; it doesn't appear that this will be done by then?

The stable policy grace period is now closed, so any code from now on that has not been marked as @internal or @private should be considered stable per the frontend stable policy.

For GrowthExperiments and GuidedTour, the following APIs (and all public methods associated with these objects) can now be considered stable for use in extensions and gadgets (and are subject to the deprecation policy):

  • mw.libs.ge
  • mw.guidedTour
  • mw.libs.guiders

Hooks:

  • growthExperiments.contextItem.openHelpPanel'
  • helpPanel.hideCta
  • ext.growthExperiments.HelpPanel
  • growthExperiments.mobileHomepageOverlayHtmlLoaded
  • growthExperiments.helpPanelQuestionPosted
  • growthExperiments.mobileOverlayClosed.*
  • growthExperiments.mobileOverlayClosed.suggested-edits
  • growthExperiments.mobileHomepageSummaryHtmlLoaded.suggested-edits
  • growthExperiments.contextItem.saveArticle
  • growthExperiments.contextItem.openHelpPanel
  • growthExperiments.structuredTask.onboardingCompleted
  • growthExperiments.structuredTask.showOnboardingIfNeeded
  • growthExperiments.suggestionAcceptanceChange
  • growthExperiments.imageSuggestions.onImageCaptionReady
  • growthExperiments.structuredTask.onboardingCompleted
  • growthExperiments.structuredTask.showOnboardingIfNeeded
  • growthExperiments.onAnnotationClicked
  • growthExperiments.suggestionAcceptanceChange

If this is not acceptable please comment in the next 7 days so we have a record of the intent to change this, otherwise we can decline this ticket.

(If you need to fix these APIs to not be stable, please make sure to backport any applicable patches to 1.42 branch).

Feel free to reopen if you decide any of these should not be stable!