rhoconnect 3.1.1 → 3.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (76) hide show
  1. data/CHANGELOG.md +7 -0
  2. data/Gemfile +3 -3
  3. data/Gemfile.lock +26 -45
  4. data/Rakefile +2 -3
  5. data/bench/bench_runner.rb +37 -37
  6. data/bench/benchapp/Gemfile.lock +4 -5
  7. data/bench/benchapp/config.ru +1 -5
  8. data/bench/benchapp/spec/spec_helper.rb +0 -13
  9. data/bench/blobapp/Gemfile.lock +8 -9
  10. data/bench/blobapp/config.ru +1 -2
  11. data/bench/blobapp/spec/spec_helper.rb +0 -13
  12. data/bench/lib/bench/aws_utils.rb +0 -1
  13. data/bench/spec/bench_spec_helper.rb +1 -1
  14. data/doc/java-plugin.txt +176 -49
  15. data/doc/net-plugin.txt +150 -70
  16. data/doc/plugin-intro.txt +2 -2
  17. data/doc/supported-platforms.txt +12 -11
  18. data/generators/templates/application/config.ru +1 -2
  19. data/generators/templates/application/spec/spec_helper.rb +0 -15
  20. data/install.sh +3 -3
  21. data/installer/unix-like/create_texts.rb +2 -2
  22. data/installer/unix-like/rho_connect_install_constants.rb +3 -3
  23. data/installer/unix-like/rho_connect_install_utilities.rb +0 -1
  24. data/installer/utils/constants.rb +5 -5
  25. data/installer/utils/create_sha1.rb +26 -0
  26. data/installer/utils/delete_from_s3.rb +32 -0
  27. data/installer/utils/download_from_s3.rb +55 -0
  28. data/installer/utils/nix_install_test.rb +29 -19
  29. data/installer/utils/package_upload/repos.rake +52 -40
  30. data/installer/utils/package_upload/s3_upload.rb +7 -28
  31. data/installer/utils/verify_checksum.rb +33 -0
  32. data/installer/windows/rhosync.nsi +5 -5
  33. data/lib/rhoconnect.rb +1 -1
  34. data/lib/rhoconnect/app.rb +0 -3
  35. data/lib/rhoconnect/predefined_adapters/bench_adapter.rb +6 -0
  36. data/lib/rhoconnect/server.rb +27 -24
  37. data/lib/rhoconnect/stats/middleware.rb +13 -8
  38. data/lib/rhoconnect/store.rb +12 -10
  39. data/lib/rhoconnect/version.rb +1 -1
  40. data/rhoconnect.gemspec +2 -2
  41. data/spec/api/admin/api_token_spec.rb +0 -1
  42. data/spec/api/admin/stats_spec.rb +3 -0
  43. data/spec/api/api_helper.rb +2 -2
  44. data/spec/api/user/list_users_spec.rb +2 -2
  45. data/spec/api_token_spec.rb +0 -1
  46. data/spec/app_spec.rb +0 -1
  47. data/spec/bulk_data/bulk_data_spec.rb +0 -1
  48. data/spec/client_spec.rb +0 -1
  49. data/spec/client_sync_spec.rb +0 -2
  50. data/spec/document_spec.rb +0 -1
  51. data/spec/dynamic_adapter_spec.rb +0 -2
  52. data/spec/jobs/bulk_data_job_spec.rb +0 -1
  53. data/spec/jobs/ping_job_spec.rb +0 -1
  54. data/spec/jobs/source_job_spec.rb +0 -1
  55. data/spec/license_spec.rb +0 -1
  56. data/spec/perf/perf_spec_helper.rb +0 -1
  57. data/spec/ping/android_spec.rb +0 -1
  58. data/spec/ping/apple_spec.rb +0 -1
  59. data/spec/ping/blackberry_spec.rb +0 -1
  60. data/spec/read_state_spec.rb +0 -1
  61. data/spec/rhoconnect_spec.rb +0 -1
  62. data/spec/server/server_spec.rb +1 -12
  63. data/spec/source_adapter_spec.rb +0 -1
  64. data/spec/source_spec.rb +0 -1
  65. data/spec/source_sync_spec.rb +0 -1
  66. data/spec/spec_helper.rb +8 -19
  67. data/spec/stats/middleware_spec.rb +9 -0
  68. data/spec/stats/record_spec.rb +1 -0
  69. data/spec/store_spec.rb +6 -1
  70. data/spec/sync_states_spec.rb +0 -1
  71. data/spec/test_methods_spec.rb +0 -1
  72. data/spec/user_spec.rb +0 -1
  73. data/tasks/redis.rake +4 -2
  74. metadata +421 -436
  75. data/bin/thorhoconnect +0 -79
  76. data/installer/utils/package_upload/auto-repo.rb +0 -136
