Skip to content

Commit ffa5573

Browse files
authored
Merge pull request #1427 from Shopify/liz/drop-ruby-versions
[Breaking] Drop Ruby versions 3.0 and 3.1
2 parents 2a25d93 + e9cc781 commit ffa5573

File tree

4 files changed

+16
-3
lines changed

4 files changed

+16
-3
lines changed

.github/workflows/build.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,9 @@ jobs:
1111
strategy:
1212
matrix:
1313
version:
14-
- 3.0
15-
- 3.1
1614
- 3.2
1715
- 3.3
16+
- 3.4
1817
steps:
1918
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
2019
- name: Set up Ruby ${{ matrix.version }}

BREAKING_CHANGES_FOR_V16.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,18 @@
11
# Breaking change notice for version 16.0.0
22

3+
## Minimum Ruby Version Requirement
4+
5+
The minimum required Ruby version has been updated from 3.0 to 3.2.
6+
7+
### Why this change?
8+
9+
Ruby 3.0 and 3.1 have reached End of Life (EOL).
10+
11+
### Migration Guide
12+
13+
If you're currently using Ruby 3.0 or 3.1, you'll need to upgrade to Ruby 3.2 or higher before upgrading to shopify-api-ruby v16.0.0.
14+
15+
**Note:** Ruby 3.2+ includes performance improvements and new features. Most applications should not require code changes beyond updating the Ruby version itself.
316
## Removal of `Session#serialize` and `Session.deserialize` methods
417

518
The `Session#serialize` and `Session.deserialize` methods have been removed due to a security vulnerability. The `deserialize` method used `Oj.load` without safe mode, which allows instantiation of arbitrary Ruby objects.

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
Note: For changes to the API, see https://shopify.dev/changelog?filter=api
44
## Unreleased
5+
- ⚠️ [Breaking] Minimum required Ruby version is now 3.2. Ruby 3.0 and 3.1 are no longer supported.
56
- ⚠️ [Breaking] Removed `Session#serialize` and `Session.deserialize` methods due to security concerns (RCE vulnerability via `Oj.load`). These methods were not used internally by the library. If your application relies on session serialization, use `Session.new()` to reconstruct sessions from stored attributes instead.
67

78
### 15.0.0

shopify_api.gemspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ Gem::Specification.new do |s|
3030

3131
s.license = "MIT"
3232

33-
s.required_ruby_version = ">= 3.0"
33+
s.required_ruby_version = ">= 3.2"
3434

3535
s.add_runtime_dependency("activesupport")
3636
s.add_runtime_dependency("concurrent-ruby")

0 commit comments

Comments
 (0)