Skip to content

Commit d9b0bb8

Browse files
Mike VastolaMike Vastola
authored andcommitted
Add appraisal gem. Let's see what breaks. :-\
Remove activerecord, etc from gemspec (seems to not be standard to include supported ORMs, etc there). Disable fast-finish for now to make debugging all the compatibility issues easier. Also added script to generate list of excludes in `.travis.yml`. (Since we're supporting so many versions right now, there are a ton)
1 parent ccf18c2 commit d9b0bb8

23 files changed

+610
-124
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,4 @@ pkg
55
Gemfile.lock
66
coverage
77
/.idea
8+
/gemfiles/*.gemfile.lock

.travis.base.yml

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
os: linux
2+
dist: xenial
3+
language: ruby
4+
cache: bundler
5+
script: "bundle exec rake test"
6+
rvm:
7+
- 2.0
8+
- 2.1
9+
- 2.2
10+
- 2.3
11+
- 2.4
12+
- 2.5
13+
- 2.6
14+
- 2.7
15+
- 3.0
16+
- head
17+
- rbx
18+
gemfile:
19+
- gemfiles/rails_3.0.gemfile
20+
- gemfiles/rails_3.1.gemfile
21+
- gemfiles/rails_3.2.gemfile
22+
- gemfiles/rails_4.0.gemfile
23+
- gemfiles/rails_4.1.gemfile
24+
- gemfiles/rails_4.2.gemfile
25+
- gemfiles/rails_5.0.gemfile
26+
- gemfiles/rails_5.1.gemfile
27+
- gemfiles/rails_5.2.gemfile
28+
- gemfiles/rails_6.0.gemfile
29+
- gemfiles/rails_6.1.gemfile
30+
- gemfiles/rails_7_edge.gemfile
31+
- gemfiles/datamapper.gemfile
32+
- gemfiles/sequel.gemfile
33+
jobs:
34+
allow_failures:
35+
- rvm: head
36+
- gemfile: gemfiles/rails_7_edge.gemfile
37+
- rvm: rbx
38+
fast_finish: false

.travis.yml

Lines changed: 154 additions & 105 deletions
Original file line numberDiff line numberDiff line change
@@ -1,109 +1,158 @@
1-
sudo: false
1+
---
2+
os: linux
3+
dist: xenial
24
language: ruby
35
cache: bundler
6+
script: bundle exec rake test
47
rvm:
5-
- 2.0
6-
- 2.1
7-
- 2.2
8-
- 2.3
9-
- 2.4
10-
- 2.5
11-
- 2.6
12-
- 2.7
13-
- 3.0
14-
- rbx
15-
env:
16-
- ACTIVERECORD=3.0.x
17-
- ACTIVERECORD=3.1.x
18-
- ACTIVERECORD=3.2.x
19-
- ACTIVERECORD=4.0.x
20-
- ACTIVERECORD=4.1.x
21-
- ACTIVERECORD=4.2.x
22-
- ACTIVERECORD=5.0.x
23-
- ACTIVERECORD=5.1.x
24-
- ACTIVERECORD=5.2.x
25-
- ACTIVERECORD=6.0.x
26-
- ACTIVERECORD=6.1.x
27-
- ACTIVERECORD=6.2.x
28-
matrix:
29-
exclude:
30-
- rvm: 2.0
31-
env: ACTIVERECORD=5.0.x
32-
- rvm: 2.0
33-
env: ACTIVERECORD=5.1.x
34-
- rvm: 2.0
35-
env: ACTIVERECORD=5.2.x
36-
- rvm: 2.0
37-
env: ACTIVERECORD=6.0.x
38-
- rvm: 2.0
39-
env: ACTIVERECORD=6.1.x
40-
- rvm: 2.0
41-
env: ACTIVERECORD=6.2.x
42-
- rvm: 2.1
43-
env: ACTIVERECORD=5.0.x
44-
- rvm: 2.1
45-
env: ACTIVERECORD=5.1.x
46-
- rvm: 2.0
47-
env: ACTIVERECORD=5.2.x
48-
- rvm: 2.1
49-
env: ACTIVERECORD=6.0.x
50-
- rvm: 2.1
51-
env: ACTIVERECORD=6.1.x
52-
- rvm: 2.1
53-
env: ACTIVERECORD=6.2.x
54-
- rvm: 2.1
55-
env: ACTIVERECORD=6.0.x
56-
- rvm: 2.2
57-
env: ACTIVERECORD=6.1.x
58-
- rvm: 2.2
59-
env: ACTIVERECORD=6.2.x
60-
- rvm: 2.2
61-
env: ACTIVERECORD=6.0.x
62-
- rvm: 2.3
63-
env: ACTIVERECORD=6.1.x
64-
- rvm: 2.3
65-
env: ACTIVERECORD=6.2.x
66-
- rvm: 2.3
67-
env: ACTIVERECORD=3.0.x
68-
- rvm: 2.4
69-
env: ACTIVERECORD=3.1.x
70-
- rvm: 2.4
71-
env: ACTIVERECORD=3.2.x
72-
- rvm: 2.4
73-
env: ACTIVERECORD=4.0.x
74-
- rvm: 2.4
75-
env: ACTIVERECORD=4.1.x
76-
- rvm: 2.4
77-
env: ACTIVERECORD=6.0.x
78-
- rvm: 2.4
79-
env: ACTIVERECORD=6.1.x
80-
- rvm: 2.4
81-
env: ACTIVERECORD=6.2.x
82-
- rvm: 2.5
83-
env: ACTIVERECORD=3.0.x
84-
- rvm: 2.5
85-
env: ACTIVERECORD=3.1.x
86-
- rvm: 2.5
87-
env: ACTIVERECORD=3.2.x
88-
- rvm: 2.5
89-
env: ACTIVERECORD=4.0.x
90-
- rvm: 2.5
91-
env: ACTIVERECORD=4.1.x
92-
- rvm: rbx
93-
env: ACTIVERECORD=5.0.x
94-
- rvm: rbx
95-
env: ACTIVERECORD=5.1.x
96-
- rvm: rbx
97-
env: ACTIVERECORD=5.2.x
98-
- rvm: rbx
99-
env: ACTIVERECORD=6.0.x
100-
- rvm: rbx
101-
env: ACTIVERECORD=6.1.x
102-
- rvm: rbx
103-
env: ACTIVERECORD=6.2.x
8+
- 2.0
9+
- 2.1
10+
- 2.2
11+
- 2.3
12+
- 2.4
13+
- 2.5
14+
- 2.6
15+
- 2.7
16+
- 3.0
17+
- head
18+
- rbx
19+
gemfile:
20+
- gemfiles/rails_3.0.gemfile
21+
- gemfiles/rails_3.1.gemfile
22+
- gemfiles/rails_3.2.gemfile
23+
- gemfiles/rails_4.0.gemfile
24+
- gemfiles/rails_4.1.gemfile
25+
- gemfiles/rails_4.2.gemfile
26+
- gemfiles/rails_5.0.gemfile
27+
- gemfiles/rails_5.1.gemfile
28+
- gemfiles/rails_5.2.gemfile
29+
- gemfiles/rails_6.0.gemfile
30+
- gemfiles/rails_6.1.gemfile
31+
- gemfiles/rails_7_edge.gemfile
32+
- gemfiles/datamapper.gemfile
33+
- gemfiles/sequel.gemfile
34+
jobs:
10435
allow_failures:
105-
- rvm: rbx
106-
fast_finish: true
107-
addons:
108-
code_climate:
109-
repo_token: a90435ed4954dd6e9f3697a20c5bc3754f67d94703f870e8fc7b00f69f5b2d06
36+
- rvm: head
37+
- gemfile: gemfiles/rails_7_edge.gemfile
38+
- rvm: rbx
39+
- gemfile: gemfiles/rails_4.2.gemfile
40+
rvm: '2.0'
41+
- gemfile: gemfiles/rails_4.2.gemfile
42+
rvm: '2.1'
43+
- gemfile: gemfiles/rails_4.2.gemfile
44+
rvm: '2.2'
45+
- gemfile: gemfiles/rails_4.2.gemfile
46+
rvm: '2.3'
47+
- gemfile: gemfiles/rails_4.2.gemfile
48+
rvm: '2.4'
49+
fast_finish: false
50+
exclude:
51+
- gemfile: gemfiles/rails_3.0.gemfile
52+
rvm: '2.4'
53+
- gemfile: gemfiles/rails_3.0.gemfile
54+
rvm: '2.5'
55+
- gemfile: gemfiles/rails_3.0.gemfile
56+
rvm: '2.6'
57+
- gemfile: gemfiles/rails_3.0.gemfile
58+
rvm: '2.7'
59+
- gemfile: gemfiles/rails_3.0.gemfile
60+
rvm: '3.0'
61+
- gemfile: gemfiles/rails_3.0.gemfile
62+
rvm: head
63+
- gemfile: gemfiles/rails_3.1.gemfile
64+
rvm: '2.4'
65+
- gemfile: gemfiles/rails_3.1.gemfile
66+
rvm: '2.5'
67+
- gemfile: gemfiles/rails_3.1.gemfile
68+
rvm: '2.6'
69+
- gemfile: gemfiles/rails_3.1.gemfile
70+
rvm: '2.7'
71+
- gemfile: gemfiles/rails_3.1.gemfile
72+
rvm: '3.0'
73+
- gemfile: gemfiles/rails_3.1.gemfile
74+
rvm: head
75+
- gemfile: gemfiles/rails_3.2.gemfile
76+
rvm: '2.4'
77+
- gemfile: gemfiles/rails_3.2.gemfile
78+
rvm: '2.5'
79+
- gemfile: gemfiles/rails_3.2.gemfile
80+
rvm: '2.6'
81+
- gemfile: gemfiles/rails_3.2.gemfile
82+
rvm: '2.7'
83+
- gemfile: gemfiles/rails_3.2.gemfile
84+
rvm: '3.0'
85+
- gemfile: gemfiles/rails_3.2.gemfile
86+
rvm: head
87+
- gemfile: gemfiles/rails_4.0.gemfile
88+
rvm: '2.4'
89+
- gemfile: gemfiles/rails_4.0.gemfile
90+
rvm: '2.5'
91+
- gemfile: gemfiles/rails_4.0.gemfile
92+
rvm: '2.6'
93+
- gemfile: gemfiles/rails_4.0.gemfile
94+
rvm: '2.7'
95+
- gemfile: gemfiles/rails_4.0.gemfile
96+
rvm: '3.0'
97+
- gemfile: gemfiles/rails_4.0.gemfile
98+
rvm: head
99+
- gemfile: gemfiles/rails_4.1.gemfile
100+
rvm: '2.4'
101+
- gemfile: gemfiles/rails_4.1.gemfile
102+
rvm: '2.5'
103+
- gemfile: gemfiles/rails_4.1.gemfile
104+
rvm: '2.6'
105+
- gemfile: gemfiles/rails_4.1.gemfile
106+
rvm: '2.7'
107+
- gemfile: gemfiles/rails_4.1.gemfile
108+
rvm: '3.0'
109+
- gemfile: gemfiles/rails_4.1.gemfile
110+
rvm: head
111+
- gemfile: gemfiles/rails_5.0.gemfile
112+
rvm: '2.0'
113+
- gemfile: gemfiles/rails_5.0.gemfile
114+
rvm: '2.1'
115+
- gemfile: gemfiles/rails_5.1.gemfile
116+
rvm: '2.0'
117+
- gemfile: gemfiles/rails_5.1.gemfile
118+
rvm: '2.1'
119+
- gemfile: gemfiles/rails_5.2.gemfile
120+
rvm: '2.0'
121+
- gemfile: gemfiles/rails_5.2.gemfile
122+
rvm: '2.1'
123+
- gemfile: gemfiles/rails_5.2.gemfile
124+
rvm: '2.2'
125+
- gemfile: gemfiles/rails_5.2.gemfile
126+
rvm: '2.3'
127+
- gemfile: gemfiles/rails_5.2.gemfile
128+
rvm: '2.4'
129+
- gemfile: gemfiles/rails_6.0.gemfile
130+
rvm: '2.0'
131+
- gemfile: gemfiles/rails_6.0.gemfile
132+
rvm: '2.1'
133+
- gemfile: gemfiles/rails_6.0.gemfile
134+
rvm: '2.2'
135+
- gemfile: gemfiles/rails_6.0.gemfile
136+
rvm: '2.3'
137+
- gemfile: gemfiles/rails_6.0.gemfile
138+
rvm: '2.4'
139+
- gemfile: gemfiles/rails_6.1.gemfile
140+
rvm: '2.0'
141+
- gemfile: gemfiles/rails_6.1.gemfile
142+
rvm: '2.1'
143+
- gemfile: gemfiles/rails_6.1.gemfile
144+
rvm: '2.2'
145+
- gemfile: gemfiles/rails_6.1.gemfile
146+
rvm: '2.3'
147+
- gemfile: gemfiles/rails_6.1.gemfile
148+
rvm: '2.4'
149+
- gemfile: gemfiles/rails_7_edge.gemfile
150+
rvm: '2.0'
151+
- gemfile: gemfiles/rails_7_edge.gemfile
152+
rvm: '2.1'
153+
- gemfile: gemfiles/rails_7_edge.gemfile
154+
rvm: '2.2'
155+
- gemfile: gemfiles/rails_7_edge.gemfile
156+
rvm: '2.3'
157+
- gemfile: gemfiles/rails_7_edge.gemfile
158+
rvm: '2.4'

Appraisals

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
2+
SUPPORTED_RAILS_VERSIONS = %w[3.0 3.1 3.2 4.0 4.1 4.2 5.0 5.1 5.2 6.0 6.1]
3+
4+
SUPPORTED_RAILS_VERSIONS.each do |rails_ver|
5+
appraise "rails-#{rails_ver}" do
6+
gem 'activerecord', "~> #{rails_ver}.x"
7+
gem 'actionpack', "~> #{rails_ver}.x"
8+
9+
if %w[3.0 3.1 3.2].include?(rails_ver)
10+
gem 'sqlite3'
11+
#gem 'activerecord-sqlite3-adapter'
12+
end
13+
14+
end
15+
end
16+
17+
appraise 'rails-7-edge' do
18+
gem 'activerecord', git: 'https://github.com/rails/rails', branch: 'main'
19+
gem 'actionpack', git: 'https://github.com/rails/rails', branch: 'main'
20+
end
21+
22+
appraise 'datamapper' do
23+
gem 'datamapper'
24+
gem 'dm-sqlite-adapter'
25+
end
26+
27+
appraise 'sequel' do
28+
gem 'sequel'
29+
end
30+
31+
32+

Gemfile

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,20 @@
11
source 'https://rubygems.org'
22

33
gemspec
4+
5+
gem 'sqlite3'
6+
7+
if RUBY_VERSION < '2.1.0'
8+
gem 'nokogiri'
9+
gem 'public_suffix', '< 3.0.0'
10+
end
11+
12+
platforms :jruby do
13+
gem 'activerecord-jdbcsqlite3-adapter'
14+
gem 'jdbc-sqlite3', '< 3.8.7' # 3.8.7 is nice and broke
15+
end
16+
17+
group :development do
18+
gem 'wwtd', require: false
19+
gem 'rubocop', require: false
20+
end

Rakefile

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
require 'rake/testtask'
44
require 'rdoc/task'
55
require "bundler/gem_tasks"
6+
require 'wwtd/tasks'
67

78
desc 'Test the attr_encrypted gem.'
89
Rake::TestTask.new(:test) do |t|
@@ -22,4 +23,7 @@ Rake::RDocTask.new(:rdoc) do |rdoc|
2223
end
2324

2425
desc 'Default: run unit tests.'
25-
task :default => :test
26+
if !ENV["APPRAISAL_INITIALIZED"] && !ENV["TRAVIS"]
27+
task :default => :appraisal
28+
end
29+
#task :default => :test

0 commit comments

Comments
 (0)