Remove project_general_settings_vue feature flag

What does this MR do and why?

Removes the project_general_settings_vue feature flag. The flag was rolled out to all users on GitLab.com on 2026-08-28 (see rollout issue #608582 (closed)), so the Vue-based project general settings form (naming, description, topics, avatar) becomes the only implementation.

Introduced by !236849 (merged).

Closes #608582 (closed)

Changes

  • Delete config/feature_flags/gitlab_com_derisk/project_general_settings_vue.yml
  • app/views/projects/settings/_general.html.haml: always render the #js-project-general-settings Vue mount point; drop the legacy HAML form
  • app/assets/javascripts/pages/projects/edit/index.js: always mount the Vue app; remove the legacy initTopicsTokenSelector / initProjectNameValidation wiring. dirtySubmitFactory keeps targeting .js-mr-settings-form only (same as the flag-on path)
  • Remove now-unused code:
    • app/assets/javascripts/projects/settings/topics/index.js (the TopicsTokenSelector component itself is kept, it is used by the Vue form)
    • initProjectNameValidation from app/assets/javascripts/projects/project_name_validation.js (validateProjectName is kept, it is used by project_new.js)
    • app/views/projects/_classification_policy_settings.html.haml (only rendered by the legacy form; the Vue form gets this data via project_general_settings_data)
  • Specs:
    • Remove the view specs that stubbed the flag off to test the legacy registration features prompt (CE + EE)
    • Add helper spec coverage for show_repository_size_limit_cta in #project_general_settings_data
    • Remove initProjectNameValidation Jest specs

Kept on purpose: shared/_repository_size_limit_setting_registration_features_cta and shared/_repository_size_limit_setting are still used by group general settings.

QA page objects (qa/qa/page/project/settings/main.rb) already point to project_general_settings.vue, so no QA changes are needed.

Checklist before marking ready

  • Regenerate locale/gitlab.pot (tooling/bin/gettext_extractor locale/gitlab.pot) in case any strings were only used by the removed HAML form (e.g. Classification Label (optional), Save changes for naming, description, topics)
  • Confirm that the EE registration features settings link is still covered (previously renders registration features settings link in the EE view spec) by the Vue component spec
  • Pipeline green

How to set up and validate locally

  1. Go to Settings > General for any project (e.g. https://gdk.test:3000/flightjs/Flight/edit)
  2. Verify the Naming, description, topics section renders with the Vue form, and that editing name, description, topics and avatar works and saves.

MR acceptance checklist

Evaluate this MR against the MR acceptance checklist.

Edited by Sascha Eggenberger

Merge request reports

Loading
Loading