@@ -1,3 +1,10 @@
1
+ ## 3.1.2 (2012-04-02)
2
+ * #19297819 - Refactor server middleware loading to be static
3
+ * #25292219 - Ensure that Store.get_zdata always returns valid array (even if it is empty)
4
+ * #26868157 - bug in install.sh in rhoconnect installer
5
+ * #27184633 - Fixing error with recursive loading of application.rb in ruby-1.8.7 and ree
6
+ * use redis 2.4.10 by default
7
+
1
8
  ## 3.1.1 (2012-02-07)
2
9
  * Fix Zendesk issue: Rack 1.4.1 and Sinatra 1.3.2 produce 502 error with Heroku deployment (tickets 2147, 2155, 2153)
3
10
 
data/Gemfile CHANGED
@@ -16,8 +16,8 @@ end
16
16
  group :development do
17
17
  gem 'aws-s3', '>= 0.6.2', :require => 'aws/s3'
18
18
  gem 'sqlite3', ">= 1.3.3", :platforms => [:ruby, :mswin, :mingw]
19
- gem 'fpm', '>= 0.3.8'
20
- gem 'fog'
19
+ gem 'fpm', '0.3.11'
20
+ gem 'fog', '>= 1.1.0'
21
21
  gem 'ffaker', '~> 1.12.1'
22
22
  gem 'thor', '>= 0.13.6'
23
23
  gem 'webmock', '~> 1.6.4'
@@ -25,7 +25,7 @@ group :development do
25
25
  end
26
26
 
27
27
  group :test do
28
- gem 'rspec', '~> 2.6.0'
28
+ gem 'rspec', '~> 2.8.0'
29
29
  gem "rcov", '~> 1.0.0', :require => false, :platforms => :ruby_18
30
30
  gem 'simplecov', :require => false, :platforms => [:ruby_19,:jruby]
31
31
  gem 'rack-test', '>= 0.5.3', :require => 'rack/test'
@@ -1,13 +1,12 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rhoconnect (3.1.1)
4
+ rhoconnect (3.1.2)
5
5
  bundler (~> 1.0)
6
6
  json (~> 1.6.0)
7
- rack (~> 1.3.6)
8
7
  rake (~> 0.9.2)
9
8
  redis (>= 2.2.0)
10
- resque (~> 1.19.0)
9
+ resque (~> 1.20.0)
11
10
  rest-client (~> 1.6.1)
12
11
  rubyzip (~> 0.9.4)
13
12
  sinatra (~> 1.3)
@@ -18,28 +17,23 @@ GEM
18
17
  remote: http://rubygems.org/
19
18
  specs:
20
19
  SystemTimer (1.2.3)
21
- addressable (2.2.6)
20
+ addressable (2.2.7)
22
21
  aws-s3 (0.6.2)
23
22
  builder
24
23
  mime-types
25
24
  xml-simple
26
- bouncy-castle-java (1.5.0146.1)
27
25
  builder (3.0.0)
28
26
  crack (0.3.1)
29
- dbd-jdbc (0.1.4)
30
- dbi (0.4.5)
31
- deprecated (= 2.0.1)
32
- deprecated (2.0.1)
33
27
  diff-lcs (1.1.3)
34
- excon (0.9.5)
28
+ excon (0.13.2)
35
29
  extlib (0.9.15)
36
30
  ffaker (1.12.1)
37
- fog (1.1.2)
31
+ fog (1.3.1)
38
32
  builder
39
- excon (~> 0.9.0)
33
+ excon (~> 0.13.0)
40
34
  formatador (~> 0.2.0)
41
35
  mime-types
42
- multi_json (~> 1.0.3)
36
+ multi_json (~> 1.0)
43
37
  net-scp (~> 1.0.4)
44
38
  net-ssh (>= 2.1.3)
