Skip to content

Commit 432cb2c

Browse files
authored
fix: Deprecate Ruby 2.6 and Drop support for Ruby 2.5 (#132)
* fix: print deprecation warning if using ruby < 2.7 * chore: continue testing 2.5 and 2.6 * drop support for 2.5 and deprecate 2.6
1 parent ae4ebfc commit 432cb2c

File tree

6 files changed

+63
-13
lines changed

6 files changed

+63
-13
lines changed

.github/workflows/rspec_and_release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ jobs:
1212
matrix:
1313
os: [ubuntu-latest, macos-latest]
1414
# Due to https://github.com/actions/runner/issues/849, we have to use quotes for '3.0'
15-
ruby: [2.7, '3.0', '3.1']
15+
ruby: [2.6, 2.7, '3.0', '3.1']
1616
runs-on: ${{ matrix.os }}
1717
steps:
1818
- uses: actions/checkout@v3

Gemfile.lock

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@ PATH
22
remote: .
33
specs:
44
datadog_backup (2.0.1)
5-
amazing_print (= 1.4.0)
6-
concurrent-ruby (= 1.1.10)
7-
deepsort (= 0.4.5)
8-
diffy (= 3.4.2)
9-
dogapi (= 1.45.0)
5+
amazing_print (~> 1.4.0)
6+
concurrent-ruby (~> 1.1.10)
7+
deepsort (~> 0.4.5)
8+
diffy (~> 3.4.2)
9+
dogapi (~> 1.45.0)
1010

1111
GEM
1212
remote: https://rubygems.org/

datadog_backup.gemspec

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,13 @@ Gem::Specification.new do |spec|
1919
spec.test_files = spec.files.grep(%r{^spec/})
2020
spec.require_paths = ['lib']
2121

22-
spec.required_ruby_version = ['>= 2.5']
22+
spec.required_ruby_version = ['>= 2.6']
2323

24-
spec.add_dependency 'amazing_print', '1.4.0'
25-
spec.add_dependency 'concurrent-ruby', '1.1.10'
26-
spec.add_dependency 'deepsort', '0.4.5'
27-
spec.add_dependency 'diffy', '3.4.2'
28-
spec.add_dependency 'dogapi', '1.45.0'
24+
spec.add_dependency 'amazing_print', '~> 1.4.0'
25+
spec.add_dependency 'concurrent-ruby', '~> 1.1.10'
26+
spec.add_dependency 'deepsort', '~> 0.4.5'
27+
spec.add_dependency 'diffy', '~> 3.4.2'
28+
spec.add_dependency 'dogapi', '~> 1.45.0'
2929

3030
spec.add_development_dependency 'bundler'
3131
spec.add_development_dependency 'pry'

lib/datadog_backup.rb

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,16 @@
66

77
require_relative 'datadog_backup/local_filesystem'
88
require_relative 'datadog_backup/options'
9-
109
require_relative 'datadog_backup/cli'
1110
require_relative 'datadog_backup/core'
1211
require_relative 'datadog_backup/dashboards'
1312
require_relative 'datadog_backup/monitors'
1413
require_relative 'datadog_backup/thread_pool'
1514
require_relative 'datadog_backup/version'
15+
require_relative 'datadog_backup/deprecations'
16+
DatadogBackup::Deprecations.check
17+
1618

1719
module DatadogBackup
1820
end
21+

lib/datadog_backup/deprecations.rb

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
2+
3+
module DatadogBackup
4+
module Deprecations
5+
def self.check
6+
if RUBY_VERSION < '2.7'
7+
LOGGER.warn "ruby-#{RUBY_VERSION} is deprecated. Ruby 2.7 or higher will be required to use this gem after datadog_backup@v3"
8+
end
9+
end
10+
end
11+
end
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# frozen_string_literal: true
2+
3+
require 'spec_helper'
4+
5+
describe DatadogBackup::Deprecations do
6+
let(:logger) { double }
7+
8+
before do
9+
stub_const('LOGGER', logger)
10+
allow(logger).to receive(:warn)
11+
end
12+
13+
%w[2.4.10 2.5.9 2.6.8].each do |ruby_version|
14+
describe "#check#{ruby_version}" do
15+
subject { described_class.check }
16+
17+
it 'does warn' do
18+
stub_const('RUBY_VERSION', ruby_version)
19+
expect(logger).to receive(:warn).with(/ruby-#{ruby_version} is deprecated./)
20+
subject
21+
end
22+
end
23+
end
24+
25+
%w[2.7.4 3.0.4 3.1.2 3.2.0-preview1].each do |ruby_version|
26+
describe "#check#{ruby_version}" do
27+
subject { described_class.check }
28+
29+
it 'does not warn' do
30+
stub_const('RUBY_VERSION', ruby_version)
31+
expect(logger).to_not receive(:warn).with(/ruby-#{ruby_version} is deprecated./)
32+
subject
33+
end
34+
end
35+
end
36+
end

0 commit comments

Comments
 (0)