Flarum 2.0.0-rc.1 发布——迈向 2.0 版本的最后一公里

经过近三年的开发、八个测试版397 个合并的 PR30 位贡献者的努力,Flarum 2.0 现已发布为候选版本 1。

✅ 对于早期用户而言,此版本可安全用于生产环境。从当前版本到稳定版的升级路径完全受支持——从 rc.1 到 2.0.0 正式版的升级将非常顺畅。但仍需采取常规预防措施:备份数据库,如有条件,请先在本地或测试环境中进行测试,并制定回滚计划。

👀 你已经在运行它了。这个论坛——discuss.flarum.org——已经更新到rc.1版本。

🧪 想先体验 Flarum 2.0 吗?请访问nightly.flarum.site查看我们的每日构建演示版,该演示版每天都会根据最新2.x代码重新构建。


🧭“发布候选版本”的真正含义

RC 版本是我们认为可以发布的版本。它的功能已经全部实现,API 也已冻结,如果没有发现任何重大问题,rc.1 版本将直接升级为 2.0.0 版本,功能上没有任何变化。

事情是这样的:

  • 不再进行破坏性更改。扩展 API 已锁定。基于 rc.1 构建的兼容 2.x 版本的扩展程序仍然可以在 2.0.0 正式版上运行。
  • 从现在开始,升级路径将非常清晰。如果您目前使用的是 rc.1 版本,升级到 2.0.0 版本将非常顺利composer update,不会有任何意外。
  • 我们会迅速处理回归问题。任何针对 rc.1 版本报告的、会阻碍实际使用的问题都会被优先处理。

这就需要你们的帮助了——我们需要有人在真实的论坛上运行这个程序。我们看到的配置越多,2.0.0 版本发布时出现的问题就越少。

  • 安装它。可以在本地安装,也可以在测试环境中安装(如果有的话)——理想情况下,最好使用真实数据的副本进行安装。
  • 像使用论坛一样使用它。发帖、回复、审核、上传、搜索、自定义。试试你常用的扩展程序。
  • 请告诉我们您的使用体验——好的或坏的。例如,遇到的漏洞、升级不顺畅、扩展程序失效、用户界面不友好、以及莫名其妙的卡顿等等。另外,听到“它居然能用了”这样的反馈也真的会很有帮助。

报告地点:

  • 核心代码中的错误框架/框架问题
  • 一般反馈、问题、拓展行为——支持
  • 安全问题—— security@flarum.org(请勿公开发布)

不确定某个东西应该放在哪里?发帖到讨论区,我们会帮你整理。


✨rc.1 版本有哪些新内容?

rc.1 是一个精益求精的版本。除了在 beta 测试阶段收到的一些小改动之外,此次更新的重点在于性能、安全性和外观的优化。以下更改是在 rc.1beta.8发布后添加的。

🔒安全加固

rc.1 版本中包含一系列密码流和会话管理方面的修复。

  • 现在提交密码重置令牌时会检查其是否过期。此前,过期时间仅在重置表单渲染时进行验证——即使令牌已过期,如果直接提交,仍然可以完成重置。
  • 现在更改密码将使所有现有会话失效。密码更改后,该用户的所有会话、记住我令牌和开发者令牌都将被删除。
  • 请求重置密码会删除旧的密码。任何用户在任何时候都只能存在一个有效的重置令牌。
  • 从 URL 获取头像的功能已得到加强。用于检索远程头像的 Guzzle 客户端现在会禁用重定向、强制执行较短的超时时间,并在将过大的响应缓冲到内存之前将其拒绝。
  • 现在,Logo、网站图标和深色Logo的上传都会经过验证。此前,只有头像会经过图像验证器——rc.1版本引入了一个共享AbstractImageValidator验证器,并将其集成到每个图像上传控制器中,从而弥补了管理员图像端点之前接受非图像上传的缺陷。

⚡表现

  • 讨论列表 N+1 查询已消除。讨论列表中的 N+1 模式集群(标签权限子查询、点赞/群组预加载、删除请求的可见性保护以及消息计数)已被消除——论坛索引现在发出的查询数量约为 beta.8 版本的四分之一。
  • 新的复合索引已上线notifications大型论坛上未读计数查询速度明显变慢。(user_id, is_deleted, read_at, type)复合索引解决了这个问题。
  • 标签别名现在只需一次查询即可解析。 TagFilter之前每个别名都需要一次查询;rc.1 将它们批量合并为一次查询whereIn
  • 前端性能优化通过。文档头部添加了预连接/DNS预取提示,fetchpriority并应用于Logo和预加载提示,同时采用基于sessionStorage的CSS加载器,消除了冷启动时可能出现的未样式内容闪烁现象。此外,视口元数据也已放宽,因此在移动设备上不再会阻止捏合缩放。