45
39
  nokogiri (~> 1.5.0)
@@ -48,21 +42,14 @@ GEM
48
42
  fpm (0.3.11)
49
43
  json
50
44
  highline (1.6.11)
51
- jdbc-sqlite3 (3.7.2)
52
- jruby-jars (1.6.6)
53
- jruby-openssl (0.7.5)
54
- bouncy-castle-java (>= 1.5.0146.1)
55
- jruby-rack (1.1.3)
56
- json (1.6.5)
57
- json (1.6.5-java)
58
- mime-types (1.17.2)
59
- multi_json (1.0.4)
45
+ json (1.6.6)
46
+ mime-types (1.18)
47
+ multi_json (1.2.0)
60
48
  net-scp (1.0.4)
61
49
  net-ssh (>= 1.99.1)
62
50
  net-ssh (2.3.0)
63
- nokogiri (1.5.0)
64
- nokogiri (1.5.0-java)
65
- rack (1.3.6)
51
+ nokogiri (1.5.2)
52
+ rack (1.4.1)
66
53
  rack-protection (1.2.0)
67
54
  rack
68
55
  rack-test (0.6.1)
@@ -72,25 +59,25 @@ GEM
72
59
  redis (2.2.2)
73
60
  redis-namespace (1.0.3)
74
61
  redis (< 3.0.0)
75
- resque (1.19.0)
62
+ resque (1.20.0)
76
63
  multi_json (~> 1.0)
77
64
  redis-namespace (~> 1.0.2)
78
65
  sinatra (>= 0.9.2)
79
66
  vegas (~> 0.1.2)
80
67
  rest-client (1.6.7)
81
68
  mime-types (>= 1.16)
82
- rspec (2.6.0)
83
- rspec-core (~> 2.6.0)
84
- rspec-expectations (~> 2.6.0)
85
- rspec-mocks (~> 2.6.0)
86
- rspec-core (2.6.4)
87
- rspec-expectations (2.6.0)
69
+ rspec (2.8.0)
70
+ rspec-core (~> 2.8.0)
71
+ rspec-expectations (~> 2.8.0)
72
+ rspec-mocks (~> 2.8.0)
73
+ rspec-core (2.8.0)
74
+ rspec-expectations (2.8.0)
88
75
  diff-lcs (~> 1.1.2)
89
- rspec-mocks (2.6.0)
76
+ rspec-mocks (2.8.0)
90
77
  ruby-hmac (0.4.0)
91
- rubyzip (0.9.5)
92
- simplecov (0.5.4)
93
- multi_json (~> 1.0.3)
78
+ rubyzip (0.9.6.1)
79
+ simplecov (0.6.1)
80
+ multi_json (~> 1.0)
94
81
  simplecov-html (~> 0.5.3)
95
82
  simplecov-html (0.5.3)
96
83
  sinatra (1.3.2)
@@ -107,18 +94,12 @@ GEM
107
94
  uuidtools (2.1.2)
108
95
  vegas (0.1.11)
109
96
  rack (>= 1.0.0)
110
- warbler (1.3.2)
111
- jruby-jars (>= 1.4.0)
112
- jruby-rack (>= 1.0.0)
113
- rake (>= 0.8.7)
114
- rubyzip (>= 0.9.4)
115
97
  webmock (1.6.4)
116
98
  addressable (~> 2.2, > 2.2.5)
117
99
  crack (>= 0.1.7)
118
100
  xml-simple (1.1.1)
119
101
 
120
102
  PLATFORMS
121
- java
122
103
  ruby
123
104
 
124
105
  DEPENDENCIES
@@ -127,14 +108,14 @@ DEPENDENCIES
127
108
  dbd-jdbc (>= 0.1.4)
128
109
  dbi (>= 0.4.5)
129
110
  ffaker (~> 1.12.1)
130
- fog
131
- fpm (>= 0.3.8)
111
+ fog (>= 1.1.0)
112
+ fpm (= 0.3.11)
132
113
  jdbc-sqlite3 (>= 3.7.2)
133
114
  jruby-openssl (>= 0.7.4)
134
115
  rack-test (>= 0.5.3)
135
116
  rcov (~> 1.0.0)
136
117
  rhoconnect!
137
- rspec (~> 2.6.0)
118
+ rspec (~> 2.8.0)
138
119
  simplecov
