On Wed, Jan 25, 2012 at 7:35 AM, Rob Lanphier robla@wikimedia.org wrote:
A couple of relevant bugs: Bug 33711 - mw.util.$content is undefined in MediaWiki:Common.js https://bugzilla.wikimedia.org/show_bug.cgi?id=33711
Bug 33746 - Resource Loader should pre-depend on mw.util https://bugzilla.wikimedia.org/show_bug.cgi?id=33746
Roan should be weighing in on these soon. My understanding is that he plans to add the necessary dependency to make this work.
These were fixed a little while ago by loading mw.util and its dependencies early. This means that any JS that uses mw.util but doesn't explicitly declare this dependency will continue to work, because mw.util will be one of the first things to be loaded (before any on-wiki JS) and will always be loaded regardless of whether any module indicates they need this or not. However, ideally people shouldn't rely on this behavior (it probably won't be this way forever, as we'll try to get rid of these early-loading privileges where we can), and should always list all dependencies a gadget or user script uses.
The following modules are loaded early and are always present: mediawiki.page.startup mediawiki.legacy.wikibits mediawiki.legacy.ajax (pending merge of r111034 into 1.19) mediawiki.util (listed separately, but would be loaded anyway because page.startup depends on it)
Additionally, the following modules are also loaded early and always because one of the three modules above depends on them: jquery.client (dependency of mw.page.startup and mw.util) jquery.cookie (dependency of mw.util) jquery.messageBox (dependency of mw.util) jquery.mwExtension (dependency of mw.util)
You should rely even less on this second set of modules being magically present, because these dependencies might be factored out and disappear unannounced.
I believe this should address everyone's concerns about JS breakage in 1.19 (I've put in workarounds for every kind of breakage I've seen or could think of), but if there are any outstanding issues or concerns feel free to talk to me on-list or off-list.
Roan