Loading
Install VueApollo in Geo replicables entry modules
What does this MR do and why?
Adds Vue.use(VueApollo) to the entry modules of these Geo replicables pages:
pages.admin.geo.replicables.indexpages.admin.geo.replicables.show
Both modules create new VueApollo(...) but never install the plugin.
- On Vue 2 this works, because another bundle on the page installs VueApollo globally.
- On Vue 3, each page bundle has its own copy of the VueApollo adapter. That copy stays inactive until the bundle installs it, so
$apollois undefined. The Organizations pages broke this way and were fixed in !259575 (merged).
Neither page is in the Vue 3 rollout yet. This MR removes the problem before they move.
How the pages were found
I ran a dependency-cruiser analysis of the full frontend import graph:
- For each page entrypoint, it collects the modules of the Vue 3 bundle: the ancestor page
index.jsfiles plus the page's ownindex.js.mainstays on Vue 2, so it does not count. - It reports a
new VueApollo(...)that has noVue.use(VueApollo)in the same chunk or a parent chunk. - When run against the sources from before !259575 (merged), it flags exactly the 9 Organizations pages that MR fixed.
- On current
master, it flags only these 2 Geo pages. After this change, it flags none.
Screenshots or screen recordings
None. The change has no visible effect on Vue 2. The pages are not on Vue 3 yet.
How to set up and validate locally
- Set up Geo with a secondary site.
- Go to Admin > Geo > Sites and open the replicables list for the secondary site.
- Confirm the list loads.
- Select an item and confirm the detail page loads.
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.
References
- Same bug class as !259575 (merged)
- Earlier fix for list pages: !255534 (merged)
Edited by Miguel Rincon