Beta Features

E Ryan Abner (V -Dj Ryan Abner)

Beta Features are a way for you to test new features on Wikipedia and other Wikimedia sites before they are released for everyone.

Go to your preferences to enable Beta Features for yourself; remember enabling features works on a per site basis.

Please let us know what you think of this program on talk>Talk:Beta Features|this discussion page.

Purpose
The primary purpose of Beta Features is to allow for Wikimedia designers and engineers (from the Wikimedia Foundation and community alike) to roll out technical improvements in an environment where large numbers of users can test, give feedback, and use these features in real-world settings. The secondary purpose of Beta Features is to provide a path so that helpful, well-designed gadgets and other community code can be integrated into core after vetting, testing, and reviewing by Wikimedia Design and Engineering.

The code to provide features like this is in an extension, betafeatures>Extension:BetaFeatures. Beta Features' preferences are available in a special-preferences>Special:Preferences|Preferences tab, accessible via the personal bar at the top of the page for all logged-in users.

Functionality
Right now, users can:


 * manually opt-in to individual features
 * automatically enroll in all additional features as they are subsequently released

To use either function, users should select the appropriate checkbox, then click 'Save', which will save their Beta Features preferences (like with other preferences). Every now and then new features are made available to users, as outlined at roadmap>Beta Features/Roadmap.

Current Beta Features
Here are the current beta features which we are testing with this system:


 * interlanguage-links>Special:MyLanguage/Universal Language Selector/Design/Interlanguage links|Compact language links (lead: Pau Giner) — show a shorter version of the language list, with just the languages that are more relevant to you.
 * hovercards>Special:MyLanguage/Beta Features/Hovercards|Hovercards (lead: Jon Katz) — give readers a short summary of an article whenever they hover over a link to it.
 * flowtalk>Special:MyLanguage/Flow|Flow on user talk (lead: Roan Kattouw) — Enables a new structured discussion system on your user talk page.
 * completion>Special:MyLanguage/Reading/Web/Projects/Read more|Read more (lead: Jon Katz) — Suggests related topics at the bottom of a page.
 * cx>Special:MyLanguage/Content translation|Content translation (lead: Amir Aharoni) — A tool to quickly translate pages into your language with side-by-side editor.
 * ores>Special:Mylanguage/Extension:ORES|ORES (lead: Amir Sarabadani) — ORES is an AI-based tool that highlights probably damaging edits in recent changes and watchlist.
 * revslider>Special:Mylanguage/Extension:RevisionSlider|RevisionSlider (lead: Lea Voget) — The RevisionSlider extension adds a slider interface to the diff view, so that you can easily move between revisions.
 * Special:MyLanguage/2017 wikitext editor (lead: James Forrester) —

We invite Wikimedia product teams and community volunteers who want to test out new features, or significant changes to existing features, to do so through this project.

Creating your own
Do you want to create your own Beta Feature? Great! James is happy to help guide you.

First, you should check that your code meets the following basic requirements:

You should expect to test your new feature on the WMF pre-deploy beta server for at least one week before deploying to production. This testing period is intended to catch any serious bugs before jeopardizing users on production.
 * Not significantly degrade site performance;
 * Not noticeably degrade perceived performance of the site, or the user's system;
 * Not crash the user's browser;
 * Not cause data loss, or corruption;
 * Pass basic interoperability with other Beta Features features; and
 * Contribute positively to the user's experience of the site, and be additive in nature. e.g. Beta Features cannot be used to remove site features or functionality without adding features meant to replace what was removed.

If you're happy your code meets these requirements, you should write-up your proposal on the new-features>Beta Features/New Features|New Features proposal page. As part of creating the Beta Feature, you will be asked for package>Beta Features/Package|some text copy and an image to represent your feature in the user interface; the Design and Product teams can help you with this.

Appearance
The appearance of the Beta Features tab in Preferences is purposefully different, to both inspire interest and propose a departure from the standard layout and complexity of the existing user preferences.

Here is a screenshot of the Beta Features preferences tab: