Joomla 5 正在规划中,遇见发布负责人
Harald:像许多其他 Joomla 贡献者一样,我从 Mambo 开始使用 Joomla。但长期以来只是作为一个用户。几年前,我参加了一个 Joomladay,并加入了社区。在这场活动之后,我很快加入了 JSST,后来成为 3.9.3+ 的发布负责人和生产部门协调员。
Niels:我进入 Joomla 世界的起点是 Mambo 4.6,Joomla 1.0 的直接前身。到那时,我已经在各种环境中开发了超过 25 年的软件。Mambo 是一个快速轻松创建网站并可以随意扩展的出色工具。然而,有些事情似乎相当不成熟(有些人可能还记得 $mainframe 怪物)。
我刚开始编写自己的 CMS,它应该能够使用 Mambo 扩展,但当开发者造反并推出 Joomla 时,我刚刚开始编写。我听到的关于 Joomla 的计划和想法与我的目标相吻合,所以我决定加入 Joomla 而不是自己行事。
Harald 和 Niels,你们能否提醒我你们与 Joomla 的关系,你们之前是否参与过发布或规划 Joomla 的结构?
Harald:除了维护 2 年的 3.9.3+ 系列,我还参与了现在的流程以及 J4 的许多其他方面。但我的主要工作领域是维护 CMS 和框架的稳定性。例如,防止向后兼容性中断,查看性能和安全,工作于测试基础设施。
尼尔斯:在雅典举行的Joomla 4启动活动上,我有机会展示我对Joomla应该成为什么样的想法。核心是将输入和输出从处理中解耦,这样“内容”就不会局限于网络,而是可以为所有可能的渠道提供服务。此外,还有一个所谓的“正交架构”,旨在确保某些服务,如访问控制、标签、工作流等,可以无额外代码对所有组件可用。
有些人对这种可能性感到兴奋,而另一些人则强烈抵制这种深刻的变革。最终,决定以小步开发Joomla 4,并将新概念视为指导灯塔项目“Joomla X”。
我们为Joomla X设计的许多内容最终都融入了Joomla 4。然而,由于对新的架构持续存在抵制,Joomla X团队成为软件架构和战略团队(SA&S),将重点从提供概念代码转移到向开发者提供架构建议。像Joomla X一样,SA&S由我领导。
我真的很想知道你对J5的愿景,它应该包含什么,不应该包含什么,以及它的方向。
哈拉尔德:对于5.0版本,我希望看到所有已被标记为弃用的所有功能和行为的彻底清理。在像Joomla!这样的软件项目的一生中,功能会被添加,代码库会变得更加复杂且难以维护。在Joomla! 4.0中,我们得到了一个更具未来性的架构更新。还引入了一个为Joomla! 3扩展提供的b/c层,计划在5.0中将其删除。此外,新的事件系统应该完全取代旧的事件系统,包括验证在内的定义良好的事件。
对于CMS的改进,我想说,CMS支持PHP 8.1纤维,支持Revolt或更深入地支持React PHP将是我在Joomla! 5.0中希望看到的功能之一。
另一方面,我在向后兼容性和听起来很好但与Joomla!不兼容的原则方面持务实态度。对于b/c,保持它比在没有充分理由或polyfill的情况下删除它更重要。
尼尔斯:在这个时候,我只能谈论我的个人想法,因为关于Joomla 5的范围还没有做出最终决定。
毫无疑问,摆脱旧负担是必要的——这就是新主要版本的真正目的。如果完全向后兼容,那么就没有必要有5.0,4.x就足够了。因此,我们也可以充分利用PHP 8.1提供的迷人可能性。
在软件开发中,有一些普遍接受的原则旨在提高软件的可维护性、可扩展性和健壮性,所谓的SOLID原则。这些原则建议尽可能严格地分离不同的关注点,限制依赖性到接口。用非技术术语来说,这意味着任何功能都可以添加或替换为相似或不同的功能,而不会对整个系统造成问题。我认为遵守这些原则是Joomla能够面向未来的必要条件。
插件是向Joomla添加新功能的一种简单而重要的方式。然而,用于处理插件的每个事件都使用自己的方法与系统的其余部分进行通信。我希望标准化这一点,以便开发者可以立即知道如何处理新事件,并在此领域实现自动化。例如,通过标准化,可以设想一个扩展,允许最终用户在低代码编辑器中点击组合他们自己的插件。
安装过程需要修改,以便通过命令行轻松安装和更新Joomla及其扩展。理想情况下,我们使用Composer来完成这项工作,这是一个可以解决依赖并提供正确包的工具。这将使扩展开发者能够轻松地包含第三方库而不会引发冲突。它还允许托管提供商从他们的控制面板中安装Joomla。网站构建者可以在单个JSON文件中描述完整的安装,并使用单个CLI命令进行设置。
Joomla向无头CMS的发展应进一步推进。通过改进Web API和分离CMS和输出渠道,为网站构建者开辟了全新的可能性。API端点和CLI命令应尽可能自动生成。这其中的一个巨大优势是构建页面缓存的可能性,即存储预渲染的页面,可以直接由Web服务器提供,并通过API调用按需加载其动态内容。
正如开头所述,Joomla 5自然不会与Joomla 4完全向后兼容。只要可能,我们将提供对Joomla 4中架构的修改,作为对之前版本的替代,以使其向前兼容。因此,扩展的开发者应尽早对Joomla 5进行必要的调整。我还想使用Rector,这是一个可以按规则驱动方式重建程序代码的工具,以支持开发者在尽可能早的时间内使他们的扩展兼容Joomla 5。
这是我希望在Joomla 5中看到的最重要的事情。还有一些小事情可以改进,或者只有一点不足才能使其成为一个真正出色的功能。然而,在这里列出所有这些事情将超出本文的范围。
你们打算如何合作,你们是否将在同一领域工作,还是将分配任务,如果是这样的话,谁将负责哪些任务?
Harald:我们还没有讨论过这样做的可能性,但我认为我们性格完全不同,关注的重点也不同。因此,我认为Niels将试图将结构引入开发周期和代码中,而我将尽力使其完成。Niels对架构和事物在理想世界中的可能性有深入的了解,这真是太好了。我将尽力支持他,并做一些枯燥的事情,比如清理和协调。
我们有两个发布负责人负责这个版本的原因之一是我们不想为下一个主要版本再花5年时间。我已经能够推动人们发布Joomla! 4.0,我确信我能够赶上Joomla! 5.0的时间表。
另一方面,我们不仅对Joomla! 5.0的发布负责,我们还有CMS发布团队和CMS维护团队支持我们,所以我们与其他维护者进行协调,并继续与发布团队保持沟通。
Niels:这是一个很好的问题!我们还没有真正讨论过这个问题。
我认识Harald是一个实用主义者,他会简单地解决摆在他面前的问题。在我看来,他的中心是现在和这里,专注于当前的问题,但他不会失去对可能性的视野。我的性格有些不同(即使我必须并且可以强迫自己在日常生活中变得实用)。我首先看到可能性,并寻找实现它们的方式。如果我们已经有了那些,当前的问题就会消失。
因此,我相信Harald和我将组成一支优秀的团队。当然,我们每个人都有自己的重点,这是我们想要或将要优先考虑的。最后,我认为当我在再次起飞时,Harald会始终让我回到现实中。另一方面,我会鼓励他走得更远,因为这对长远来说是有益的。
我们还想比过去更紧密地与CMS发布团队合作。
我理解您想听取社区中所有人的意见,我们对J5的想法和思考。我们如何才能与您取得联系,以及任何想法的考虑时间框架是什么?
Harald:社区是我们最重要的信息来源,因此我们非常欢迎任何反馈、想法和愿望。Niels稍后会解释RFC流程,当然,您可以通过VP或Glip或任何其他渠道直接联系我们。根据想法的来源,应包括所有必要信息,如好处、原因、挑战、影响等。您的时间表非常紧张,因此我们希望您能尽快回复。
仅提及欢迎反馈,还需要代码贡献。有想法很好,但如果有人能实现它,那就更有帮助了。
Niels:是的,这对我们来说也非常重要。我们离产品太近了,以至于我们往往看不到实际上缺少什么。Joomla是一个通用CMS,旨在满足尽可能多的应用场景的需求。这就是为什么我们非常重视模块化、灵活性和可扩展性。仅由某些行业提出的特殊需求应保留给扩展。但任何有助于所有CMS用户的东西,在我看来,都应该属于核心。这就是我们需要您的输入的地方。
让我们知道您认为应该属于核心、您认为缺少或应该改变的内容。
为此,我们建立了一个RFC流程。有关如何使用该流程的说明请参阅https://github.com/joomla/rfc。别担心,这看起来比第一眼看上去要复杂!要开始流程,只需要两件事:一个描述其内容的总结,以及一个为什么这样好、绝对应该整合的理由(Why Bother)。如果您想通过邮件列表而不是GitHub提交您的提案,请在主题行中标注[Joomla 5]。
我们可以考虑在2023年2月之前收到的任何内容。然而,由于实施也需要一定的时间,所以越早越好。
核心和扩展开发者之间存在紧密的协同作用。
有没有什么想法和建议可以帮助扩展开发者?
Harald:扩展开发者是CMS生态系统的重要组成部分。因此,我们希望尽快为J5的变化提供指南。我们还想确保4到5之间的扩展升级尽可能简单,例如,j4扩展应该能够在j5上运行而无需太多修改。
Niels:基本上有两件事:首先,在alpha版本发布时,我们提前发布了一个已经包含所有重大更改的版本。如果开发人员使用这个版本向我们指出问题,我们仍然有机会进行应对。如果他们只在候选版本中这样做,那么船只已经起航了。其次,我们希望通过新旧版本的对比来记录更改,类似于PHP在公告中所做的。
能否像我希望的那样使用Rector,遗憾的是还不确定。
扩展开发者可以做一些什么来帮助核心?在alpha和beta发布时进行更多测试是否有助于将反馈问题和问题反馈给核心?
哈拉尔德:是的!扩展开发者通常比我们更了解CMS。所以,任何帮助都将非常感激。例如,尽早开始测试或贡献开发时间会非常好。
尼尔:当然!越早从开发者那里获得反馈,我们就能更好地考虑他们的需求。当然,如果扩展开发者能够提供人力支持开发,我们会非常高兴。总有太多事情要做,而人手却不够。
Joomla 4的开发时间有点长。你对Joomla 5有什么期望?你认为哪个时间表是现实且可行的?我看到J4.1在时间上控制得非常严格,计划在J4.0之后6个月发布,你认为这样的严格和可靠的发布计划对于一个主要版本来说可能吗?
哈拉尔德:正如之前提到的,这是我的目标之一。J4的开发时间很长,对社区来说是个大问题,我很高兴我们终于在Joomla的生日那天发布了它。对于Joomla! 4,我们改为6个月一个发布周期,这意味着我们每6个月发布一个次要版本。基于此,我们计划在2023年8月17日发布Joomla! 5.0。一旦开始开发Joomla! 5,我们将立即制定所有里程碑的发布路线图。
尼尔:基本上有两种发布计划:基于功能的或时间盒的。我们有一个决策,要求时间盒发布。因此,除非游戏规则在那时改变,否则Joomla 5将在2023年8月17日发布。对我们这些发布负责人来说,这意味着我们必须在第一个alpha版本之前完成所有架构变更。之后,架构将不再允许变更。同时,将开发功能,这些功能必须在beta阶段开始时完成。从那时起,只能修复bug。任何在此之前未完成的工作将不得不等待下一个版本。无法在此给出alpha和beta阶段的时间,它们尚未确定。请关注路线图以获取详细信息。
除了告诉你们我们希望在J5中看到什么,我们还能怎样帮助呢?
哈拉尔德:我们接受任何我们可以得到的帮助。由于Joomla!是一个100%社区驱动的CMS,它需要每个社区成员的参与。所以,如果你喜欢编码、编写文档、支持我们的基础设施、测试CMS、基于“现实世界”提供反馈,或者只是简单地想表示感谢,我们都欢迎。
尼尔:总是缺少三样东西:输入、反馈和人力。如果你愿意帮助Joomla并能编程,请帮助我们实现。如果你愿意帮助Joomla并能写作,请帮助我们编写文档。如果你愿意帮助Joomla并能沟通,请帮助我们传播信息。如果你愿意帮助Joomla,而且以上都不适合你,请联系志愿者参与团队——他们会为你找到一个位置!
感谢,哈拉尔德和尼尔。
请通过他们的社区电子邮件与他们联系,或者将你的想法和评论添加到GitHub讨论中。这是一个由活跃社区使项目变得更强大的社区项目。
在Joomla社区杂志上发表的一些文章代表了作者对特定主题的个人观点或经验,可能不符合Joomla项目的官方立场。
通过接受,您将访问由https://magazine.joomla.net.cn/之外第三方提供的服务
评论 22
很遗憾听到你考虑切换到 wp。
我正在走另一条路,即使我尊重这个其他 CMS。
我已经将几个网站从Joomla 3迁移到了Joomla 4。检查器可以改进,但已经是一个很好的改进。感谢那些做出贡献的人 :-)
有几个文档解释得非常好。这不是这里的话题,但我还是给你吧
https://magazine.joomla.net.cn/all-issues/august/pre-update-check-your-path-to-joomla-4
https://docs.joomla.org/Joomla_3.x_to_4.x_Step_by_Step_Migration/fr - https://docs.joomla.org/Pre-Update_Check/fr
https://docs.joomla.org/Planning_for_Mini-Migration_-_Joomla_3.10.x_to_4.x/fr
在课程结束后,如果你谈论mambo,那么转向Joomla 4的新体验肯定会更好。
我重复一遍,Joomla 5的“5”只是一个数字,没有任何迹象表明领导者会让从Joomla 4迁移到Joomla 5变得困难!
唯一可能达成一致的是,先进行大规模的用户咨询,然后由开发者决定