Problem/Motivation
During the 8.8.x development cycle, we deprecated numerous dependencies, libraries, and modules that needed to be removed from Drupal 9. We ran out of time for many things, so we should start this process sooner for Drupal 10.
The below issues cover work in various stages - in some cases we decided to stop using a library over a year ago but still need to decouple from it in practice. In other cases we have open issues to remove/deprecate core functionality but decisions on whether to do so have not been taken yet. In all cases, it would be best to resolve those issues as early as possible in the cycle rather than at the last minute.
Proposed resolution
Begin essential dependency, library, module, and theme deprecations by 9.3.0-beta1 (and sooner in some cases).
Deprecation infrastructure
- [MUST-HAVE] #3135100: [policy and meta] Provide a proper mechanism for deprecating modules and themes
- [MUST-HAVE]#3266219: [policy, no patch] Document the approach and issue scope for removing modules from core
- [MUST-HAVE] #3264607: [policy, no patch] How to ensure migrations continue to work when modules are moved to contrib
- #3039240: Create a way to declare a plugin as deprecated
- #3225792: Allow deprecation testing to distinguish between major versions when contrib modules run tests
JavaScript Dependencies
A table with the plan for all JS dependencies can be found in: #3238507: Drupal 10 JavaScript dependency plan
- [MUST-HAVE] CKEditor #3238333: Roadmap to CKEditor 5 stable in Drupal 9
- [MUST-HAVE] #3238501: Remove empty and deprecated IE11 polyfill library stub entries in 11.0.0
- [MUST-HAVE] #3239980: Deprecate Modernizr
- [MUST-HAVE] #3239838: Update core eslint configuration to remove unused React and JSX rules
- [MUST-HAVE] #1651344: Use color input type in the color.module or #2808151: [policy] Move the Color module to a contributed project when Bartik is deprecated
- #3052002: [meta] Replace JQuery with vanilla Javascript in core (The more of this we do, the less we have to make compatible with jQuery 4.)
- #3189416: [PP-x] Remove jQuery Form dependency from misc/ajax.js
- #3145958: [META] Re-evaluate use of Backbone.js in core
- [MUST-HAVE] #3258931: Deprecate backbone and tag it internal
- [MUST-HAVE] #3239796: [meta] Remove dependency on Underscore.js outside of Backbone and mark it internal
- [SHOULD-HAVE] #3203920: Replace Contextual Links BackboneJS usage with VanillaJS equivalent
- [SHOULD-HAVE] #3204011: Replace Tour BackboneJS usage with VanillaJS equivalent
- [SHOULD-HAVE] #3204015: Replace Toolbar BackboneJS usage with VanillaJS equivalent
- [SHOULD-HAVE] #3228986: [Meta] Tasks to deprecate Quick Edit
- [Priority TBD] #3238497: What to do with assets build step? (Babel)
- Others TBD based on dependency changes in the next 12-18 months.
#3277744: Actually remove deprecated jquery_ui libraries from core
PHP dependencies
- [MUST-HAVE] #3176655: Deprecate GoutteDriver use in core and use Behat\Mink\Driver\BrowserKitDriver directly instead
- [MUST-HAVE] #3255243: Replace Diactoros' PSR-17 implementation with Guzzle's
- [MUST-HAVE] #3188549: [Meta] Tasks to deprecate both Aggregator and our dependency on Laminas Feed
- Event dispatcher: #2237831: Allow module services to specify hooks
- #3054535: Discuss whether to decouple from Symfony Validator
Libraries
- [MUST-HAVE] #3263823: Empty out and deprecate drupal libraries which are related to Internet Explorer 11 polyfills in 10.0.x for removal in 11.0.0
- #3067261: [Plan] Remove jQuery UI components used by Drupal core and replace with a set of supported solutions
- Others TBD based on dependency deprecations, etc.
Modules
Ensure that already-deprecated stub modules cannot be installed for new sites and removed from the codebase in Drupal 10
- None at this time
Deprecate outdated or superseded modules in preparation for removal from Drupal 10
- [MUST-HAVE] Aggregator
- Policy: #1136482: [policy] Deprecate aggregator.module in D9 core and remove it in D10
- #3188549: [Meta] Tasks to deprecate both Aggregator and our dependency on Laminas Feed
- [MUST-HAVE] CKEditor
- Policy: N/A, replaced by the CKEditor 5 module
- #3270437: [meta] Tasks to deprecate the CKEditor 4 module
- [SHOULD-HAVE] QuickEdit
- [SHOULD-HAVE] Color
- Tracker
- Forum
- RDF
- Policy: #2152459: [Policy] Deprecate RDF module and move it to contrib
- #3267267: [Meta] Tasks to deprecate RDF
- Field Layout, Block UI (could be deprecated in favor of LB features like Layout Builder Everywhere, etc.)
- Field Layout: #3007167: [policy] Deprecate field_layout module and move it to contrib Note: This requires moving some functionality into core, not a straight deprecation.
- HAL: #3049856: [policy] Mark HAL module as deprecated in D9 so it can be removed in D10
Policy still under discussion
- Statistics: #3266457: [Policy] Deprecate Statistics module in D10 and move to contrib in D11
- Action: #3266458: [Policy] Deprecate Action (UI) module in D10 and move to contrib in D11
- Telephone: #3266465: [policy, no patch] Remove Telephone module from core
- Ban: #1570102: [Policy] Deprecate Ban module
- Book: #3265493: [Policy] Move book to contrib in Drupal 11
- Others? (There are various existing proposals to move other modules out of core, most of which were determined to be too disruptive or too late in the 8.8.x development cycle.)
Themes
- [SHOULD-HAVE] Seven
- [SHOULD-HAVE] Bartik
- [SHOULD-HAVE] Stable (deprecated in favor of stable9).
- [SHOULD-HAVE] Classy (deprecate in favor of the Starterkit)
Remaining tasks
- Add additional issues as appropriate.
- Evaluate in early 2021, after 9.2.0-beta1, prior to 9.3.0-alpha1, and prior to 10.0.0-beta1.
Issue fork drupal-3118154
Show commands
Start within a Git clone of the project using the version control instructions.
Or, if you do not have SSH keys set up on git.drupalcode.org:
Comments
Comment #2
xjmWe can actually make this active as soon as 9.0.0-beta1 ships and 9.1.x opens for development, since Stable can be deprecated straightaway and additional deprecations should begin as soon as replacements stabilize and/or are added to Standard.
Comment #3
catchComment #4
catchCross-linking #3007166: [META] Stabilise and/or remove experimental modules as appropriate in/before Drupal 9.
#3007167: [policy] Deprecate field_layout module and move it to contrib did not get resolved in any direction in Drupal 9.
Comment #5
xjmComment #6
xjmComment #7
xjmComment #8
xjmComment #9
catchNow that 9.0.0 is released, it's definitely time to unpostpone this.
Comment #10
catchComment #11
catchComment #12
catchComment #13
andypostWe need a common way to deprecate plugins and migrations like #3039240: Create a way to declare a plugin as deprecated
Comment #14
xjmComment #15
catchComment #16
andypostComment #17
gábor hojtsyTagging so people find this issue alongside the other ones being done in Drupal 9 for Drupal 10.
Comment #19
xjmComment #20
xjmComment #21
xjmComment #23
mondrake#22???? No idea what happened 😳
Sorry. Maybe just pressed a button by mistake on my phone.
Comment #24
xjmComment #25
xjmComment #26
xjmComment #27
xjmComment #28
xjmI incorporated the unlisted outstanding issues from #3080837: [meta] PHP (and JS) dependencies to consider decoupling or removing in the summary since that issue was mostly about D9, and the remaining issues duplicated the list here.
Comment #29
xjmComment #30
xjmComment #31
xjmComment #32
xjmComment #33
xjmComment #34
aaronmchaleThe term "are made uninstallable" is ambiguous and could lead to confusion, swapped out for "cannot be installed".
Comment #35
nod_adding to the JS queue
Comment #37
gábor hojtsyAdding the forum module removal policy issue. Are we still considering 9.2.0-beta1 as in the title as a general deadline? Then removing aggregator, forum, HAL, etc does not really have a chance anymore.
Comment #38
gábor hojtsyRemoving issues that landed already.
Comment #39
catchComment #40
xjmComment #41
kim.pepperComment #42
xjmPosted #3225792: Allow deprecation testing to distinguish between major versions when contrib modules run tests.
Comment #43
xjmComment #44
catchComment #45
catchComment #46
catchComment #47
catchComment #48
quietone commentedAlso should remove Migrate Drupal MultilingualThat is being done in Drupal 10.
Sorry for the noise.
Comment #49
quietone commentedAnd revert change to IS.
Comment #51
xjmComment #52
xjmComment #53
xjmComment #54
catchComment #55
xjmUpdating the theme section based on the latest consensus with @lauriii (Stable 9 is retained, no Stable 10 since it is not different enough to justify the work).
Also I cannot believe #3228986: [Meta] Tasks to deprecate Quick Edit was not listed.
Comment #56
larowlanAdded tracker to 'still under discussion'
Comment #57
catchComment #58
larowlanComment #59
larowlanAdded issues for forum
Comment #60
larowlanAdded a handbook page for linking the lifecycle links to https://www.drupal.org/docs/core-modules-and-themes/deprecated-modules-a...
Comment #61
longwaveOpened #3261957: Properly deprecate migrate_drupal_multilingual for future removal as migrate_drupal_multilingual is set to
lifecycle: experimentalandhidden: true, but it is obsolete and should be removed in Drupal 10.Comment #62
kostyashupenkoComment #63
kostyashupenkoAdded #3263823: Empty out and deprecate drupal libraries which are related to Internet Explorer 11 polyfills in 10.0.x for removal in 11.0.0
Comment #64
xjmAdding #3264607: [policy, no patch] How to ensure migrations continue to work when modules are moved to contrib which needs to be addressed when a module is moved to contrib (which in turn typically needs to happen before the core module can be marked deprecated).
Comment #65
xjmComment #66
quietone commentedSome formatting
Comment #67
quietone commentedFix typos in formatting
Comment #68
quietone commentedAnd again. sorry for the noise.
Comment #69
quietone commentedAdded #3266219: [policy, no patch] Document the approach and issue scope for removing modules from core to the Deprecation infrastructure in the IS.
Comment #70
griffynh commentedComment #71
griffynh commentedUpdated Modules list
Comment #72
quietone commentedUpdate modules section. Moved aggregator to the top of the list, moved several to 'under discussion' because the policy issue is Active. Added a Meta to tracker to test drive the steps in Remove a core module and move it to a contributed project.
Comment #73
quietone commentedUpdate quickedit
Comment #74
quietone commentedUpdate aggregator
Comment #75
quietone commentedUpdate forum
Comment #76
quietone commentedMoved RDF since it is now longer under discussion and added tracking Meta.
Comment #77
quietone commentedFix link to RDF tracking issue.
Comment #78
xjmAdded Color deprecation policy discussion.
Comment #79
xjmComment #80
xjmClarifying which issues are must- and should-haves (for which we might delay the release). The remainder are nice-to-haves or ongoing efforts that may continue into 10.1.x development for D11.
Comment #81
xjmComment #82
xjmComment #83
xjmComment #84
xjmComment #85
xjmComment #86
xjmComment #87
quietone commentedAdd implementation Meta for Color.
Comment #88
damienmckennaNoted that #3239980 is blocked by #3101922.
Comment #89
quietone commentedUpdate IS after separating the process for removing a module from core into a task for the deprecation in 9.4.x and a task for the removal in 10.0.x
Comment #90
xjmComment #91
catchComment #92
quietone commentedExpand Seven and Bartik with new Metas.
Comment #94
gábor hojtsyDrupal 9.4.0 beta is out now: https://www.drupal.org/project/drupal/releases/9.4.0-beta1 -- Should we close this in favor of a limited META for only the things allowed in 9.5.0, which is much more limited?
Comment #95
catchSome of these already have their own issues.
Javascript: #3238507: Drupal 10 JavaScript dependency plan
Modules: #3213858: [META] Remove deprecated modules and themes from the Drupal 10 branch
Both of these include must haves and should haves though, so not necessarily easy to tick off as done.
Everything else on the list that's not resolved yet is as far as I know should-have at this point.
So maybe a new issue with must have + high priority should have module/theme/library deprecations flattened out at the top level + API-ish should-haves from here, then link to the module/javascript metas for the other should/could haves?
Comment #96
gábor hojtsyThat sounds good. We can also repurpose this issue. I was just concerned that the look of using this issue as-is for 9.5 would make it look like more things are allowed to be deprecated than it is.
Comment #97
quietone commentedBecause of my experience triaging issue with the Bug Smash Initiative I prefer to close an issue instead of re-purposing it. It is cleaner to close and issue and open a new one, referencing the earlier one as needed.
Therefor, I am restoring this to 9.4, closing this and opening a new one based on #95 and #96.
The next issue is #3296094: [meta] Deprecate modules and themes that will be removed from Drupal 10 core by 9.5.0-beta1
Comment #98
quietone commentedAnd actually close it!