As of Codex 0.12.0, we have enough components in place to be able to migrate the Commons Special:MediaSearch page over to the new component library. This should be a very minor change from the perspective of users (in fact, many of the home-brewed Structured Data components used here went on to serve as the starting point for the equivalent Codex components) – there may be minor cosmetic shifts, but these will bring the feature more in line with the design system.
Despite the small user-facing impact, this work is important because MediaSearch is one of the last production features that still relies on the Vue 3 Compatibility build. Migrating MediaSearch to use Codex will improve UI consistency but it will also get us closer to where we can ship regular Vue 3 (w/o the compat build) everywhere in MediaWiki – an important task in terms of performance/tech debt.
Next Steps
- Migrate the MediaSearch "base" components to Codex and disable "compatibility mode" in all Vue components in the project (so that the feature runs with full Vue 3 behavior).
- DST performs internal review of the resulting patches, verifying that things work as expected
- See here for the latest in the chain of patches that does this; this code is ready for review
- Perform manual testing of the migrated UI to ensure there are no regressions
- Some minor visual changes are expected (mostly spacing adjustments); this is fine and brings things more in line with the design guidelines overall
- This patchdemo instance stages the patch above and can be used for manual QA, but some MediaSearch features rely on on-wiki configuration that's not present here
- Any significant bugs have been filed as Phab tasks and addressed, either in MediaSearch or upstream in Codex. List them below as they surface:
- Merge and deploy the migration patches to production, checking errors in LogStash and reverting if necessary
- The migration patches are handled as a chain of incremental changes for ease of review, but if desired we could squash into a single commit (easier to revert) before merging