Problem/Motivation
Following #3051352: [Plan] Remove unused jQuery UI components and replace with a suite of contrib packages for the continuous upgrade path we need to actually deprecate all the unused jQuery UI components in core, pointing to a change record which will in turn point to the contrib modules and how to update dependencies.
Proposed resolution
For jQuery UI components that are not used by core, deprecate them entirely in core and move them to contrib. This would be done via a set of contrib projects so that a security issue in one component doesn't require a security release for unrelated components.
Some utilities could be grouped under a main jquery_ui
project.
These modules could consist of an info and libraries file and the specific js or css currently in core/assets/vendor/jquery.ui
.
example folder structure:
jquery_ui_[component] |_jquery.ui | |_ui | | |_widgets | | |_[component]-min.js | | | |_themes | |_base | |_[component]-min.css | |_jquery_ui_[component].info.yml |_jquery_ui_[component].libraries.yml
example info file:
name: jQuery UI Droppable type: module description: 'Provides jQueryUI Droppable library.' package: jQuery UI core: 8.x dependencies: - jquery_ui - jquery_ui_draggable
The libraries file would be identical to what is currently in core.libraries.yml except for updated paths to files and dependent libraries.
Proposed list of modules, starting with the modules that can be currently marked deprecated:
- jquery_ui - this project page already exists but has not had activity since jQuery UI went into core. It would be great if we could use this as the namespace for this new module.
It could include jQuery "core" files as well as some utilities depended on by the other libraries.jquery.ui
jquery.ui.widget
(required by nearly all the other libraries)jquery.ui.mouse
(required by slider, selectable, draggable)jquery.ui.position
(required by selectmenu, tooltip)
-
jquery_ui_accordion -
jquery.ui.accordion
-
jquery_ui_button -
jquery.ui.button
- not in the deprecated list but required by spinner. -
jquery_ui_checkboxradio -
jquery.ui.checkboxradio
-
jquery_ui_controlgroup -
jquery.ui.controlgroup
-
jquery_ui_draggable -
jquery.ui.draggable
- not in the deprecated list but required by droppable. -
jquery_ui_droppable -
jquery.ui.droppable
-
jquery_ui_effects - since the individual effects depend on jquery.ui.effects.core it's more convenient to package them together.
jquery.ui.effects.core
jquery.ui.effects.blind
jquery.ui.effects.bounce
jquery.ui.effects.clip
jquery.ui.effects.drop
jquery.ui.effects.explode
jquery.ui.effects.fade
jquery.ui.effects.fold
jquery.ui.effects.highlight
jquery.ui.effects.puff
jquery.ui.effects.pulsate
jquery.ui.effects.scale
jquery.ui.effects.shake
jquery.ui.effects.size
jquery.ui.effects.slide
jquery.ui.effects.transfer
-
jquery_ui_menu -
jquery.ui.menu
- not in the deprecated list but required by selectmenu. -
jquery_ui_progressbar -
jquery.ui.progressbar
-
jquery_ui_selectable -
jquery.ui.selectable
-
jquery_ui_selectmenu -
jquery.ui.selectmenu
-
jquery_ui_slider -
jquery.ui.slider
-
jquery_ui_spinner -
jquery.ui.spinner
-
jquery_ui_tabs -
jquery.ui.tabs
-
jquery_ui_tooltip -
jquery.ui.tooltip
Remaining tasks
None.
User interface changes
None.
API changes
A number of jQuery UI asset libraries are deprecated. See the change record and proposed resolution.
Data model changes
None.
Release notes snippet
jQuery UI asset libraries that are not used by Drupal core have been deprecated.