Enable Vue 3 rollout for the custom emoji page
What does this MR do and why?
Opts the group custom emoji entrypoint into the Vue 3 migration mechanism behind vue3_migrate_custom_emoji, following the vue3_migration.yml flow in the frontend guide.
The entrypoint schedules initCustomEmojis and nothing else, so Option 1 applies cleanly and the flag does not reach any other team's app.
References
Closes #611454
Parent epic: gitlab-org#23167 Pattern followed: !247789 (merged) Docs: https://docs.gitlab.com/development/fe_guide/vue3_migration/
Differences
Before: the entrypoint had no vue3_migration.yml, so it built only a Vue 2 chunk and Rails served it as Vue 2.
After: it declares status: rollout with vue3_migrate_custom_emoji. The bundler emits a ?vue3 sibling, and Rails serves the Vue 3 bundle when the flag is enabled for the current user. With the flag off, nothing changes.
How to set up and validate locally
- Confirm the entry is picked up and valid:
node -e "const {rolloutEntries,loadVue3Migrations}=require('./config/vue3migration/migration');
console.log(JSON.stringify(rolloutEntries(loadVue3Migrations()),null,2))" | grep -A2 custom_emoji
pages.groups.custom_emoji appears with feature_flag: vue3_migrate_custom_emoji. The loader validates every file in the tree against config/vue3migration/migration_schema.js, so this also proves nothing else broke.
yarn jest spec/frontend/config/vue3migration/— 17 tests, 2 suites.- In GDK,
gdk restart vite, enable the flag, open Group, Settings, Custom emoji. Expect[gitlab] [V] Using Vue.js 3 (with @vue/compat) for ...and a match fromdocument.querySelectorAll('[data-gitlab-vue3-app]'). Then add and delete a custom emoji.
What I verified and what I did not
Steps 1 and 2 I ran. Step 3 I could not: I have no GDK environment, so the page has not been loaded under Vue 3 and the workflows have not been smoke tested. The change is one metadata file and a flag definition, with no runtime code, and the flag defaults to off. Flagging it rather than ticking the box.
introduced_by_url is intentionally blank so the config_files Danger rule can suggest this MR's own URL.
MR acceptance checklist
-
vue3_migration.ymladded for the entrypoint, withstatus: rolloutand a feature flag - Feature flag file created
- File validated through the project's own loader and schema
- Page verified running under Vue 3 locally — not done, no GDK, see above
- Key workflows smoke tested — not done, no GDK, see above
- Conforms to the code review guidelines