139
120
  sqlite3 (>= 1.3.3)
140
121
  thor (>= 0.13.6)
data/Rakefile CHANGED
@@ -146,8 +146,7 @@ DEB_DEPS = [
146
146
  "zlib1g (>= 1.2.3)", "zlib1g-dev (>= 1.2.3)",
147
147
  "libssl0.9.8 (>= 0)", "libssl-dev (>= 0.9.8)",
148
148
  "libcurl4-openssl-dev (>= 0)",
149
- "libreadline5 (>= 0)", "libreadline5-dev (>= 0)"
150
- # "libreadline6 (>= 0)", "libreadline6-dev (>= 0)",
149
+ "libreadline6 (>= 0)", "libreadline6-dev (>= 0)"
151
150
  # "libsqlite3-0 (>= 3.6.22-1)", "libsqlite3-dev (>= 3.6.22-1)"
152
151
  ]
153
152
 
@@ -163,7 +162,7 @@ RPM_DEPS = [
163
162
  "curl >= 7.15.5", "curl-devel >= 7.15.5",
164
163
  "pcre >= 6.6", "pcre-devel >= 6.6",
165
164
  "openssl >= 0.9.8e", "openssl-devel >= 0.9.8e",
166
- "readline-devel >= 5.1", "readline-devel >= 5.1"
165
+ "readline >= 5.1", "readline-devel >= 5.1"
167
166
  ]
168
167
 
169
168
  desc "Build Red Hat RPM rhoconnect-#{Rhoconnect::VERSION}.noarch.rpm package into the pkg directory"
@@ -9,6 +9,10 @@ $stdout = $sdterr = File.new(LOG_FILE, 'a')
9
9
  puts "Script #{$0} is started at #{Time.now.to_s}"
10
10
 
11
11
  begin
12
+ # Check for another instance of rhoconnect application
13
+ raise "Another instance of bench application is running." unless `cat /tmp/benchapp.pid 2> /dev/null`.empty?
14
+ raise "Another instance of rhoconnect application is running." unless `cat /tmp/rhoconnect.pid 2> /dev/null`.empty?
15
+
12
16
  ruby_version = `rvm current`
13
17
  puts "Ruby version: #{ruby_version}"
14
18
  puts
@@ -19,41 +23,37 @@ begin
19
23
  puts
20
24
 
21
25
  puts "Installing rhoconnect ..."
22
- puts `bundle exec rake install`
26
+ puts `rake install`
23
27
  puts
24
28
 
25
- Dir.chdir "bench/benchapp" #puts Dir.pwd
29
+ Dir.chdir "bench/benchapp" #puts Dir.pwd
26
30
  puts "Checking bench application dependencies ..."
27
31
  puts `bundle update`
28
32
  puts
29
-
30
- # TODO: Check for another instance of bench application
31
- # log = `ps aux | grep /tmp/benchapp.pid | grep -v grep`
32
- # puts log
33
33
 
34
34
  puts "Starting bench application ..."
35
35
  t = Thread.new do
36
- log = `bundle exec rackup -D -P /tmp/benchapp.pid -s thin config.ru 2>&1`
36
+ log = `rackup -D -P /tmp/benchapp.pid -s thin config.ru 2>&1`
37
37
  puts log
38
38
  end
39
39
  t.join
40
40
 
41
41
  =begin
42
- if ruby_version =~ /jruby/
43
- # puts "Ruby version: #{ruby_version}"
44
- t = Thread.new do
45
- puts `jruby -S trinidad -p 9292 -r config.ru --load daemon --daemonize /tmp/benchapp.pid`
46
- end
47
- # t.join
48
- else
49
- pid = Process.fork do
50
- log = `rackup -D -P /tmp/benchapp.pid -s thin config.ru`
51
- puts log
52
- puts
53
- Process.exit(0)
54
- end
55
- Process.waitpid(pid)
56
- end
42
+ if ruby_version =~ /jruby/
43
+ # puts "Ruby version: #{ruby_version}"
44
+ t = Thread.new do
45
+ puts `jruby -S trinidad -p 9292 -r config.ru --load daemon --daemonize /tmp/benchapp.pid`
46
+ end
47
+ # t.join
48
+ else
49
+ pid = Process.fork do
50
+ log = `rackup -D -P /tmp/benchapp.pid -s thin config.ru`
51
+ puts log
52
+ puts
53
+ Process.exit(0)
54
+ end
55
+ Process.waitpid(pid)
56
+ end
57
57
  =end