➕小幅添加

  • 扩展程序管理页面上的“重置设置”按钮。每个捆绑扩展程序的管理页面现在都有一个“重置为默认值”按钮,该按钮由一个新的DELETE /api/settings端点和一个Settings\Event\Reset事件支持,扩展程序可以监听该事件以进行自我清理。
  • 高分辨率头像。上传的头像现在会自动生成@2x各种@3x变体,并且该<Avatar>组件会渲染一个高分辨率图像srcset,因此头像在 Retina 显示屏和移动显示屏上看起来都很清晰。
  • 弃用扩展程序同步每周运行一次。面向管理员的弃用软件包警告系统现在每周重新同步flarum/弃用扩展程序列表,并提供“立即检查”触发器供用户按需使用,以及在已安装的扩展程序被弃用时向管理员发送通知。
  • forum-widget扩展程序类别。新增的组件式扩展程序类别,位于扩展程序列表中的主题和语言包之间。
  • 存在通道授权扩展器。实时扩展程序新增了一个Realtime::authorizePresenceChannel扩展器,允许扩展程序在 WebSocket 认证层控制对存在通道的访问。

🛠️修复与抛光

📱前端和移动端

  • ReplyPlaceholder在移动设备上进行编辑时显示头像和徽章
  • 返回导航不再丢失已加载的页面或滚动位置——PaginatedListState现在按值而不是按引用比较参数。
  • UserCard控制图标已恢复,移动控制按钮再次可见。
  • 移动端管理导航下拉菜单不再闪烁。
  • 修复了移动端管理员状态小部件的布局——现在项目以网格形式排列,工具按钮跨越整行。
  • FontAwesome Kit 不再覆盖display: none隐藏图标。同时,标签选择和订阅下拉菜单的标记也进行了清理。
  • 在某些布局中,页面底部的边距不再被截断。
  • 无线电组不再冲突——同一页面上的多个无线电组不再共享一个name,也不会互相干扰。
  • 现在,管理员头像驱动程序选择器在全新安装时会显示正确的默认值,并且已放弃同步状态消息有适当的填充。

🧭路由和URL

  • URL 末尾的斜杠不再导致 404 错误。 ResolveRoute现在会在分发之前移除末尾的斜杠,因此/d/123-foo/解析结果与/d/123-foo.
  • 名称格式错误的扩展程序不再发出 PHP 警告。 ExtensionManager现在会跳过格式不符的包名,vendor/package而不是nameToId()抛出未定义数组键的警告并导致程序崩溃。

🏷️标签

  • bypassTagCounts现在对于拥有权限的非管理员用户也有效——之前的检查使用了仅限管理员使用的快捷方式,而它本应该调用hasPermission
  • 标签首页元描述All Tags现在使用您的论坛描述(仅当未设置描述时才回退到翻译)。

📌

  • id子查询中的歧义列问题is_unread_sticky已修复——使用 join on 的扩展discussions(例如 byobu)不再会因歧义列错误而导致 MySQL 崩溃。

🔌API 和序列化

  • Attribute字段现在可以正确运行了serializeValue——之前一直存在的错误(例如布尔值allowSignUp被当作字符串输出)已经得到修复。
  • Attribute使用类型转换返回数组时,数组值会被保留Str,从而避免扩展程序中出现“数组到字符串转换”错误。
  • Arr::serialize()现在支持JsonSerializable类似这样的对象MessageBag

💬社区用语

  • 为了保持一致性,将面向用户的字符串中的“community”替换为“forum”。

🌱生态系统已准备就绪

rc.1 向扩展生态系统发出信号:API 已稳定。如果您维护着某个扩展,现在是时候发布与 2.x 版本兼容的版本了。

语言包—— @rob006一直在协调语言包的更新。如果您维护着某个语言包的翻译,请关注这些帖子。

Flarum之友——FoF目录已基本涵盖2.x版本。感谢所有参与者。

扩展程序开发者们——最终的兼容性问题正在优先处理,介于 rc.1 和稳定版之间。如果核心版本中的某些问题阻碍了您使用新版本,请提交 issue。


🚀自己试试

  • 在线演示— nightly.flarum.site,每日重建
  • 就在这里——discuss.flarum.org 正在运行 rc.1 版本。
  • 更新您的安装—— composer update -W,然后php flarum migrate,,php flarum cache:clearphp flarum assets:publish(如果可以,请先备份,并在本

原文:https://discuss.flarum.org/d/39118-flarum-200-rc1-released-the-last-mile-to-20

订阅评论
提醒
guest的头像

0 评论
内联反馈
查看所有评论
0
希望看到您的想法,请您发表评论x