2024年2月9日,星期五

Rails Foundation 文档、Query Logs source_location、Dockerfile 包含 jemalloc

作者:zzak

大家好,我是 zzak。让我们一起来看看本周 Rails 代码库的改动。

Rails Foundation 文档
一个团队已经成立,致力于改进现有的 Rails 文档。该项目合并请求(PR)将开放一周供社区审查。本周开放

  • ActiveJob.perform_all_later
  • Action Text
  • Action Mailbox

更多内容即将推出!

正确同步 Mysql2Adapter#active?TrilogyAdapter#active?
以及 disconnect!verify!
这通常不是大问题,因为线程之间不能共享连接,但在运行事务性测试或系统测试时需要,并且可能导致 SEGV。

实现 “Rails::TestUnitReporter#prerecord”
通过向 Rails TestUnitReporter 类添加此方法,Minitest 将会拾取并调用它,然后再调用测试,从而提前打印测试名称。
这对于通过开启详细模式来调试缓慢和卡死的测试非常有用。这样,在进程死锁之前,卡死的测试名称就会被打印出来。

修复 JSON 编码 ActiveStorage::Filename
此 PR 修复了一个文件名缺少引号的 bug,导致生成无效的 JSON。

JSON.generate(foo: ActiveStorage::Filename.new("bar.pdf")) # => '{"foo":bar.pdf}'

为查询日志标签支持 :source_location 标签选项
此 PR 增加了对在 Rails 日志中显示查询定义位置的支持,当使用 Active Record Query Logs 时。

# application.rb
config.active_record.query_log_tags_enabled = true
config.active_record.query_log_tags = [ :source_location ]

在默认 Dockerfile 中设置 jemalloc 以优化内存分配
Ruby 使用 malloc 可能会导致内存碎片问题,尤其是在使用 Puma 等多线程时。
切换到使用不同模式来避免碎片化的分配器可以显著减少内存使用量。

您可以在这里查看所有更改。 上周我们有18 位贡献者为 Rails 代码库做出了贡献!

下次再见!

订阅以通过邮件获取这些更新。