Background in #3166985: [Proposal] provide supported / recommended jQuery versions for Security coverage.
We're now preparing for a stable release from the 7.x-4.x branch which will then be the only supported release for the module.
Remaining tasks (not necessarily in priority order):
- #3308166: add automated tests
- #3311834: remove unsupported JS libraries
- #2197253: Update jQuery UI to the latest version (1.13)
- #3312106: verify that Custom paths are correctly marked as external or not
- #3312151: improve jQuery Update's latest version checks
Overall, adding test coverage is great (and has already proved useful when e.g. removing old versions of libraries). However, achieving anything close to complete test coverage is probably unlikely and does not need to block a release.
I'd initially planned to retain all of the old library versions but specifically mark a small subset of versions as "supported".
On reflection, I think it's better to strip out as much as possible - this practically means removing anything that was not going to be marked as supported.
Any sites that really need to restore old / unsupported versions can do so via the Custom path functionality either via a CDN or local copies. Ideally I'd hope most sites can use one of the small number of "supported" versions though.
jQuery UI is an interesting problem. As per recent comments in #2197253: Update jQuery UI to the latest version (1.13) around a year ago the project somewhat unexpectedly issued a new release that fixed some security issues, and there was some suggestion that this would be the "final release". However, there have been at least two more point releases since then.
It's great that the project is still being supported, but what we're trying to achieve with jQuery Update is decoupling the Drupal module from upstream releases.
So we need to make a decision on jQuery UI as to whether we add any newer release (I think we should not) and whether we remove any of the older versions.
The initial plan to keep all the old versions in the module but mark a chosen few releases as "supported" meant we added some functionality to requirement hook which shows warnings on the status report if an "unsupported" configuration is detected.
If we remove all but the supported versions, these warnings are redundant. Except perhaps in the case of the newest releases where we currently have a "phone home" functionality to check whether e.g. jQuery 3.6.0 is the latest release and should therefore be considered "supported".
I think if we're removing all the old versions other than the last releases from the jQuery 1.x and 2.x branch we could remove the "supported versions" requirements checks / warnings. We could possibly retain some optional functionality where the module can phone home (perhaps only during the requirement hook) to check for more recent releases of e.g. jQuery, jQuery UI and jQuery Migrate. This could be info-only and not generate a warning (the module's not smart enough to know if new releases include security fixes, for example).
In general the approach is to try to stop providing old outdated versions of libraries and allow sites to easily keep up-to-date with new releases of libraries.
The concept of a "supported" version is a little fuzzy anyway as we don't know for sure how much longer the Drupal Security Team will be providing security coverage for D7 and D7 contrib projects (see https://www.drupal.org/psa-2022-02-23 ).
Once the remaining wrinkles outlined here are ironed out, we can proceed with the stable release.
Comments
Comment #2
mcdruid commentedComment #3
mcdruid commentedComment #4
mcdruid commentedTwo more things left on the todo list I think; one is #3312186: Migration path to replace removed jquery versions.
The other is to mark the 'Administer jQuery Update' permission as restricted, as a user with it can include JS from anywhere they like.
Comment #6
mustanggb commentedPresume there will be an RC or similar.
Comment #7
mcdruid commentedYup hoping to release a beta/rc very soon (before the end of the week).
Will also update the project page with some details of what to expect etc..
Comment #8
mcdruid commentedhttps://www.drupal.org/project/jquery_update/releases/7.x-4.0-rc1
Any small tweaks will be committed against this issue so they'll show up after this message (and those changes are not included in rc1).
If anything major has to be changed, we'll do an rc2 etc..
Comment #10
mcdruid commentedhttps://www.drupal.org/project/jquery_update/releases/7.x-4.0-rc2
I don't plan to make any further changes before the 7.x-4.0 release.
So unless any new bugs or significant issues come up, we'll do the release before the end of the month (Nov '22).
Comment #11
mcdruid commentedNo new issues were filed so I've just released https://www.drupal.org/project/jquery_update/releases/7.x-4.0
7.x-4.0 is now marked as Supported / Recommended.
The old supported release 7.x-2.7 is no longer marked as Recommended.
In a week or two I plan to remove "Supported" from that old release; after that 7.x-4.x will be the only Supported branch.
At that point, I'll also close this issue as Fixed.
Comment #12
mcdruid commentedClosing this as fixed; just released 7.x-4.1 with some very minor bug fixes.
We're ready to mark the 7.x-2.x branch as unsupported now.
I aim to do that early next week so as not to ruin anybody's weekend :)