Problem/Motivation
jQuery versions older than 3 are end of life.
Before we can update to jQuery 3, we need to update to jQuery UI 1.12.* because the version we're on at the moment (1.11.*) was released before jQuery 3 was available and isn't 100% compatible.
Proposed resolution
Update jQuery ui, need latest version with this patch: https://github.com/jquery/jquery-ui/pull/1751 because of https://bugs.jqueryui.com/ticket/15052#ticket
Since the compile+split is not officially supported we might want to ship the whole thing at once. Makes it easier for maintainance.
This version only supports IE11 btw.
Remaining tasks
User interface changes
API changes
Data model changes
Comments
Comment #2
effulgentsia commentedMore detail on this in https://blog.jqueryui.com/category/releases/. From there:
I'm not sure what that means yet in terms of our ability to upgrade, so tagging for framework manager review. Until we officially change our browser support matrix via #2390621: [policy, no patch] Update Drupal's browser support policy or a similar issue, https://www.drupal.org/docs/8/system-requirements/browser-requirements still says that IE9 is "a browser that is known to work well with Drupal 8 and support all of its features". If jQuery UI 1.12 still in fact retains all of the workarounds for IE9 and IE10 per above, then potentially we're okay to upgrade to it even if official support from jQuery UI is dropped. Though we might be putting ourselves at risk in terms of future patch releases of 1.12.x.
Comment #4
effulgentsia commentedWhile #2842298: [policy, no patch] Drop IE9 and IE10 support from Drupal 8.4.x is still under discussion, no one there has expressed concerns with doing the jQuery UI update. I discussed this issue with the framework and release managers, and all are in favor of it.
Per https://www.drupal.org/core/d8-allowed-changes#beta, this can go into 8.3 up until RC, but if people here are able to get it ready by Monday, it would be awesome to have it land before beta1, and thereby get wider testing during the beta phase.
Raising to Major, because AFAICT, jQuery UI does not release patch releases (even for critical bug fixes) for outdated minors, so we pretty much have to get onto the latest minor.
Comment #5
wim leersUpdated the libs definitions. It was less painful than I expected. :)
Comment #6
wim leersThis needs manual testing of at least the following four:
Comment #8
andypostwhy 1.12 instead of 1.12.1?
EDIT https://blog.jqueryui.com/2016/09/jquery-ui-1-12-1/
Comment #9
effulgentsia commentedLooks like what's actually in the patch is 1.12.2-pre, which probably means wherever the branch tip was when the initial patch for this issue was made, which was on 2016-09-30. That's not good. We need a tagged release. Either 1.12.0 or 1.12.1 would be fine, since we can always do patch-level updates later, but since this needs to be rerolled anyway, I see no reason not to just get onto the latest one now.
Comment #10
xjmLots of JS tests failing also, which would seem germane here.
Comment #11
xjmMarking explicitly for the RC deadline. Thereafter it would probably be 8.4.x-only given that it's a minor update and apparently has some disruption for us. Thanks!
Comment #12
andypostbtw according #1341792: [meta] Ship minified versions of external JavaScript libraries
all files should be minified
Comment #13
sergeimalyshev commentedPatch for 1.12.1.
Unfortunately I did not find the minimized js files, so they were compressed manually via https://jscompress.com/
Comment #14
sergeimalyshev commentedComment #16
effulgentsia commented8.3 RC is approaching fast (commit freeze for it will be early next week). Anyone have insight into #13's test failures?
Comment #17
xjmLet's keep this filed against 8.3.x until RC so we don't lose track of it. If it does not land by Feb. 28 we can move it back to 8.4.x. Note that it's possible to attach 8.4.x test runs to a patch even if the issue is filed against 8.3.x. Thanks!
Comment #18
xjmSince 8.3.x is now in commit freeze for its release candidate phase, this minor version dependency update should now be targeted for 8.4.x. Thanks!
Comment #19
gnugetI will work on this.
new patch in my next comment.
David.
Comment #20
gnugetHi!
I won't provide an interdiff because it is almost as big as the patch itself, I think is better start fresh.
We need to take some decisions before to merge this because jquery ui 1.12.1 has some changes that will require updating the way how we use it.
In particular on this https://jqueryui.com/upgrade-guide/1.12/#split-core-js-into-small-modules:
And this https://bugs.jqueryui.com/ticket/15028:
So, we have two options now, create a library per every new smaller module and deprecate
jquery.uior do what I did it on this patch, basically instead to load the
core-min.json the jquery.ui library load all the smaller modules contained on that file, something like this:other changes worth to mention:
Let me know what you think about the jquery.ui library.
Thanks.
Comment #21
gnugetComment #23
gnugetThe first error was a typo in my side (duh!) and the second one is that jquery ui now use the unicode space character (\x00a0) instead to an empty string so I updated the test.
Let's see if I can make happy the testbot this time.
David.
Comment #24
catchBumping this to critical because it blocks #2533498: Update jQuery to version 3 assuming we do them as separate patches. My understanding is we can do them together, or jQuery UI first, but not jQuery 3 first.
Comment #25
catchThere's a short mention of jQuery UI in the 3.0 release announcement: https://blog.jquery.com/2016/06/09/jquery-3-0-final-released/
Comment #26
cilefen commentedAs always, thank you for the hard work on this.
@xjm, @alexpott, @effulgentsia, @lauriii, @catch and I discussed this issue at a recent meeting and agreed that since this is blocking a critical, it should remain critical. If we run into issues upgrading UI, we should think about opening a jQuery migrate issue. Either this issue or the other will be critical so long as it is blocking #2533498: Update jQuery to version 3.
Comment #28
manuel garcia commentedReroll of #23.
Comment #29
manuel garcia commentedI did a bit of manual testing, on ckeditor configuration, which makes use of dialogs i think. See the gif attached, looks ok to me.
At the end the form fails to save, throwing
Drupal\Core\Entity\EntityStorageException: 'editor' entity with ID 'basic_html' already exists.. That isn't related to jquery ui though, its a known bug: #2701393: Switching between editors on the format configuration causes errors upon saveStill needs manual testing on quickedit and autocomplete as per #6
Comment #30
manuel garcia commentedHere's a recording of testing quickedit on an article on the frontpage, everything seems to be working. Mind you that the autocomplete works for selecting the user within quickedit.
Comment #31
manuel garcia commentedAnd here a recording of testing the autocomplete for the article tags field. Also working fine.
Leaving the Needs manual testing tag in place in case we can come up with other things to test, let me know =]
Comment #32
amateescu commentedThe animations of the manual testing and the patch looks great, let's do this :)
Comment #33
wim leersIt'd be great if somebody could apply #2828528: Add Quick Edit Functional JS test coverage plus this patch and confirm that it's passing. That's adding JS tests for Quick Edit, but due to testbot problems, that's not been committed yet :(
Comment #34
manuel garcia commented@Wim Leers: Applied both patches, and ran the new test plus the modified QuickEditImageTest:
QuickEditImageTest:
QuickEditIntegrationTest:
Comment #35
manuel garcia commentedComment #36
wim leers#34: ❤️ Thank you so much!
Comment #37
wim leersGiven the manual testing in #30 + #31 by @Manuel Garcia and in #32 by @amateescu — let's get this in!
Any remaining problems can be surfaced during the alpha phase.
Comment #38
GrandmaGlassesRopeMan🚀🎉👏
Comment #39
tedbowTested this out in relation to Settings Tray module. It extensively uses the JQuery UI dialogs.
We have a lot of JS testing of the module and it still passes so that is good sign!
I did some manual testing to see if there any other changes.
I did notice 1 small visual change. The edge of the tray after update has small white line.
Pre update, no white line

Post update, thin white line

Otherwise didn't notice any changes.
Comment #40
catchGreat to see this RTBC. Anything that comes up we should be able to resolve during alpha or roll back if we really have to, but wider testing seems like the best way to keep going with this.
Committed/pushed to 8.4.x, thanks!
Comment #42
wim leersYay! That unblocks #2533498: Update jQuery to version 3! Updated #2885090: JS Roadmap for 8.4 too.
Comment #43
gnugetThanks all for the help testing this. :-)
Comment #44
xjmComment #46
droplet commentedWe introduced a major bug:
[2926155]
Comment #47
cilefen commented