Joomla 生产部门分享了上一篇 Joomla 5 文章所产生的讨论结果。
概括
我们听取了社区的反馈,并就 Joomla 5 的发布和一般的发布周期做出了一些决定。
如果您不阅读任何其他内容,那么您需要了解以下内容:
- Joomla 5 将不包括对模板和第三方扩展的重大更改。
- 不会删除在 Joomla 4 中标记为弃用的任何代码。
- Joomla 5 的最低 PHP 版本为 PHP 8.1。
- 在 Joomla 4 中工作的组件也应该在 Joomla 5 中工作,只要它们支持 PHP 8.1。
- Joomla 5 将于 2023 年 10 月发布。由于以上几点,它不会像过去的版本那样是一个大而痛苦的更新。
- 次要版本将保持 6 个月的时间表,但所有版本都将转移到 4 月和 10 月,从 4.3 版本开始(2023 年 4 月)。
如果您想了解更多关于这些决定的推理和细节,请继续阅读。
序幕
在Joomla 5 发布 Joomla!之后的几周内,有很多讨论。5.0 在一年内大胆 - 但我们能做到吗?
问是否有可能在一年内发布 Joomla 5。这篇文章旨在激发兴趣和反馈,生产部门很欣赏这种生动的想法、请求和反馈交流。制作部成员通过多种渠道参与了讨论,以获得个人意见并更好地了解人们如何看待 Joomla 5 影响他们的世界。
基于这些反馈,我们在过去几天内提出了多项动议,并就 Joomla 5 的未来做出了许多决定。
我们确定了两个需要克服的最大问题,既费时又费钱:
- 更新到 Joomla 5 将是一次痛苦的迁移(然后再次升级到 6,等等)
- 在 Joomla 4 上运行的扩展再次与 Joomla 5 不兼容
还有其他问题,例如:
- 标记为弃用的代码没有说明开发人员应该做什么的文档。
- 当前的发布时间表对我们的志愿者和社区造成了破坏,尤其是在两个半球的夏季。
- 主要版本需要有一些让升级“值得”的东西
- 使用核心(例如模板覆盖)不应该在迁移到新版本时惩罚开发人员,迫使他们重建。
- 时间框架太紧
作为这些讨论的结果,生产部门做出了几项决定。
发布周期
- 对于次要版本,我们将保持 6 个月的发布周期。原因是为了保护发布经理免于精疲力尽,因为发布需要大量工作,他们在发布前 6 个月开始工作,然后在发布结束后再工作 6 个月。拥有可靠的固定月份有助于每个人进行计划。
- 我们还将保留主要版本的两年发布。所以 Joomla 5 将在 2023 年发布,Joomla 6 在 2025 年发布,依此类推。原因是,要让步骤尽可能小,以避免像过去那样进行痛苦的重大升级。
新的主要版本将专注于清理弃用、维护依赖关系并使升级步骤尽可能顺利。
每个生命周期的第四个小版本(例如 4.4、5.4、6.4)是一个“看守版本”,其重点是改进更新检查器、消除遗留的错误并生产稳定的产品作为即将到来的主要版本的基础。
我们正在努力实现顺畅、无缝的升级路径。参与决策的许多人本身就是网站开发人员,因此理解所涉及的痛苦。较长的时间框架意味着更大的步骤,而较短的时间框架导致更平滑的步骤。生产部门的目标是创建一个顺畅的流程,并为开发人员和网络机构提供更多控制权来控制他们何时进行更改。
新发布月份
- 主要版本将以两年为周期发布——2023 年发布 Joomla 5,2025 年发布 Joomla 6 等。这将减少升级到新主要版本所需的步骤。
- 次要版本将继续以六个月为周期发布。这可以防止发布经理“倦怠”并提供可靠的发布日期。
- 发布月份将移至 4 月和 10 月,以避免两个半球的暑假。(收到反馈的直接结果)
弃用
简而言之:
我们不会删除“遗留 MVC 框架”、“遗留插件框架”、“遗留模块框架”和“工厂”类。这意味着在 Joomla 4 中运行的组件也应该与 Joomla 5 一起工作(要求它们支持 PHP 8.1)。
长话短说:
生产部门通过了一项动议,即在宣布弃用后,最早可以删除所有弃用的 +2 主要版本。这意味着如果代码在 4.x 版中被声明为已弃用,则最早可以删除的是 Joomla 6。此动议包括(除其他外):
- 遗留 MVC 框架
- 遗留插件框架
- 遗留模块框架
- 工厂
并允许最早在 2025 年删除已弃用的代码。
我们没有将 Joomla 5 的发布周期延长到 3 年,而是给第 3 方开发人员至少总共 4 年的时间来升级他们的扩展。这也减少了支持三个版本的扩展的需要。
请记住,“最早”并不意味着弃用的代码将在那个时候被删除,它只是开启了可能性。
我们开始通过这个拉取请求评论和澄清弃用,这将在接下来的几天内更新。
PHP版本
Joomla 5 将要求最低 PHP 版本为 8.1。
当 Joomla 5 发布时,PHP 7.4 将在没有安全更新或错误修复的情况下终止使用 (EOL)(请参阅 PHP 版本)。
Joomla 5 需要 PHP 8.1。如果您的主机在 Joomla 5 时不支持 8.1,您可以更换主机或继续使用 Joomla 4 再过两年。
PHP 8.1 除了其他新功能外,还带来了部分代码“并行”执行的可能性,这可以极大地提高性能。为 Joomla 5 迁移到 PHP 8.1 允许我们编写利用此功能的代码,即使我们没有时间在 5.0 中使用此功能,此要求也为我们在次要版本中进一步使用它打开了大门加快 CMS 的速度并允许扩展开发人员也从中获益。
SQL 版本
Joomla 5 将支持 MySQL 8.0.11+、MariaDB 10.4+ 和 PostgreSQL 12+。
我们将分离 MySQL 和 MariaDB 的数据库驱动程序,因为这两个系统彼此之间的距离越来越远。单独的驱动程序使我们能够以最佳方式支持各自的数据库管理系统 (DBMS)。
作为开发人员,只要您只使用两个驱动程序支持的功能,您就可以继续发布 MySQL 文件。如果您需要 MariaDB 特定的功能,您可以提供 MariaDB 文件。
优化
PHP 8.1 允许我们使 I/O(读取和写入)操作异步进行,即在后台运行。这种可能性将可用于 Joomla 5 扩展。
现代数据库系统提供递归查询。这将使替换嵌套集成为可能。嵌套集用于访问控制、类别等,但是,虽然它们在读取时非常快,但在写入时却非常耗时。对于在类别或用户和用户组中包含数千篇文章的站点,这有时会导致性能问题。因此,在 Joomla 5 中,嵌套集将被递归查询所取代。
兼容性插件(早期采用者)
Deprecated 代码被弃用是有原因的;大多数时候,有更好、更快、更有用的代码可以提升您的网站。长期支持已弃用的代码对于希望仅使用最先进代码(或仅核心)的网站所有者来说是一件坏事。对他们来说,弃用的代码是一种负担。我们如何帮助他们?
目的是将尽可能多的弃用代码移动到系统插件中,该插件在升级时默认启用。这个想法早在 Joomla 1.0 就被首次使用并奏效了。随着命名空间等技术的进步,这个想法可以变得更加强大,有助于将权力还给网站所有者。知道自己不依赖该代码的网站所有者可以关闭插件并从改进的性能和更清晰的代码中受益。例如,我们将类别名如JDatabase(它只是虚拟存在)移动到这个系统插件中。
这个插件有一些关于何时可以更改的规则:
- 该插件仅包含先前主要版本中已弃用的代码
- 它只能在发布新的主要版本时更新
因此对于 Joomla 5,该插件将包含 Joomla 4 的所有(可能)弃用,但不包含 Joomla 5 的弃用。
当我们发布 Joomla 6 时,我们将从核心中的插件(如果有的话)中删除来自 Joomla 4 的所有弃用。然后我们还可以将所有可能的弃用从 Joomla 5 核心移动到插件。当更新到 Joomla 6 时,该插件将再次激活,以确保顺利升级。
新安装将在禁用插件的情况下发货,如果需要,扩展开发人员可以在安装其扩展时激活插件。当插件被激活时,后端仪表板中的消息将显示给用户以通知他们。
我们听到许多人担心升级会影响 Joomla 的采用并使网络代理和开发人员的生活变得艰难,我们还听到其他人说我们需要保持速度和安全性的曲线。我们希望这个解决方案将提供更顺畅的升级路径,在需要时有更多时间,并允许我们为需要它的人提供最新、最快和最安全的构建包。
文档
Joomla 的一个重要问题是文档。我们需要可靠的文档。生产不能单独管理它。在这里,我们可以领导并提供资源,但我们完全依赖社区的帮助才能完成。
- 我们启动了一个新项目:manual.joomla.org,我们计划在该项目中添加详细的开发扩展开发实践文档。今年我们计划举办社区冲刺,每个人都可以参与其中,以了解新文档并帮助填充内容。我们会及时与你联络。
- 生产已经通过了一项动议,从现在开始,只有在为开发人员 ( manual.joomla.org ) 和最终用户 ( docs.joomla.org )提供书面文档时,才能合并新功能。
- 只有在为manual.joomla.org编写迁移指南时才能弃用代码。这将允许任何有兴趣的人通过订阅文档存储库来跟踪这些弃用。可以在最终执行弃用之前提供反馈。
随着这些新动议的通过,当添加新功能时需要文档并且使用迁移指南弃用代码时,还提供支持以帮助开发人员编写他们的文档。即使英语不是您的母语,或者写作不是您的强项,您仍然可以贡献代码并从“文档伙伴”那里获得编写文档的帮助。Documentation Buddy 将指导您使用资源来编写文档,或直接协助您编写文档。
要查找文档伙伴,请联系 outreach。
您是文字大师而不是编码员,可以成为文档伙伴吗?联系外展,我们会让你开始。
在整个开发过程中,开发人员、文档伙伴和社区都将受益于更多更好的文档。它将帮助每个人理解、欣赏和使用新功能,并避免使用已弃用的代码。
模板/用户界面
以下内容更具技术性,对于那些不是开发人员的人来说,总结是我们正在整理事情,以便核心更改对模板开发人员的影响较小。
在关于新版本的讨论中,人们担心所有模板可能都必须以开发人员的巨大代价进行调整。这是早期主要版本的经验的结果,这些版本必须打破模板以改进内部结构。
幸运的是,在 Joomla 4 中我们有WebAsset Manager,它允许我们在未来的版本中将此类中断保持在较小的范围内。我们还计划充分利用新的 Joomla 4 功能“子模板”来进一步减少痛苦。
长期目标是核心布局和仙后座将解耦(独立且不再相互依赖)。
解耦将允许我们计划将“引导程序模板”作为基线,其中所有依赖于引导程序的代码都作为覆盖包含在内。以任何方式特定于模板的所有内容都从核心布局移至 Cassiopeia。Cassiopeia 要么成为这个新的“bootstrap 5”模板的子模板,要么保持独立并包含所有覆盖。这使得基于其他框架(例如 Tailwind 或 UIKit)构建额外的父模板成为可能。
对于模板设计者来说,这意味着他们的布局自定义和覆盖对 CMS 中的更改变得不那么敏感,并且不必在每个新的主要版本中重建覆盖。
后端模板将保留在 bootstrap 5 上,并且应该只进行微小的更改以提高可用性。
对用户体验的新承诺
我们都知道,这两个核心模板仍然存在缺陷,还有很大的改进空间。因此,我们非常高兴地宣布一个新团队正在组建中:Joomla 体验团队 (JXT)。
该团队的目标是提高 Joomla 的整体用户体验,其中还包括模板等。我们都非常希望这个团队能够与Joomla Accessibility Team (JAT)合作,在正确的方向上大力推动。
我们需要你的帮助!我们计划很快创建一些 Pizza、Bugs 和 Fun 活动,但请联系团队并立即参与!为了变得更好,我们需要许多思想和手指共同努力
新的功能
主要版本的基本任务是提供现有代码库不可行的新功能。
在我们不得不推出 Joomla 5 的短时间内,我们可能无法完成我们想要包含的所有不错的新功能(多域)。但是,如果需要,Joomla 5 将在以后的版本中提供实现它们所需的一切。
这不应该阻止您自己贡献新功能。我们还将再次受益于 Google Summer of Code 期间开发的功能,这些功能几乎已经准备就绪,例如改进的搜索引擎优化 (SEO)。
谁知道呢,也许我们会完成更多功能……这取决于您,Joomla 社区。
支持扩展开发人员
我们将及时为 Joomla 5 的第一个发布候选提供一套(完整的)Rector 规则,以支持自动重写弃用代码。(Rector是一种相对较新的开发工具,可以根据规则集重写代码)。这些规则将可供扩展开发人员使用,以通过命令行调用将他们的组件、模块和插件调整为 Joomla 5。可能无法消除所有手动更改,但使用 Rector 可以将其保持在最低限度。
它只能在你的帮助下发生
我们是一个大社区。值得记住这个项目的成就、它支持的企业以及它提供的就业机会。对于团队中的许多人来说,他们每周都将晚上和空闲时间用于项目。他们和任何人一样,都希望把事情做好。
我们发布的文章征求了反馈,然后强调了一条可能的途径。
有很多反馈,有时相互矛盾,而且在多个平台上,所以我们不得不花时间提炼、提炼和进一步调查以收集更多事实,然后讨论针对提出的想法的解决方案。
这是一个非常值得的过程,不是每个人都能得到他们特别想要的东西,但 Production 希望通过努力工作和社区齐心协力,我们都能从这种开放和有价值的对话中受益,我们传递的产品将发展成为更好、更精巧的产品,能够支持未来几代网站和网站建设者。
Joomla 完全是志愿者和基于社区的。如果没有对各种想法如此热情的人加入进来将想法转化为代码,这将不会发生。一些人已经挺身而出,同意组建团队并一起工作,这非常出色和鼓舞人心,但总有更多的空间。
请,如果您是编码员、文档编写者、营销人员或愿意测试并报告您发现的内容的用户,请通过志愿者门户网站联系并为 joomla页面做出贡献,参与并将 Joomla 提升到一个新的水平!