Skip to content

Commit 0fb85b4

Browse files
committed
Release Rails 7.2.0
1 parent 9dd1528 commit 0fb85b4

File tree

7 files changed

+214
-53
lines changed

7 files changed

+214
-53
lines changed

Gemfile.lock

+49-34
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
GEM
22
remote: https://rubygems.org/
33
specs:
4-
activesupport (7.1.3.2)
4+
activesupport (7.1.3.4)
55
base64
66
bigdecimal
77
concurrent-ruby (~> 1.0, >= 1.0.2)
@@ -11,19 +11,19 @@ GEM
1111
minitest (>= 5.1)
1212
mutex_m
1313
tzinfo (~> 2.0)
14-
addressable (2.8.6)
15-
public_suffix (>= 2.0.2, < 6.0)
14+
addressable (2.8.7)
15+
public_suffix (>= 2.0.2, < 7.0)
1616
base64 (0.2.0)
17-
bigdecimal (3.1.7)
17+
bigdecimal (3.1.8)
1818
coffee-script (2.4.1)
1919
coffee-script-source
2020
execjs
2121
coffee-script-source (1.12.2)
2222
colorator (1.1.0)
2323
commonmarker (0.23.10)
24-
concurrent-ruby (1.2.3)
24+
concurrent-ruby (1.3.3)
2525
connection_pool (2.4.1)
26-
dnsruby (1.72.0)
26+
dnsruby (1.72.2)
2727
simpleidn (~> 0.2.1)
2828
drb (2.2.1)
2929
em-websocket (0.5.3)
@@ -33,11 +33,21 @@ GEM
3333
ffi (>= 1.15.0)
3434
eventmachine (1.2.7)
3535
execjs (2.9.1)
36-
faraday (2.9.0)
36+
faraday (2.10.1)
3737
faraday-net_http (>= 2.0, < 3.2)
38-
faraday-net_http (3.1.0)
38+
logger
39+
faraday-net_http (3.1.1)
3940
net-http
40-
ffi (1.16.3)
41+
ffi (1.17.0-aarch64-linux-gnu)
42+
ffi (1.17.0-aarch64-linux-musl)
43+
ffi (1.17.0-arm-linux-gnu)
44+
ffi (1.17.0-arm-linux-musl)
45+
ffi (1.17.0-arm64-darwin)
46+
ffi (1.17.0-x86-linux-gnu)
47+
ffi (1.17.0-x86-linux-musl)
48+
ffi (1.17.0-x86_64-darwin)
49+
ffi (1.17.0-x86_64-linux-gnu)
50+
ffi (1.17.0-x86_64-linux-musl)
4151
forwardable-extended (2.6.0)
4252
gemoji (4.1.0)
4353
github-pages (231)
@@ -95,7 +105,7 @@ GEM
95105
activesupport (>= 2)
96106
nokogiri (>= 1.4)
97107
http_parser.rb (0.8.0)
98-
i18n (1.14.4)
108+
i18n (1.14.5)
99109
concurrent-ruby (~> 1.0)
100110
jekyll (3.9.5)
101111
addressable (~> 2.4)
@@ -213,38 +223,40 @@ GEM
213223
listen (3.9.0)
214224
rb-fsevent (~> 0.10, >= 0.10.3)
215225
rb-inotify (~> 0.9, >= 0.9.10)
226+
logger (1.6.0)
216227
mercenary (0.3.6)
217-
mini_portile2 (2.8.5)
218228
minima (2.5.1)
219229
jekyll (>= 3.5, < 5.0)
220230
jekyll-feed (~> 0.9)
221231
jekyll-seo-tag (~> 2.1)
222-
minitest (5.22.3)
232+
minitest (5.24.1)
223233
mutex_m (0.2.0)
224234
net-http (0.4.1)
225235
uri
226-
nokogiri (1.16.3)
227-
mini_portile2 (~> 2.8.2)
236+
nokogiri (1.16.7-aarch64-linux)
228237
racc (~> 1.4)
229-
nokogiri (1.16.3-aarch64-linux)
238+
nokogiri (1.16.7-arm-linux)
230239
racc (~> 1.4)
231-
nokogiri (1.16.3-arm64-darwin)
240+
nokogiri (1.16.7-arm64-darwin)
232241
racc (~> 1.4)
233-
nokogiri (1.16.3-x86_64-darwin)
242+
nokogiri (1.16.7-x86-linux)
234243
racc (~> 1.4)
235-
nokogiri (1.16.3-x86_64-linux)
244+
nokogiri (1.16.7-x86_64-darwin)
245+
racc (~> 1.4)
246+
nokogiri (1.16.7-x86_64-linux)
236247
racc (~> 1.4)
237248
octokit (4.25.1)
238249
faraday (>= 1, < 3)
239250
sawyer (~> 0.9)
240251
pathutil (0.16.2)
241252
forwardable-extended (~> 2.6)
242-
public_suffix (5.0.4)
243-
racc (1.7.3)
253+
public_suffix (5.1.1)
254+
racc (1.8.1)
244255
rb-fsevent (0.11.2)
245-
rb-inotify (0.10.1)
256+
rb-inotify (0.11.1)
246257
ffi (~> 1.0)
247-
rexml (3.2.6)
258+
rexml (3.3.4)
259+
strscan
248260
rouge (3.30.0)
249261
rubyzip (2.3.2)
250262
safe_yaml (1.0.5)
@@ -256,33 +268,36 @@ GEM
256268
sawyer (0.9.2)
257269
addressable (>= 2.3.5)
258270
faraday (>= 0.17.3, < 3)
259-
simpleidn (0.2.1)
260-
unf (~> 0.1.4)
271+
simpleidn (0.2.3)
272+
strscan (3.1.0)
261273
terminal-table (1.8.0)
262274
unicode-display_width (~> 1.1, >= 1.1.1)
263275
typhoeus (1.4.1)
264276
ethon (>= 0.9.0)
265277
tzinfo (2.0.6)
266278
concurrent-ruby (~> 1.0)
267-
unf (0.1.4)
268-
unf_ext
269-
unf_ext (0.0.9.1)
270279
unicode-display_width (1.8.0)
271280
uri (0.13.0)
272281
webrick (1.8.1)
273282

