Skip to content

Commit c30fe47

Browse files
authored
Import TWIR 08/12 (#334)
* Import TWIR 08/12 * wordsmithg
1 parent 2ff501c commit c30fe47

File tree

1 file changed

+99
-0
lines changed

1 file changed

+99
-0
lines changed
Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
---
2+
layout: post
3+
title: "Rails 7.2 released, Thruster by default for Rails 8, new Guides PRs, and much more!"
4+
categories: news
5+
author: vipulnsward
6+
og_image: assets/images/this-week-in-rails.png
7+
published: true
8+
date: 2024-08-12
9+
---
10+
11+
Hey everyone, Happy Monday!
12+
[Vipul](https://www.saeloun.com/team/vipul) here with the latest updates for This Week in Rails (from last week 😅). Let's dive in.
13+
14+
[Rails 7.2 has been released](https://rubyonrails.org/2024/8/10/Rails-7-2-0-has-been-released)
15+
Rails 7.2 has been released!
16+
17+
Head over to the [release post](https://rubyonrails.org/2024/8/10/Rails-7-2-0-has-been-released) for more details,
18+
but in short, it ships with better production defaults, Dev containers, new guides design, and much much more!
19+
20+
21+
**New Guides Pull Requests for review**
22+
Two new Guides Pull Requests are now open for community review. If you are well versed in Rails Routing, Active Record Associations, please review and submit your feedback here:
23+
24+
- [Rails Routing PR](https://github.com/rails/rails/pull/52521)
25+
- [Active Record Associations PR](https://github.com/rails/rails/pull/52523)
26+
27+
[Use Thruster by default for Rails 8](https://github.com/rails/rails/pull/51793)
28+
[Thruster](https://github.com/basecamp/thruster/) is an asset compression and caching proxy with X-Sendfile acceleration that speeds up simple production-ready deployments of Rails applications.
29+
It runs alongside the Puma and usually behind the Kamal 2 proxy, which offers HTTP/2 and SSL auto-certificates,
30+
to help your app run efficiently and safely on the open Internet.
31+
32+
This change configures the use of Thruster in the Dockerfile by default, starting with Rails 8.
33+
34+
[Speed up `ActionDispatch::Routing::Mapper::Scope#[]` by merging frame hashes](https://github.com/rails/rails/pull/52525)
35+
Before this change, `ActionDispatch::Routing::Mapper::Scope#[]` lookup was iterating an array, which means access time wasn't constant, and did not actually behave like a hash.
36+
37+
This Pull Request changes the scope implementation to make the lookup faster by just merging inherited values into the immediate hash.
38+
39+
This helps avoid needless iterations for deeply nested routes leading it to be **~1.2x** faster.
40+
41+
[Remove redundant Puma configuration settings](https://github.com/rails/rails/pull/52541)
42+
This Pull Request removes the following redundant environment settings in `puma.rb`:
43+
44+
```ruby
45+
# Specifies the `environment` that Puma will run in.
46+
rails_env = ENV.fetch("RAILS_ENV", "development")
47+
environment rails_env
48+
49+
case rails_env
50+
when "production"
51+
preload_app!
52+
when "development"
53+
# Specifies a very generous `worker_timeout` so that the worker
54+
# isn't killed by Puma when suspended by a debugger.
55+
worker_timeout 3600
56+
end
57+
```
58+
59+
These changes address recent Puma upgrades that-
60+
61+
- Puma now automatically sets its environment from RAILS_ENV.
62+
- `preload_app!` is automatically set when in cluster mode.
63+
- `worker_timeout` is a cluster mode feature, and we don't run that in dev.
64+
65+
Another Puma change is that `WEB_CONCURRENCY` is automatically used from ENV and is now parsed directly, so it can't be extended with "auto" in the Puma config.
66+
67+
[This related change](https://github.com/rails/rails/commit/142e6ab2c1e3cb7df4b82e20e2a1cd676b755714) addresses this issue and removes the redundant dynamic setting for the value from `puma.rb`
68+
69+
[Improve default action mailer configuration](https://github.com/rails/rails/pull/52513)
70+
This Pull Request introduces a few improvements to the default Action Mailer configuration setup:
71+
72+
- Suggests a default SMTP server configuration in a comment in `production.rb`.
73+
- Sets a default example.com host for mailer links in production too.
74+
- Uses the same comment style in all the env settings for mailer host.
75+
76+
[Make automatic detection of processor count in default Puma config optional and non-default](https://github.com/rails/rails/pull/52533)
77+
Using `Concurrent.available_processor_count` helper by default in `puma.rb` template might result in incorrect configurations on some cloud hosts with shared CPUs or platforms that inaccurately report CPU counts.
78+
79+
This Pull Request, changes this default configuration to be optional and non-default.
80+
81+
[Let allow_browser allow bots](https://github.com/rails/rails/pull/52531)
82+
The `allow_browser` feature blocks requests with user agents that don't match a specific set of browser versions. This runs the risk of preventing sites from being crawled by some search engines.
83+
84+
This change fixes this behavior to bypass these version restrictions in the case of certain crawlers and bots.
85+
86+
[Allow disable_extension to be called with schema-qualified name for PostgreSQL](https://github.com/rails/rails/pull/52452)
87+
This change allows `disable_extension` to be called with schema-qualified name for PostgreSQL.
88+
89+
This adds parity with `enable_extension`, the `disable_extension` method can be called with a schema-qualified
90+
name (e.g. `disable_extension "myschema.pgcrypto"`). Note that PostgreSQL's `DROP EXTENSION` does not
91+
actually take a schema name (unlike `CREATE EXTENSION`), so the resulting SQL statement will only name
92+
the extension, e.g. `DROP EXTENSION IF EXISTS "pgcrypto"`.
93+
94+
_You can view the whole list of changes [here](https://github.com/rails/rails/compare/@%7B2024-07-13%7D...main@%7B2024-07-19%7D)._
95+
_We had [36 contributors](https://contributors.rubyonrails.org/contributors/in-time-window/20240803-20240809) to the Rails codebase past week!_
96+
97+
Until next time!
98+
99+
_[Subscribe](https://world.hey.com/this.week.in.rails) to get these updates mailed to you._

0 commit comments

Comments
 (0)