58
58
 
59
59
  count = 0
@@ -68,33 +68,33 @@ begin
68
68
  puts "Bench application is up and running with pid #{pid}"
69
69
  puts
70
70
 
71
- # puts `echo 'yes' | rake rhoconnect:reset 2>&1`
72
- # puts
71
+ # puts `echo 'yes' | rake rhoconnect:reset 2>&1`
72
+ # puts
73
73
 
74
74
  Dir.chdir "../"
75
75
  bench_errors = {}
76
76
  puts "Running bench scripts ..."
77
- %w[ cud_script query_only_script query_script query_md_script ].each do |script|
77
+ %w[ cud_script query_only_script query_script query_md_script ].each do |script|
78
78
  puts "Script #{script} ..."
79
- log = `"./run_#{script}.sh" 2>&1`
79
+ log = `"./run_#{script}.sh" 2>&1`
80
80
 
81
81
  count = 0
82
- stats_found = nil
82
+ stats_found = nil
83
83
  log.each_line do |line|
84
84
  puts line if count <= 1
85
- count += 1
86
- stats_found ||= (/Statistics:/ =~ line)
85
+ count += 1
86
+ stats_found ||= (/Statistics:/ =~ line)
87
87
  if stats_found
88
88
  puts line
89
89
  if line.match /err: (\d+), verification err: (\d+)$/
90
90
  if $1.to_i != 0 || $2.to_i != 0
91
91
  bench_errors[script] ||= []
92
92
  bench_errors[script] << line
93
- end
94
- end
93
+ end
94
+ end
95
95
  end
96
96
  end
97
- puts
97
+ puts
98
98
  end
99
99
 
100
100
  if not bench_errors.empty?
@@ -102,7 +102,7 @@ begin
102
102
  puts "The following scripts completed with errors:"
103
103
  bench_errors.each do |script, errors|
104
104
  puts "#{script}:"
105
- errors.each { |err| puts " #{err}" }
105
+ errors.each { |err| puts " #{err}" }
106
106
  end
107
107
  exit -1
108
108
  end
@@ -110,10 +110,10 @@ begin
110
110
  rescue Exception => e
111
111
  puts e.message
112
112
  exit -1
113
- ensure
114
- if File.exist? '/tmp/benchapp.pid'
113
+ ensure
114
+ if File.exist? '/tmp/benchapp.pid'
115
115
  pid = `cat /tmp/benchapp.pid`
116
- res = `kill -9 #{pid}` if pid.to_i > 0 # `kill -s SIGINT #{pid}`
116
+ res = `kill -9 #{pid}` if pid.to_i > 0 # `kill -s SIGINT #{pid}`
117
117
  File.delete '/tmp/benchapp.pid'
118
118
  puts "Bench application killed ..."
119
119
  end
@@ -121,4 +121,4 @@ ensure
121
121
  puts ""
122
122
  $stdout = orig_stdout #restore stdout
123
123
  $sdterr = orig_stderr #restore stderr
124
- end
124
+ end
@@ -9,8 +9,8 @@ GEM
9
9
  highline (1.6.11)
10
10
  json (1.6.5)
11
11
  mime-types (1.17.2)
12
- multi_json (1.0.4)
13
- rack (1.3.6)
12
+ multi_json (1.1.0)
13
+ rack (1.4.1)
14
14
  rack-protection (1.2.0)
15
15
  rack
16
16
  rack-test (0.6.1)
@@ -26,10 +26,9 @@ GEM
26
26
  vegas (~> 0.1.2)
27
27
  rest-client (1.6.7)
28
28
  mime-types (>= 1.16)
29
- rhoconnect (3.1.1)
29
+ rhoconnect (3.1.2)
30
30
  bundler (~> 1.0)
31
31
  json (~> 1.6.0)
32
- rack (~> 1.3.6)
33
32
  rake (~> 0.9.2)
34
33
  redis (>= 2.2.0)
35
34
  resque (~> 1.19.0)
@@ -46,7 +45,7 @@ GEM
46
45
  rspec-expectations (2.6.0)
47
46
  diff-lcs (~> 1.1.2)
