This scope of this tracking task is somewhat specific to Wikimedia, however the sub tasks that resolve this use case will benefit all MediaWiki installs.
When upgrading a wiki from one wmf-branch to the next, we currently invalidate almost all static caches for front-end resources.
- Server-side HTTP response cache (Varnish).
- Client-side HTTP response cache (Web browsers, proxies).
- Client-side module storage (e.g. HTML5 Storage, see ResourceLoader#Client storage).
Source of invalidation:
- Bad input for file module definition hashes:
- T104950: File module versions bump due to increase of timestamps (new git clone)
- Stylesheet content changes due to use of timestamps in CSSMin.
- Inclusion of localBasePath (absolute path on-disk that contains the MediaWiki branch version).
- Inclusion of remoteBasePath (absolute url that contains the MediaWiki branch version).
- T99096: /static-{branch} urls to mount static files. The branch changes each deployment. Ironically, these are currently cached too long (T99096). We need to find a way to cache them even longer, and bypass it when they change.
- LocalisationUpdate: Invalidates message cache every time and bumps the timestamp. Invalidates all modules with one or more messages.
- ..
Example: Graph showing impact of deploying a new MediaWiki branch to Wikipedias on ResourceLoader caching of each week over the past month.