Remove frontend islands infrastructure
What does this MR do and why?
Frontend islands (ee/frontend_islands/) was a separate Vue 3 and TypeScript workspace. It was meant for building parts of the UI outside the Vue 2 monolith. Duo Next was its only app. After !259424 (merged), nothing in GitLab loads it.
This MR depends on !259424 (merged).
The islands jobs ran in pipelines for every frontend change. The asset build also ran the islands build first. All of that was for code that no longer ships. Removing it shortens frontend pipelines and speeds up local yarn webpack and dev-server startup.
This MR deletes the workspace and everything that builds, lints, tests, and caches it:
ee/frontend_islands/: the workspace, theduo_nextapp, and the shared configs.- Scripts:
build_frontend_islands,install_frontend_islands,fe_islands_ci_shared.rb,update_fe_islands_ci.rb,validate_fe_islands_ci.rb,lib/frontend_islands_sha.rb, and their specs. - CI jobs:
compile-fe-islands,test-fe-islands,type-check-fe-islands,validate-fe-islands-ci, the.eslint:fe-islandstemplate,untamper-fe-islands-lockfile,cache:fe-islands-hash, andcache:fe-islands-node-modules. Their caches, rules, and change patterns are removed too. - The
needs:oncompile-fe-islandsfrom asset compilation, Jest, ESLint, bundle-size review, and per-test coverage jobs. - The
scripts/build_frontend_islands &&prefix from the yarn webpack, rspack, vite, and dev-server scripts inpackage.json. - The Vite prebuild plugin and the
fe_islandswebpack and Jest alias. - The custom-element allowlists (Vue
ignoredElements, the Vue 3 compiler, ESLint, Jest). - The lefthook hooks,
.prettierignoreentries, and CODEOWNERS entries.
Pipeline impact:
- Removed jobs:
compile-fe-islands,test-fe-islands,type-check-fe-islands,validate-fe-islands-ci,untamper-fe-islands-lockfile,cache:fe-islands-hash, andcache:fe-islands-node-modules. - Removed the
needs:oncompile-fe-islandsfrom the jobs that listed it. - No new jobs were added.
Notes for reviewers:
- Frontend islands was a deliberate architecture direction (see #577797). Removing it should be agreed by the frontend maintainers and group::ai framework. If the plan is to add another island soon, this MR may be closed and only !259424 (merged) merged.
.gitlab/ci/frontend/test-base.gitlab-ci.ymlnow declaresneeds: []. The key stays because several jobs pull it in with!reference [.frontend-test-base, needs]. In EE pipelines,test-lintersandtest-vue3migration-toolingused to wait forcompile-fe-islandsand now start right away. That is harmless and slightly faster.doc/development/fe_guide/frontend_goals.mdkeeps its Vue 2.x status line without the islands clause.- If you have ever built the island locally, run
rm -rf ee/frontend_islandsafter pulling this change. Its.gitignoreis deleted, so a leftoverdist/main.jsshows up as untracked and failsspec/dot_gitlab_ci/rules_spec.rblocally. CI is not affected.
References
- Blocked by: omnibus-gitlab!9937 (merged) (Omnibus package builds fail once
ee/frontend_islands/is gone) - Depends on: !259424 (merged)
- Frontend islands direction: #577797
- Duo Next feature issue: #568101 (closed)
Screenshots or screen recordings
Not applicable. There is no visual change.
How to set up and validate locally
- Run
yarn webpack, or start the GDK frontend dev server. Confirm it starts without running the islands build. - Open the Duo Agentic Chat panel and confirm it still renders.
MR acceptance checklist
Evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.