274283
PLATFORMS
275-
aarch64-linux
276-
arm64-darwin-21
277-
arm64-darwin-22
278-
ruby
279-
x86_64-darwin-20
280-
x86_64-darwin-21
284+
aarch64-linux-gnu
285+
aarch64-linux-musl
286+
arm-linux
287+
arm-linux-gnu
288+
arm-linux-musl
289+
arm64-darwin
290+
x86-linux
291+
x86-linux-gnu
292+
x86-linux-musl
293+
x86_64-darwin
281294
x86_64-linux
295+
x86_64-linux-gnu
296+
x86_64-linux-musl
282297

283298
DEPENDENCIES
284299
github-pages
285300
webrick (~> 1.7)
286301

287302
BUNDLED WITH
288-
2.4.19
303+
2.5.10

_config.yml

+1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ exclude:
1616
- Gemfile
1717
- Gemfile.lock
1818
- README.md
19+
- bin
1920

2021
collections:
2122
pages:

_data/version.yml

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
label: Rails 7.1.3.4
2-
date: June 4, 2024
3-
url: /2024/6/4/Rails-Versions-6-1-7-8-7-0-8-4-and-7-1-3-4-have-been-released
1+
label: Rails 7.2.0
2+
date: August 9, 2024
3+
url: /2024/8/9/Rails-7-2-0-has-been-released

_pages/maintenance.html

