Vue 3 migration: Project management entry points
## Summary
This epic tracks the Vue 3 migration of every page entrypoint owned by `group::project management`, as part of the parent epic gitlab-org&23003. 🗂️
Each entrypoint moves through three states:
1. **Vue 2** 🔴 no `vue3_migration.yml` sibling file, the page builds and serves Vue 2 only.
2. **Rollout** 🟡 `status: rollout`, both the `<entry>` and `<entry>.vue3` bundles are built and a feature flag decides which one is served at request time.
3. **Migrated** 🟢 `status: migrated`, Vue 3 builds under the original entry name and the feature flag is gone.
Migration steps per page are documented in the [Vue 3 migration guide](https://docs.gitlab.com/development/fe_guide/vue3_migration/#option-1-recommended-migrate-your-page-entrypoint-using-a-feature-flag-and-vue3_migrationyml).
## Status at a glance 📊
| State | Entrypoints | Share |
| :--- | ---: | ---: |
| 🟢 Migrated | 0 | 0% |
| 🟡 Rollout | 7 | 21% |
| 🔴 Vue 2 | 27 | 79% |
| **Total** | **34** | |
## 🟡 On rollout (7)
All seven sit behind a single feature flag, `vue3_migrate_work_items`.
| Entrypoint | Page |
| :--- | :--- |
| `pages.projects.work_items` | Project work items list and detail |
| `pages.groups.work_items` | Group work items list |
| `pages.groups.work_items.show` | Group work item detail |
| `pages.projects.issues.show` | Issue detail (CE and EE files, kept identical) |
| `pages.projects.issues.service_desk` | Service Desk list |
| `pages.projects.saved_views.show` | Project saved views |
| `pages.groups.saved_views.show` | Group saved views |
Feature flag details:
- Definition: `config/feature_flags/beta/vue3_migrate_work_items.yml`, `type: beta`, `default_enabled: false`, milestone 18.11.
- Introduced by gitlab-org/gitlab!228419.
- Rollout issue: gitlab-org/gitlab#594426, currently open with every rollout step still unchecked. ⏳
This means the pages above still serve Vue 2 by default everywhere, and Vue 3 is reachable only where the flag has been switched on manually.
## 🟢 Migrated (0)
Nothing has reached `status: migrated` yet. This is true across the whole codebase and not specific to Project Management, so we are the first stage that can get a page over the line once #594426 completes. 🚀
## 🔴 Not started (27)
### Dashboards (5)
- [ ] `pages.dashboard.issues`
- [ ] `pages.dashboard.work_items`
- [ ] `pages.dashboard.todos.index`
- [ ] `pages.dashboard.milestones.index`
- [ ] `pages.dashboard.milestones.show`
### Milestones (8)
- [ ] `pages.groups.milestones.index`
- [ ] `pages.groups.milestones.new`
- [ ] `pages.groups.milestones.edit`
- [ ] `pages.groups.milestones.show`
- [ ] `pages.projects.milestones.index`
- [ ] `pages.projects.milestones.new`
- [ ] `pages.projects.milestones.edit`
- [ ] `pages.projects.milestones.show`
### Labels (9)
- [ ] `pages.groups.labels.index`
- [ ] `pages.groups.labels.new`
- [ ] `pages.groups.labels.edit`
- [ ] `pages.projects.labels.index`
- [ ] `pages.projects.labels.new`
- [ ] `pages.projects.labels.edit`
- [ ] `pages.admin.labels.index`
- [ ] `pages.admin.labels.new`
- [ ] `pages.admin.labels.edit`
### Iterations (2)
- [ ] `pages.groups.iteration_cadences`
- [ ] `pages.projects.iteration_cadences`
### Settings (3)
- [ ] `pages.groups.settings.work_items.show`
- [ ] `pages.projects.settings.work_items`
- [ ] `pages.admin.application_settings.work_item`
## Next steps ✅
1. Complete the rollout of `vue3_migrate_work_items` on non production and then production by following gitlab-org/gitlab#594426.
2. Once the flag has been enabled globally and has soaked, flip the seven `vue3_migration.yml` files to `status: migrated` and remove the flag.
3. Group the 27 remaining entrypoints into batches by feature area, then open one feature flag and one rollout issue per batch and link them here as children.
## Notes 📝
Scope here is Project Management only. Issue boards (`pages.projects.boards` and `pages.groups.boards`), epic boards, roadmaps and requirements sit with `group::product planning`, and wikis sit with `group::knowledge`, so those belong in sibling epics under gitlab-org&23003. Todos is listed above on the assumption that Project Management owns it, so please move it out if that is not correct. 🙏
epic