[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).
- DRI: @sikim5
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.