Page MenuHomePhabricator

Update Vue to 3.3.x
Closed, ResolvedPublic2 Estimated Story Points

Description

Vue 3.3 was released in mid-May, and the latest version is now 3.3.8. We are still using 3.2.37, which is a year old.

  • Update Vue version in Codex
  • Update Vue version in MediaWiki core
  • Update Vue version in LibraryUpgrader config

Event Timeline

Restricted Application added a subscriber: Aklapper. · View Herald Transcript

Change 978146 had a related patch set uploaded (by Jforrester; author: Jforrester):

[mediawiki/core@master] resources: Upgrade Vue from v3.2.27 to v3.3.9

https://gerrit.wikimedia.org/r/978146

Change 978146 merged by jenkins-bot:

[mediawiki/core@master] resources: Upgrade Vue from v3.2.27 to v3.3.9

https://gerrit.wikimedia.org/r/978146

Change 978712 had a related patch set uploaded (by Eric Gardner; author: Eric Gardner):

[design/codex@main] deps: Update Vue to v3.3.9

https://gerrit.wikimedia.org/r/978712

Change 979430 had a related patch set uploaded (by Eric Gardner; author: Eric Gardner):

[design/codex@main] deps: Update Vue to 3.3.9 and lock key package versions

https://gerrit.wikimedia.org/r/979430

Change 978712 abandoned by Eric Gardner:

[design/codex@main] deps: Update Vue to v3.3.9

Reason:

Abandoned in favor of https://gerrit.wikimedia.org/r/c/design/codex/+/979430

https://gerrit.wikimedia.org/r/978712

Change 979430 merged by jenkins-bot:

[design/codex@main] deps: Update Vue to 3.3.9 and lock key package versions

https://gerrit.wikimedia.org/r/979430

Change 980017 had a related patch set uploaded (by Jforrester; author: Jforrester):

[labs/libraryupgrader/config@master] releases: Bump Vue from 3.2.37 to 3.3.9, drop compat

https://gerrit.wikimedia.org/r/980017

Jdforrester-WMF updated the task description. (Show Details)

Change 980017 merged by jenkins-bot:

[labs/libraryupgrader/config@master] releases: Bump Vue from 3.2.37 to 3.3.9, drop compat

https://gerrit.wikimedia.org/r/980017

Change 980902 had a related patch set uploaded (by Anne Tomasevich; author: Anne Tomasevich):

[mediawiki/core@master] Update Codex from v1.0.1 to v1.1.1

https://gerrit.wikimedia.org/r/980902

Test wiki created on Patch demo by ATomasevich (WMF) using patch(es) linked to this task:
https://patchdemo.wmflabs.org/wikis/d419984345/w

Change 980902 merged by jenkins-bot:

[mediawiki/core@master] Update Codex from v1.0.1 to v1.1.1

https://gerrit.wikimedia.org/r/980902

I'm uncertain where to seek clarification. Could you please share on a MediaWiki/Wikitech page the strategy for Vue, which serves for much of the client-side now with Codex? Found nothing on https://www.mediawiki.org/wiki/Vue.js

Does the WMF adhere to specific guidelines when updating dependencies? For instance, why opt for version 3.3.9 instead of the last 3.3.11 minor version? Additionally, when does the WMF plan to integrate Vue v3.4 into core (only one year after the release of v3.5 to seek stability)?

This is less a problem when developing in-wiki gadget, but currently I am building a community website on Toolforge and the minor version of Vue used mismatch the one used with Nuxt by example. No breaking changes for the moment, but I would like to weight the risks. And since Codex is using the same Vue version than MediaWiki core one...

https://github.com/vuejs/core/releases/tag/v3.3.9 - Nov 25, 2023
https://github.com/vuejs/core/releases/tag/v3.3.10 - Dec 4, 2023
https://github.com/vuejs/core/releases/tag/v3.3.11 - Dec 8, 2023

For instance, why opt for version 3.3.9 instead of the last 3.3.11 minor version?

Based on the rough timeline, 3.3.11 wasn't released when vue.js was bumped in MediaWiki core (Nov 28/29, 2023), and when design/codex was done (Dec 2/4, 2023), v3.3.10 possibly wasn't released (depending on time of day), but it is very likely the design/codex patch was done to purposefully match the version in MediaWiki core, as upgraded a week or so before.

I'm not sure why you also refer to 3.3.11 as being the "last minor version" - https://github.com/vuejs/core/releases/tag/v3.3.13 was released Dec 19, 2023, 2 months before your comment.

My bad for the last minor, I quoted the one just before the release of 3.4.0-beta.1.

Do you have more informations about when they bump external dependencies upgrades in core? Or it is just like a feeling? 😁

Upgrading always take some time, even for a minor version. For some like in MediaWiki core, it's pretty trivial as can be seen in https://gerrit.wikimedia.org/r/c/mediawiki/core/+/978146 but https://gerrit.wikimedia.org/r/c/design/codex/+/979430 required other changes/

There's definitely no defined pattern to it.

If you need a newer version, you're more then welcome to create tasks requesting them, and you're also allowed to submit patches. It doesn't guarantee anything will necessarily happen "quickly", but every little helps.

If people don't raise that they're having issues, especially outside our direct ecosystem, it's hard for people to know they're there.

Also, it seems that @egardner sees into the future. He had already planned interventions like mine. https://gerrit.wikimedia.org/r/c/design/codex/+/978712/1/packages/codex/package.json#86

That is more explicitly pinning things, which in theory makes things less flexible and more strict for some use cases, but also brings other benefits that the package should work/be tested with that version.

Patch and minor releases shouldn't break things, but they inevitably do...

No misunderstanding: I was just asking the questions to find out what the WMF thought about it! I am not sure that volunteers patches to update external dependencies would be appreciated by the WMF staff ; it's a bit of an interference for my taste, and it seems even less trivial to touch mediawiki/core. Updating now to 3.4 seems a bad idea, but 3.3.13 should be good. Not sure about my capacity about sending patches, MediaWiki ecosystem is big and scary.

And for the team behind Codex, I've already bothered them to broaden their view about external uses. 😁

We will happily accept those sorts of patches.

It's possible to verify the commit is good (based on the files "upstream"), so it's hardly an issue.

Hi @Lofhi – we (the WMF Design System Team) don't have a formal policy around Vue updates but our intent is to periodically bump the version of Vue used in both MW Core and in Codex to the latest stable version. This is something we expect to do maybe 2-4x per year. We pin to exact versions (no ^) for runtime dependencies like this.

As @Reedy says, if a new patch version of a library like Vue fixes a bug you are dealing with, feel free to submit a patch and we'll gladly review. Vue 3.4 just came out at the end of last year; we will probably adopt it at some point this year but it's not on our roadmap right now. It does look like v3.4 includes some improvements to the in-browser template compiler (a feature we rely on here).

Test wiki on Patch demo by ATomasevich (WMF) using patch(es) linked to this task was deleted:

https://patchdemo.wmflabs.org/wikis/d419984345/w/