48
47
  rspec-mocks (2.6.0)
49
- rubyzip (0.9.5)
48
+ rubyzip (0.9.6.1)
50
49
  sinatra (1.3.2)
51
50
  rack (~> 1.3, >= 1.3.6)
52
51
  rack-protection (~> 1.2)
@@ -27,11 +27,7 @@ Rhoconnect::Server.use Rack::Static, :urls => ["/data"], :root => Rhoconnect
27
27
  Rhoconnect::Server.disable :logging
28
28
 
29
29
  # Load our rhoconnect application
30
- $:.unshift ROOT_PATH if RUBY_VERSION =~ /1.9/ # FIXME: see PT story #16682771
31
- require 'application'
32
-
33
- #STDERR=nil
34
- #STDOUT=nil
30
+ require "#{ROOT_PATH}/application"
35
31
 
36
32
  # Setup the url map
37
33
  run Rack::URLMap.new \
@@ -19,19 +19,6 @@ include Rhoconnect
19
19
 
20
20
  require 'rhoconnect/test_methods'
21
21
 
22
- # Monkey patch to fix the following issue:
23
- # /Library/Ruby/Gems/1.8/gems/rspec-core-2.5.1/lib/rspec/core/shared_example_group.rb:45:
24
- # in `ensure_shared_example_group_name_not_taken': Shared example group '...' already exists (ArgumentError)
25
- module RSpec
26
- module Core
27
- module SharedExampleGroup
28
- private
29
- def ensure_shared_example_group_name_not_taken(name)
30
- end
31
- end
32
- end
33
- end
34
-
35
22
  shared_examples_for "SpecHelper" do
36
23
  include Rhoconnect::TestMethods
37
24
 
@@ -1,10 +1,9 @@
1
1
  PATH
2
2
  remote: ../../
3
3
  specs:
4
- rhoconnect (3.1.0.beta2)
4
+ rhoconnect (3.1.2)
5
5
  bundler (~> 1.0)
6
6
  json (~> 1.6.0)
7
- rack (~> 1.4.1)
8
7
  rake (~> 0.9.2)
9
8
  redis (>= 2.2.0)
10
9
  resque (~> 1.19.0)
@@ -19,7 +18,7 @@ GEM
19
18
  specs:
20
19
  SystemTimer (1.2.3)
21
20
  bouncy-castle-java (1.5.0146.1)
22
- daemons (1.1.6)
21
+ daemons (1.1.8)
23
22
  dbd-jdbc (0.1.4)
24
23
  dbi (0.4.5)
25
24
  deprecated (= 2.0.1)
@@ -29,14 +28,14 @@ GEM
29
28
  extlib (0.9.15)
30
29
  highline (1.6.11)
31
30
  jdbc-sqlite3 (3.7.2)
32
- jruby-jars (1.6.5.1)
33
- jruby-openssl (0.7.5)
31
+ jruby-jars (1.6.7)
32
+ jruby-openssl (0.7.6.1)
34
33
  bouncy-castle-java (>= 1.5.0146.1)
35
- jruby-rack (1.1.3)
34
+ jruby-rack (1.1.4)
36
35
  json (1.6.5)
37
36
  json (1.6.5-java)
38
37
  mime-types (1.17.2)
39
- multi_json (1.0.4)
38
+ multi_json (1.1.0)
40
39
  rack (1.4.1)
41
40
  rack-protection (1.2.0)
42
41
  rack
@@ -61,7 +60,7 @@ GEM
61
60
  rspec-expectations (2.6.0)
62
61
  diff-lcs (~> 1.1.2)
63
62
  rspec-mocks (2.6.0)
64
- rubyzip (0.9.5)
63
+ rubyzip (0.9.6.1)
65
64
  sinatra (1.3.2)
66
65
  rack (~> 1.3, >= 1.3.6)
67
66
  rack-protection (~> 1.2)
@@ -76,7 +75,7 @@ GEM
76
75
  eventmachine (>= 0.12.6)
77
76
  rack (>= 1.0.0)
78
77
  tilt (1.3.3)
79
- trinidad (1.3.2)
78
+ trinidad (1.3.4)
80
79
  jruby-rack (>= 1.1.1)
81
80
  trinidad_jars (>= 1.0.1)
82
81
  trinidad_jars (1.0.2)