[FF] preferences_tabs -- Organize the user preferences page into tabs

Everyone can contribute. Help move this issue forward while earning points, leveling up and collecting rewards.

Summary

Roll out the tabbed user preferences page, introduced in !257460 (merged), which is behind the preferences_tabs feature flag (type gitlab_com_derisk).

What could go wrong?

The flag controls only the tab navigation on /-/profile/preferences. With the flag disabled, the same sections render on one page, so no setting becomes unreachable and no data is affected. The risk is client-side: deep links from other pages (for example the Web IDE and the GitLab Duo namespace alert) must open the right tab, native form validation must switch to the tab holding the invalid field, and the settings search must show matches from every tab.

Rollout

Follow the standard incremental rollout process with ChatOps in #production: enable on non-production environments first, then roll out to GitLab.com by percentage of actors, waiting at least 15 minutes between steps, or target gitlab-org and gitlab-com first.

Before global rollout

  • Docs and version history updated: the history note and flag alert in doc/user/profile/preferences.md
  • No breaking changes
  • No change management issue needed: the flag is UI-only and reversible

Cleanup

Once the flag has been enabled on GitLab.com and deemed stable, remove the flag check from app/views/profiles/preferences/show.html.haml, the else branch that renders the sections without tabs, the flag-disabled view and feature specs, and config/feature_flags/gitlab_com_derisk/preferences_tabs.yml; then update the docs history and delete the flag from all environments.

Rollback

Disable the flag on production with ChatOps. The page returns to the single-page layout immediately, with no data migration involved.

Edited by 🤖 GitLab Bot 🤖