Skip to content

Commit e47ed00

Browse files
authored
Merge pull request #21 from justinhoward/fix-ci-matrix
Release v1.0.0: modernize CI matrix and raise Ruby floor to 3.1
2 parents 53f97ea + 76ba14c commit e47ed00

7 files changed

Lines changed: 43 additions & 30 deletions

File tree

.github/workflows/ci.yml

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,10 @@ jobs:
1414
strategy:
1515
fail-fast: false
1616
matrix:
17-
ruby: ['2.3', '2.4', '2.5', '2.6', '2.7', '3.0', jruby-head, truffleruby-head]
17+
ruby: ['3.1', '3.2', '3.3', '3.4', jruby-head, truffleruby-head]
1818
steps:
19-
- uses: actions/checkout@v3
19+
- uses: actions/checkout@v4
2020
- uses: ruby/setup-ruby@v1
21-
env:
22-
REDIS_VERSION: ${{ matrix.redis }}
2321
with:
2422
ruby-version: ${{ matrix.ruby }}
2523
bundler-cache: true
@@ -29,40 +27,40 @@ jobs:
2927
env:
3028
MYSQL_USER: root
3129
MYSQL_PASSWORD: root
32-
- uses: codecov/codecov-action@v3
33-
if: matrix.ruby == '3.0'
30+
- uses: codecov/codecov-action@v4
31+
if: matrix.ruby == '3.4'
3432
with:
3533
files: coverage/coverage.xml
3634
- run: bin/check-version
3735

3836
rubocop:
3937
runs-on: ubuntu-latest
4038
steps:
41-
- uses: actions/checkout@v3
39+
- uses: actions/checkout@v4
4240
- uses: ruby/setup-ruby@v1
4341
with:
44-
ruby-version: '2.7'
42+
ruby-version: '3.4'
4543
bundler-cache: true
4644
- run: bundle exec rubocop
4745

4846
yard:
4947
runs-on: ubuntu-latest
5048
steps:
51-
- uses: actions/checkout@v3
49+
- uses: actions/checkout@v4
5250
- uses: ruby/setup-ruby@v1
5351
with:
54-
ruby-version: '3.0'
52+
ruby-version: '3.4'
5553
bundler-cache: true
5654
- run: bin/yardoc --fail-on-warning
5755

5856
check_version:
5957
runs-on: ubuntu-latest
6058
if: startsWith(github.ref, 'refs/tags/v')
6159
steps:
62-
- uses: actions/checkout@v3
60+
- uses: actions/checkout@v4
6361
- uses: ruby/setup-ruby@v1
6462
with:
65-
ruby-version: '3.0'
63+
ruby-version: '3.4'
6664
bundler-cache: true
6765
- run: bin/check-version
6866

@@ -71,7 +69,7 @@ jobs:
7169
if: startsWith(github.ref, 'refs/tags/v')
7270
runs-on: ubuntu-latest
7371
steps:
74-
- uses: actions/checkout@v3
72+
- uses: actions/checkout@v4
7573
- name: Publish to RubyGems
7674
run: |
7775
mkdir -p $HOME/.gem

.rubocop.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ require:
33
- rubocop-rspec
44

55
AllCops:
6-
TargetRubyVersion: 2.3
6+
TargetRubyVersion: 3.1
77

88
Gemspec/DeprecatedAttributeAssignment: { Enabled: true }
99
Gemspec/RequireMFA: { Enabled: true }

CHANGELOG.md

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,23 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [1.0.0] - 2026-05-12
11+
12+
This release marks Cutoff's API as stable. There are no behavior changes
13+
since 0.5.2.
14+
15+
### Breaking
16+
17+
- Drop support for Ruby < 3.1. The minimum supported Ruby is now 3.1.
18+
`required_ruby_version` in the gemspec has been raised accordingly. #21
19+
justinhoward
20+
21+
### Changed
22+
23+
- Modernize CI matrix to Ruby 3.1, 3.2, 3.3, 3.4, jruby-head, and
24+
truffleruby-head, and update gem dependencies that had rotted out of
25+
CI in the interim. #21 justinhoward
26+
1027
## [0.5.2] - 2022-09-06
1128

1229
### Changed
@@ -81,7 +98,8 @@ to `Timeout::Error`. `CutoffError` changes from a class to a module.
8198
- Cutoff class
8299
- Mysql2 patch
83100

84-
[Unreleased]: https://github.com/justinhoward/cutoff/compare/v0.5.2...HEAD
101+
[Unreleased]: https://github.com/justinhoward/cutoff/compare/v1.0.0...HEAD
102+
[1.0.0]: https://github.com/justinhoward/cutoff/compare/v0.5.2...v1.0.0
85103
[0.5.2]: https://github.com/justinhoward/cutoff/compare/v0.5.1...v0.5.2
86104
[0.5.1]: https://github.com/justinhoward/cutoff/compare/v0.5.0...v0.5.1
87105
[0.5.0]: https://github.com/justinhoward/cutoff/compare/v0.4.2...v0.5.0

Gemfile

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,9 @@ gemspec
88
# here. This also allows us to use conditional dependencies that depend on the
99
# platform
1010

11-
not_jruby = %i[ruby mingw x64_mingw].freeze
11+
not_jruby = %i[ruby windows].freeze
1212

1313
gem 'actionpack'
14-
gem 'bundler', '>= 1.17', '< 3'
1514
gem 'byebug', platforms: not_jruby
1615
gem 'irb', '~> 1.0'
1716
# Minimum of 0.5.0 for specific error classes
@@ -25,9 +24,11 @@ gem 'yard', '~> 0.9.25', platforms: not_jruby
2524

2625
gem 'concurrent-ruby'
2726

28-
if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('2.6')
29-
gem 'rubocop', '1.34.1'
30-
gem 'rubocop-rspec', '2.12'
31-
gem 'simplecov', '~> 0.21.0'
32-
gem 'simplecov-cobertura', '~> 2.1'
33-
end
27+
gem 'rubocop', '1.34.1'
28+
gem 'rubocop-rspec', '2.12'
29+
gem 'simplecov', '~> 0.21.0'
30+
gem 'simplecov-cobertura', '~> 3.1'
31+
32+
# simplecov-cobertura crashes with REXML::ParseException: Malformed XML on
33+
# rexml >= 3.4.2. https://github.com/jessebs/simplecov-cobertura/issues/48
34+
gem 'rexml', '< 3.4.2'

cutoff.gemspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ Gem::Specification.new do |spec|
2424
spec.files = Dir['lib/**/*.rb', '*.md', '*.txt', '.yardopts']
2525
spec.require_paths = ['lib']
2626

27-
spec.required_ruby_version = '>= 2.3'
27+
spec.required_ruby_version = '>= 3.1'
2828

2929
spec.add_development_dependency 'rspec', '~> 3.10'
3030
spec.add_development_dependency 'rspec-rails', '~> 5.0'

lib/cutoff/version.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,6 @@
33
class Cutoff
44
# @return [Gem::Version] The current version of the cutoff gem
55
def self.version
6-
Gem::Version.new('0.5.2')
6+
Gem::Version.new('1.0.0')
77
end
88
end

spec/spec_helper.rb

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,7 @@
2727
require 'sidekiq/testing'
2828

2929
begin
30-
# We don't test Mysql2 on Ruby 2.3 since that would require
31-
# installing an old EOL version of OpenSSL
32-
if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('2.4')
33-
require 'cutoff/patch/mysql2'
34-
end
30+
require 'cutoff/patch/mysql2'
3531
rescue LoadError
3632
# Ok if mysql2 isn't available
3733
end

0 commit comments

Comments
 (0)