+30-16
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
<div class="heading__body">
1212
<div class="heading__headline common-headline">
1313
<h1>Maintenance policy.</h1>
14-
<h4><strong>Support is divided into four groups:</strong> new features, bug fixes, security issues, and severe security issues.</h4>
14+
<h4><strong>Support is divided into three groups:</strong> new features, bug fixes, and security issues, and severe security issues.</h4>
1515
</div>
1616
</div>
1717
</div>
@@ -21,25 +21,39 @@ <h4><strong>Support is divided into four groups:</strong> new features, bug fixe
2121
<div class="container">
2222
<div class="text__body">
2323
<div class="text__content common-content">
24-
<h3>XYZ Formatting</h3>
24+
<h3 id="new_features">New Features</h3>
25+
<p>We aim to release a version containing new features every six months. In the rare case where
26+
no release was made in one year, we will extend the support period for the previous release
27+
until the next release is made.</p>
28+
<hr class="divider" />
29+
<h3 id="bug_fixes">Bug Fixes</h3>
30+
<p>Minor releases will receive bug fixes for one year after the first release in
31+
its series. For example, if a theoretical 1.1.0 is released on January 1, 2023, it
32+
will receive bug fixes until January 1, 2024. After that, it will be considered
33+
unsupported.</p>
34+
<h6>List of currently supported releases</h6>
2535
<ul>
26-
<li><strong>Major X: </strong> New features, will likely contain API changes. The difference between Rails’ minor and major releases is the magnitude of breaking changes, and usually reserved for special occasions.</li>
27-
<li><strong>Minor Y: </strong> New features, may contain API changes. Breaking changes are paired with deprecation notices in the previous minor or major release.</li>
28-
<li><strong>Patch Z: </strong> Only bug fixes, no API changes, no new features. Except as necessary for security fixes.</li>
36+
<li><strong>7.2.x</strong> - Supported until August 9, 2025</li>
37+
<li><strong>7.1.x</strong> - Supported until October 1, 2024</li>
38+
</li>
2939
</ul>
3040
<hr class="divider" />
31-
<h3>New Features</h3>
32-
<p>Only added to the main branch and will not be made available in patch releases.</p>
33-
<hr class="divider" />
34-
<h3>Bug Fixes</h3>
35-
<p>Only the latest release series will receive bug fixes. Bug fixes are typically added to the main branch, and backported to the x-y-stable branch of the latest release series if there is sufficient need. When enough bugs fixes have been added to an x-y-stable branch, a new patch release is built from it. For example, a theoretical 1.2.2 patch release would be built from the 1-2-stable branch.</p>
36-
<p>In special situations, where someone from the <a href="/community#core">Rails core team</a> agrees to support more series, they are included in the list of supported series.</p>
37-
<p><strong>Currently included series:</strong> 7.0.Z.</p>
38-
<hr class="divider" />
39-
<h3>Security Issues</h3>
40-
<p>See the <a href="/security">Security policy</a> for more details.</p>
41+
<h3 id="security">Security Issues</h3>
42+
<p>
43+
Minor releases will receive security fixes for two years after the first release in
44+
its series. For example, if a theoretical 1.1.0 is released on January 1, 2023, it
45+
will receive security fixes until January 1, 2025. After that, it will reach its
46+
end-of-life.
47+
</p>
48+
<h6>List of currently supported releases</h6>
49+
<ul>
50+
<li><strong>7.2.x</strong> - Supported until August 9, 2026</li>
51+
<li><strong>7.1.x</strong> - Supported until October 1, 2025</li>
52+
<li><strong>7.0.x</strong> - Supported until April 1, 2025</li>
53+
<li><strong>6.1.x</strong> - Supported until October 1, 2024</li>
54+
</ul>
4155
<hr class="divider" />
42-
<h3>Unsupported Release Series</h3>
56+
<h3 id="unsupported">Unsupported Release Series</h3>
4357
<p>When a release series is no longer supported, it’s your own responsibility to deal with bugs and security issues. We may provide backports of the fixes and publish them to git, however there will be no new versions released. If you are not comfortable maintaining your own versions, you should upgrade to a supported version.</p>
4458
</div>
4559
</div>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
---
2+
layout: post
3+
title: 'Rails 7.2: Better production defaults, Dev containers, new guides design, and more!'
4+
categories: releases
5+
author: rafaelfranca
6+
published: true
7+
date: 2024-08-09 21:30:00 -03:00
8+
---
9+
10+
We are happy to announce the release of Rails 7.2!
11+
There has been [close to 2,500 commits](https://github.com/rails/rails/compare/v7.1.0...7-2-stable) made by [over 400 contributors](https://contributors.rubyonrails.org/edge/contributors) since Rails 7.1, so this release is packed with new features and improvements.
12+
13+
## Better production defaults
14+
15+
Rails 7.2 comes with better productions defaults to help you build more efficient applications.
16+
17+
Starting with YJIT. YJIT is Ruby's JIT compiler that is available in CRuby since Ruby 3.1. It can provide significant performance improvements for Rails applications, offering 15-25% latency improvements.
18+
19+
In Rails 7.2, [YJIT is enabled by default if running Ruby 3.3 or newer](https://edgeguides.rubyonrails.org/7_2_release_notes.html#enable-yjit-by-default-if-running-ruby-3-3).
20+
21+
After careful consideration, investigation, and based on battle-tested experience from applications running in
22+
production, we decided to change the [default number of threads in Puma from 5 to 3](https://edgeguides.rubyonrails.org/7_2_release_notes.html#set-a-new-default-for-the-puma-thread-count).
23+
This change is to improve latency (request response time) by reducing the time Ruby spends waiting for the Global VM Lock (GVL) to release when the thread count is too high.
24+
25+
And the default Dockerfile generated by Rails now includes [jemalloc to optimize memory allocation](https://edgeguides.rubyonrails.org/7_2_release_notes.html#setup-jemalloc-in-default-dockerfile-to-optimize-memory-allocation).
26+
27+
https://guides.rubyonrails.org/7_2_release_notes.html
28+
29+
## Development containers configuration for applications
30+
31+
A [development container](https://containers.dev/) (or dev container for short) allows you to use a container
32+
as a full-featured development environment.
33+
34+
Rails 7.2 adds the ability to generate a development container configuration for your application. This configuration
35+
includes a `.devcontainer` folder with a `Dockerfile`, a `docker-compose.yml` file, and a `devcontainer.json` file.
36+
37+
By default, the dev container contains the following:
38+
39+
* A Redis container for use with Kredis, Action Cable, etc.
40+
* A database (SQLite, Postgres, MySQL or MariaDB)
41+
* A Headless Chrome container for system tests
42+
* Active Storage configured to use the local disk and with preview features working
43+
44+
To generate a new application with a development container, you can run:
45+
46+
```bash
47+
rails new myapp --devcontainer
48+
```
49+
50+
For existing applications, a `devcontainer` command is now available:
51+
52+
```bash
53+
rails devcontainer
54+
```
55+
56+
For more information, see the [Getting Started with Dev Containers](https://guides.rubyonrails.org/getting_started_with_devcontainer.html) guide.
57+
58+
### New design for the Rails guides
59+
60+
When Rails 7.0 landed in December 2021, it came with a fresh new homepage and a new boot screen. The design of the
61+
guides, however, has remained largely untouched since 2009 - a point which hasn’t gone unnoticed (we heard your feedback).
62+
63+
With all of the work right now going into removing complexity from the Rails framework and making the documentation
64+
consistent, clear, and up-to-date, it was time to tackle the design of the guides and make them equally modern, simple,
65+
and fresh.
66+
67+
We worked with UX designer [John Athayde](https://meticulous.com/) to take the look and feel of the homepage and
68+
transfer that over to the Rails guides to make them clean, sleek, and up-to-date.
69+
70+
The layout will remain the same, but from today you will see the following changes reflected in the guides:
71+
72+
* Cleaner, less busy design.
73+
* Fonts, color scheme, and logo more consistent with the home page.
74+
* Updated iconography.
75+
* Simplified navigation.
76+
* Sticky "Chapters" navbar when scrolling.
77+
78+
See the [announcement blog post for some before/after images](https://rubyonrails.org/2024/3/20/rails-guides-get-a-facelift).
79+
80+
## Other improvements
81+
82+
Rails 7.2 also includes many other improvements and new features. Here are a few highlights:
83+
84+
* Add browser version guard by default.
85+
* Make Ruby 3.1 the new minimum version.
86+
* Default Progressive Web Application (PWA) files.
87+
* Add omakase RuboCop rules by default.
88+
* Add GitHub CI workflow by default to new applications.
89+
* Add Brakeman by default to new applications.
90+
* Prevent jobs from being scheduled within transactions.
91+
* Per transaction commit and rollback callbacks.
92+
* Suggest puma-dev configuration in bin/setup.
93+
94+
Please check the [Rails 7.2 release notes](https://guides.rubyonrails.org/7_2_release_notes.html) for more details.
95+
96+
## What's next?
97+
98+
The team is already hard at work on Rails 8.0, that we plan to release later this year and we are looking forward to
99+
interact with the community and share presents at Rails World, in September this year.

bin/jekyll

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
#!/usr/bin/env ruby
2+
# frozen_string_literal: true
3+
4+
#
5+
# This file was generated by Bundler.
6+
#
7+
# The application 'jekyll' is installed as part of a gem, and
8+
# this file is here to facilitate running it.
9+
#
10+
11+
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../Gemfile", __dir__)
12+
13+
bundle_binstub = File.expand_path("bundle", __dir__)
14+
15+
if File.file?(bundle_binstub)
16+
if File.read(bundle_binstub, 300).include?("This file was generated by Bundler")
17+
load(bundle_binstub)
18+
else
19+
abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
20+
Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
21+
end
22+
end
23+
24+
require "rubygems"
25+
require "bundler/setup"
26+
27+
load Gem.bin_path("jekyll", "jekyll")

bin/server

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
#!/usr/bin/env bash
2+
3+
set -e
4+
5+
bin/jekyll s -I -w --livereload

0 commit comments

Comments
 (0)