Drupal8依赖于各种后端和前端库。我们实现依赖项更新的方法是使Drupal 8尽可能与这些更新版本兼容。这允许站点使用这些更新的依赖项进行测试,但所需的依赖项版本保持不变,从而确保向后兼容性。Drupal有各种依赖关系,这个列表可能并不详尽。Drupal9的依赖项更新在更新依赖项到Drupal9中相应的主要版本中进行跟踪。
Symfony 3到4
Drupal9的发布日期是为了确保对我们最重要的第三方依赖项Symfony的安全支持。由于Symfony 3将于2021年11月结束生命,Drupal 9将更新为Symfony 4.4。尽管Symfony 5将在Drupal 9发布时发布,但Symfony团队从symfony5开始更改了支持周期,标准版本的兼容性将不足以支持Drupal 12个月的支持周期。对Symfony 5的可选支持是否可能在稍后的Drupal 9版本中仍然有待观察。
twig 1到2
Drupal 8依赖于twig 1。虽然还没有明确的生命结束日期公布,twig2已发布多年。Drupal8.7.0发布时提供了对Twig2的可选支持,Drupal9将依赖于Twig2。
CKEditor 4和5
CKEditor 4和5是两个完全不同的代码基。Drupal 8包括CKEditor 4,但对该版本的支持将在几年后结束。我们的计划是在Drupal 9的未来版本中包含CKEditor 5,在drupal9中不推荐CKEditor 4,并在Drupal 10中删除它。这个较长的弃用时间框架是由于CKEditor 5的新架构,因为这将需要对与之集成的模块进行一些工作。
jQuery and jQuery UI
我们重新评估了对jQuery UI的依赖性,并正在从core中删除大多数组件。将保留有限数量的组件。Drupal9仍然依赖于jQuery本身。
PHPUnit
Drupal8不赞成我们自己的Simpletest测试系统,而支持著名的PHPUnit。然而,PHPUnit目前在PHP兼容性方面的进展要比Drupal生产站点快得多。我们研究了在Drupal 8中更新到PHPUnit 7和/或使用Symfony中的简单PHPUnit桥将PHPUnit的版本依赖性外部化。精确的积分方法仍有待确定。
Doctrine
Drupal8使用了Doctrine的简单注释解析器,但这已经被弃用,并且将从未来的版本中删除而不需要替换。我们分叉了所需的部分代码,并将其包含在Drupal核心中。
其他依赖项
前端和后端都有其他的依赖项更新。以上是最重要的。