Migrate DevOps Adoption to Vue 3

Migrate the DevOps Adoption page entrypoint(s) to Vue 3 behind a feature flag.

Docs: DevOps Adoption

Scope

This issue covers only the flag-gated rollout switch from Option 1 of the Vue 3 migration guide: add a single feature flag, add a vue3_migration.yml per entrypoint, and smoke test the affected pages. Full Vue 3 compliance (fixing compatibility issues, migrating unit tests) is not required here. Capture anything found during smoke testing in follow-up issues instead.

Implementation plan

1. Add the feature flag

Create vue3_migrate_devops_adoption using bin/feature-flag:

  • type: beta, default_enabled: false, group: group::optimize
  • Read the milestone value from the VERSION file
  • Set feature_issue_url to this issue
  • Use user as the feature flag actor during rollout
  • Create a rollout issue from the "Feature Flag Roll Out" template and link it as rollout_issue_url
  • Link the rollout issue to the parent epic gitlab-org&23041

2. Add a vue3_migration.yml per entrypoint

Create this file next to each index.js listed below:

status: rollout
feature_flag: vue3_migrate_devops_adoption
group: group::optimize
migration_issue: https://gitlab.com/gitlab-org/gitlab/-/issues/607824

Entrypoints:

  • ee/app/assets/javascripts/pages/groups/analytics/devops_adoption/index.js (EE, group level)
  • ee/app/assets/javascripts/pages/admin/dev_ops_report/show/index.js (EE, admin DevOps Report)

Note: The admin DevOps Report page also loads the CE app/assets/javascripts/pages/admin/dev_ops_report/index.js bundle (DevOps Score). Compat hybrid mode supports Vue 2 and Vue 3 apps on the same page, so the Score app can stay on Vue 2 for now, or be included in the same MR if that turns out to be simpler.

3. Document existing test coverage in the MR

  • Add a section to the MR description listing which functionality of the feature is currently tested and where those tests are located, as in this example

4. Smoke test

Enable the flag locally and confirm the browser console logs [gitlab] [V] Using Vue.js 3 on each page, then verify the key workflows:

  • Group: Dev, Sec, and Ops adoption tables render
  • Group: add and remove a sub-group or project from the table
  • Admin: the Adoption tab renders alongside the DevOps Score tab

5. Follow-ups

  • Open follow-up issues for any Vue 3 compatibility problems found during smoke testing and link them here

References

Edited by 🤖 GitLab Bot 🤖