Problem/Motivation
We adopted a lot of third-party PHP dependencies during Drupal 8's cycle, some of them are going better than others.
There are some common issues:
1. Support cycles (and PHP version support) out of sync with core's
2. Our use-case requiring subclassing significant percentages of the dependency's code base.
3. Drift between our subclasses and newer versions of libraries
4. New versions of dependencies dropping features we rely on
5.Difficulty adapting to API changes and similar.
Proposed resolution
In some cases we might want to move away from a component, in other cases we might want to see if we still need to subclass things and move closer to it. The main thing is we should try to avoid drift.
Symfony CMF
#2917331: Decouple from Symfony CMF
Symfony Validator
#3054535: Discuss whether to decouple from Symfony Validator
Event dispatcher
#2237831: Allow module services to specify hooks
Doctrine annotations
#2631202: Doctrine no longer supports SimpleAnnotationReader, incorporate a solution into core
Symfony classloader
#3020296: [meta] Replace Symfony's classloader as it does not exist in Symfony 4
Symfony container
- #3021803: Enable autowiring the container
- #3021900: Bring new features from Symfony 3.3 into our container
Guzzle / Symfony HttpClient
Keeping Guzzle.
- #3047294: Switch to symfony/http-client
- #3039047: [PP-1] Adopt php-http/guzzle6-adapter 2.x to get PSR-18 support without losing Guzzle's async support
Diactoros
We discussed whether to remove Diactoros in favor of Guzzle's PSR-7 implementation; however, Guzzle's implementation remains incomplete for our needs. #2492955-13: [meta] PSR-7 support
Retain Diactoros as it has an LTS version with security coverage meeting our needs.
egulias/EmailValidator
#3105181: Remove egulias/EmailValidator
Wikimedia Composer Merge Plugin
#2912387: Stop using wikimedia/composer-merge-plugin
jQuery UI
Move unused components to contrib. Fork components still not deprecated by the 8.8.0 beta deadline. Research possible replacements and target them for either D9 or D10 based on maintainer recommendations.
#3067261: [Plan] Remove jQuery UI components used by Drupal core and replace with a set of supported solutions
JS and CSS polyfills
#3067216: [meta] Deprecate (in 8.8) and remove (in 9.0) polyfills that are no longer needed