carthage_remote_cache 0.0.5 → 0.0.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Dockerfile +7 -0
- data/Gemfile.lock +38 -38
- data/Guardfile +2 -2
- data/README.md +87 -5
- data/Rakefile +2 -2
- data/bin/carthagerc +24 -9
- data/carthage_remote_cache.gemspec +5 -5
- data/dev/start_server +1 -1
- data/lib/api.rb +49 -5
- data/lib/carthage_archive.rb +18 -8
- data/lib/carthage_dependency.rb +6 -27
- data/lib/carthage_remote_cache.rb +14 -13
- data/lib/commands.rb +5 -4
- data/lib/commands/download_command.rb +21 -12
- data/lib/commands/server_command.rb +2 -2
- data/lib/commands/upload_command.rb +18 -11
- data/lib/commands/verify_command.rb +18 -0
- data/lib/configuration.rb +34 -17
- data/lib/constants.rb +9 -7
- data/lib/crc32.rb +3 -3
- data/lib/errors.rb +59 -1
- data/lib/log.rb +1 -1
- data/lib/networking.rb +92 -33
- data/lib/server/config.ru +3 -3
- data/lib/server/server_app.rb +28 -9
- data/lib/shell_wrapper.rb +1 -1
- data/lib/table.rb +58 -0
- data/lib/utils.rb +20 -10
- data/lib/version.rb +1 -1
- data/lib/version_file.rb +31 -17
- metadata +27 -20
- data/com.kayak.carthagerc.server.plist +0 -20
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: db51bc926af285ff03bc266988ab005c5f7ab4e7131aec89d12a99b1d14ea0f1
|
4
|
+
data.tar.gz: 6d41c8d5b3c6b08369fe595169f53ca8c8cfbc22614726227687625efae341b4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2fc9aa022853786a525dc61f4bbb23f1c53ff5458b05466bdf0041ac664703118391fa1cf82671c32e39012eefa1f01f664a903b35a85142e8b18ff6ae450a1f
|
7
|
+
data.tar.gz: ce992ab16d4281d7d348e3b04ef405de51a66fb1036282ae6a17055c7a0ab958aa1c7bb6b3e24a7adad2f04c6fc727938624e493fe31b3bdd4c2474cbd1b1540
|
data/Dockerfile
ADDED
data/Gemfile.lock
CHANGED
@@ -1,20 +1,20 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
carthage_remote_cache (0.0.
|
4
|
+
carthage_remote_cache (0.0.10)
|
5
5
|
concurrent-ruby (~> 1.0.5)
|
6
|
-
rack (
|
6
|
+
rack (>= 2.0.6, < 2.3.0)
|
7
7
|
rest-client (~> 2.0.2)
|
8
|
-
sinatra (~> 2.0.
|
8
|
+
sinatra (~> 2.0.4)
|
9
9
|
|
10
10
|
GEM
|
11
11
|
remote: https://rubygems.org/
|
12
12
|
specs:
|
13
|
-
coderay (1.1.
|
13
|
+
coderay (1.1.3)
|
14
14
|
concurrent-ruby (1.0.5)
|
15
|
-
domain_name (0.5.
|
15
|
+
domain_name (0.5.20190701)
|
16
16
|
unf (>= 0.0.5, < 1.0.0)
|
17
|
-
ffi (1.
|
17
|
+
ffi (1.15.0)
|
18
18
|
formatador (0.2.5)
|
19
19
|
guard (2.14.2)
|
20
20
|
formatador (>= 0.2.4)
|
@@ -31,70 +31,70 @@ GEM
|
|
31
31
|
test-unit (~> 3.0)
|
32
32
|
http-cookie (1.0.3)
|
33
33
|
domain_name (~> 0.5)
|
34
|
-
listen (3.1
|
35
|
-
rb-fsevent (~> 0.
|
36
|
-
rb-inotify (~> 0.9, >= 0.9.
|
37
|
-
|
38
|
-
lumberjack (1.0.12)
|
34
|
+
listen (3.5.1)
|
35
|
+
rb-fsevent (~> 0.10, >= 0.10.3)
|
36
|
+
rb-inotify (~> 0.9, >= 0.9.10)
|
37
|
+
lumberjack (1.2.8)
|
39
38
|
metaclass (0.0.4)
|
40
|
-
method_source (0.
|
41
|
-
mime-types (3.1)
|
39
|
+
method_source (1.0.0)
|
40
|
+
mime-types (3.3.1)
|
42
41
|
mime-types-data (~> 3.2015)
|
43
|
-
mime-types-data (3.
|
42
|
+
mime-types-data (3.2021.0225)
|
44
43
|
mocha (1.3.0)
|
45
44
|
metaclass (~> 0.0.1)
|
46
|
-
mustermann (1.
|
45
|
+
mustermann (1.1.1)
|
46
|
+
ruby2_keywords (~> 0.0.1)
|
47
47
|
nenv (0.3.0)
|
48
48
|
netrc (0.11.0)
|
49
|
-
notiffany (0.1.
|
49
|
+
notiffany (0.1.3)
|
50
50
|
nenv (~> 0.1)
|
51
51
|
shellany (~> 0.0)
|
52
|
-
power_assert (
|
53
|
-
pry (0.
|
54
|
-
coderay (~> 1.1
|
55
|
-
method_source (~>
|
56
|
-
rack (2.
|
57
|
-
rack-protection (2.0.
|
52
|
+
power_assert (2.0.0)
|
53
|
+
pry (0.14.1)
|
54
|
+
coderay (~> 1.1)
|
55
|
+
method_source (~> 1.0)
|
56
|
+
rack (2.2.3)
|
57
|
+
rack-protection (2.0.8.1)
|
58
58
|
rack
|
59
|
-
rake (
|
60
|
-
rb-fsevent (0.
|
61
|
-
rb-inotify (0.
|
62
|
-
ffi (
|
63
|
-
rerun (0.13.
|
59
|
+
rake (13.0.3)
|
60
|
+
rb-fsevent (0.11.0)
|
61
|
+
rb-inotify (0.10.1)
|
62
|
+
ffi (~> 1.0)
|
63
|
+
rerun (0.13.1)
|
64
64
|
listen (~> 3.0)
|
65
65
|
rest-client (2.0.2)
|
66
66
|
http-cookie (>= 1.0.2, < 2.0)
|
67
67
|
mime-types (>= 1.16, < 4.0)
|
68
68
|
netrc (~> 0.8)
|
69
|
-
|
70
|
-
rufo (0.
|
69
|
+
ruby2_keywords (0.0.4)
|
70
|
+
rufo (0.13.0)
|
71
71
|
shellany (0.0.1)
|
72
|
-
sinatra (2.0.
|
72
|
+
sinatra (2.0.8.1)
|
73
73
|
mustermann (~> 1.0)
|
74
74
|
rack (~> 2.0)
|
75
|
-
rack-protection (= 2.0.
|
75
|
+
rack-protection (= 2.0.8.1)
|
76
76
|
tilt (~> 2.0)
|
77
|
-
test-unit (3.2.
|
77
|
+
test-unit (3.2.9)
|
78
78
|
power_assert
|
79
|
-
thor (
|
80
|
-
tilt (2.0.
|
79
|
+
thor (1.1.0)
|
80
|
+
tilt (2.0.10)
|
81
81
|
unf (0.1.4)
|
82
82
|
unf_ext
|
83
|
-
unf_ext (0.0.7.
|
83
|
+
unf_ext (0.0.7.7)
|
84
84
|
|
85
85
|
PLATFORMS
|
86
86
|
ruby
|
87
87
|
|
88
88
|
DEPENDENCIES
|
89
|
-
bundler
|
89
|
+
bundler
|
90
90
|
carthage_remote_cache!
|
91
91
|
guard (~> 2.14.2)
|
92
92
|
guard-test (~> 2.0.8)
|
93
93
|
mocha (~> 1.3.0)
|
94
|
-
rake (~>
|
94
|
+
rake (~> 13.0)
|
95
95
|
rerun
|
96
96
|
rufo
|
97
97
|
test-unit (~> 3.2.7)
|
98
98
|
|
99
99
|
BUNDLED WITH
|
100
|
-
|
100
|
+
2.2.11
|
data/Guardfile
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
guard :test do
|
2
2
|
watch(%r{^test/.+_tests\.rb$})
|
3
|
-
watch(
|
4
|
-
watch(
|
3
|
+
watch("test/test_helper.rb") { "test" }
|
4
|
+
watch("test/fixtures.rb") { "test" }
|
5
5
|
watch(%r{^lib/(.+)\.rb$}) { |m| "test/#{m[1]}_tests.rb" }
|
6
6
|
end
|
data/README.md
CHANGED
@@ -68,22 +68,29 @@ It is recommended to always perform the upload workflow after upgrading Xcode an
|
|
68
68
|
|
69
69
|
### Download Workflow
|
70
70
|
|
71
|
-
Once cache server has been populated with framework binaries, it's time to fetch frameworks from a different machine. Make sure to pull in `Cartrcfile` from
|
71
|
+
Once the cache server has been populated with framework binaries, it's time to fetch frameworks from a different machine. Make sure to pull in `Cartrcfile` from the repository before executing:
|
72
72
|
|
73
73
|
$ carthagerc download
|
74
74
|
|
75
|
-
You should expect to see following output on a machine with empty `Carthage` folder:
|
75
|
+
You should expect to see the following output on a machine with empty `Carthage` folder:
|
76
76
|
|
77
77
|
Downloaded and extracted 53 archives (97.2 MB), skipped 0 archives.
|
78
78
|
|
79
79
|
Your project should be ready for building.
|
80
80
|
|
81
|
-
####
|
81
|
+
#### Overwrite Local Carthage Folder
|
82
82
|
|
83
83
|
In case you happen to change a file in `Carthage/Build` by accident, it's possible to force download all frameworks again with:
|
84
84
|
|
85
85
|
$ carthagerc download --force
|
86
86
|
|
87
|
+
#### Download Only Some Platforms
|
88
|
+
|
89
|
+
The example above downloaded all frameworks for all platforms (iOS, macOS, tvOS, watchOS). If large dependencies or network speed are an issue, you can download only a subset of the platforms by using the `--platform` argument:
|
90
|
+
|
91
|
+
$ carthagerc download --platform iOS,macOS,tvOS,watchOS
|
92
|
+
|
93
|
+
Please note, that invoking the `download` command multiple times with different platform arguments is not supported. The `.version` file will "forget" that `carthagerc` already downloaded the platform specified before the last download. If you need multiple platforms, specify them in a single `download` command once, delimited with a comma.
|
87
94
|
|
88
95
|
### Config
|
89
96
|
|
@@ -105,6 +112,39 @@ Which will print similar information:
|
|
105
112
|
Local Build Frameworks:
|
106
113
|
Attributions 0.3 [:iOS]
|
107
114
|
|
115
|
+
### Verify Framework Versions
|
116
|
+
|
117
|
+
When switching between development branches, it's very easy to lose track of whether existing framework binaries in `Carthage/Build` match version numbers from `Cartfile.resolved`. As a result, you will probably lose several minutes of your development time, because `Xcode` doesn't tell you about outdated or missing framework binaries.
|
118
|
+
|
119
|
+
Luckily, `carthage_remote_cache` provides following command:
|
120
|
+
|
121
|
+
carthagerc verify
|
122
|
+
|
123
|
+
If existing frameworks match `Cartfile.resolved`, script exits with `0` and doesn't print anything.
|
124
|
+
|
125
|
+
In the event of framework version mismatch, you'll be able to observe following output:
|
126
|
+
|
127
|
+
Detected differences between existing frameworks in 'Carthage/Build' and entries in 'Cartfile.resolved':
|
128
|
+
|
129
|
+
+-----------------+----------------+-------------------+
|
130
|
+
| Framework | Carthage/Build | Cartfile.resolved |
|
131
|
+
+-----------------+----------------+-------------------+
|
132
|
+
| CocoaLumberjack | 3.2.1 | 3.4.1 |
|
133
|
+
| PhoneNumberKit | 1.3.0 | 2.1.0 |
|
134
|
+
| HelloWorld | - | 3.0.0 |
|
135
|
+
+-----------------+----------------+-------------------+
|
136
|
+
|
137
|
+
To resolve the issue:
|
138
|
+
- run `carthagerc download` to fetch missing frameworks from the server.
|
139
|
+
- if the issue persists, run `carthage bootstrap` to build frameworks and `carthagerc upload` to populate the server.
|
140
|
+
|
141
|
+
#### Git Hook
|
142
|
+
|
143
|
+
Running `carthagerc verify` manually on every git checkout / merge / pull could be quite cumbersome. To automate this task, integrate following script [carthagerc-verify-githook](https://github.com/kayak/carthage_remote_cache/blob/master/integrations/carthagerc-verify-githook) into your repository's git hooks, e.g. `post-checkout`.
|
144
|
+
|
145
|
+
See `$ man githooks` for all available git hooks and their documentation.
|
146
|
+
|
147
|
+
|
108
148
|
### Cache Server
|
109
149
|
|
110
150
|
Start the server with
|
@@ -122,6 +162,19 @@ Server is bound to port 9292 by default. If you need to use different port, spec
|
|
122
162
|
|
123
163
|
Don't forget to change port number in your version controlled `Cartrcfile`.
|
124
164
|
|
165
|
+
#### Version Compatibility
|
166
|
+
|
167
|
+
Before each `carthagerc [upload|download]`, the script compares its version number against cache server. If the version doesn't match, `carthagerc` aborts with:
|
168
|
+
|
169
|
+
Version mismatch:
|
170
|
+
Cache server version: 0.0.7
|
171
|
+
Client version: 0.0.6
|
172
|
+
|
173
|
+
Please use the same version as cache server is using by running:
|
174
|
+
$ gem install carthage_remote_cache -v 0.0.7
|
175
|
+
|
176
|
+
Please note, that this functionality only works with clients starting with version [0.0.6](https://github.com/kayak/carthage_remote_cache/releases/tag/0.0.6).
|
177
|
+
|
125
178
|
#### Directory Structure
|
126
179
|
|
127
180
|
Cache server stores version files and framework archives in following directory structure:
|
@@ -148,7 +201,7 @@ It's safe to delete whole directories since no other metadata is stored.
|
|
148
201
|
|
149
202
|
#### Launch Agent
|
150
203
|
|
151
|
-
You can also run the cache server as a launch agent. Copy the template [com.kayak.carthagerc.server.plist](https://github.com/kayak/carthage_remote_cache/blob/master/com.kayak.carthagerc.server.plist) file to `~/Library/LaunchAgents`, change log
|
204
|
+
You can also run the cache server as a launch agent. Copy the template [com.kayak.carthagerc.server.plist](https://github.com/kayak/carthage_remote_cache/blob/master/integrations/com.kayak.carthagerc.server.plist) file to `~/Library/LaunchAgents`, change log
|
152
205
|
paths to include your username and run:
|
153
206
|
|
154
207
|
$ launchctl load -w ~/Library/LaunchAgents/com.kayak.carthagerc.server.plist
|
@@ -159,6 +212,30 @@ If you want to stop the agent, run:
|
|
159
212
|
|
160
213
|
Check out official documentation on [Launch Agents](https://developer.apple.com/library/content/documentation/MacOSX/Conceptual/BPSystemStartup/Chapters/CreatingLaunchdJobs.html) for more info.
|
161
214
|
|
215
|
+
#### Docker
|
216
|
+
|
217
|
+
To build an image based on the latest released gem, run
|
218
|
+
|
219
|
+
$ docker build -t carthagerc .
|
220
|
+
|
221
|
+
Afterwards you can run the image in a container using
|
222
|
+
|
223
|
+
$ docker run -d --publish 9292:9292 --name carthagerc carthagerc:latest
|
224
|
+
|
225
|
+
The server will now be available on port 9292 on `localhost`. Note that the command above will cause any data added to `~/.carthagerc_server` to be written into the container layer. While this works, it's generally discouraged due to decreased performance and portability. To avoid this, you can use a volume.
|
226
|
+
|
227
|
+
$ docker run -d --publish 9292:9292 --mount "source=carthagerc,target=/root/.carthagerc_server" --name carthagerc carthagerc:latest
|
228
|
+
|
229
|
+
We also recommend adding the `--log-opt` option to limit the size of logs, e.g. `--log-opt max-size=50m`.
|
230
|
+
|
231
|
+
To inspect the logs after running, use
|
232
|
+
|
233
|
+
$ docker logs carthagerc
|
234
|
+
|
235
|
+
To stop the container, run
|
236
|
+
|
237
|
+
$ docker container stop carthagerc
|
238
|
+
|
162
239
|
### Version
|
163
240
|
|
164
241
|
$ carthagerc version
|
@@ -175,7 +252,7 @@ Documentation is also available when running `carthagerc` or `carthagerc --help`
|
|
175
252
|
config
|
176
253
|
print environment information and Cartrcfile configuration
|
177
254
|
|
178
|
-
download [-f|--force] [-v|--verbose]
|
255
|
+
download [-f|--force] [-v|--verbose] [-mPLATFORM|--platform=PLATFORM]
|
179
256
|
fetch missing frameworks into Carthage/Build
|
180
257
|
|
181
258
|
init
|
@@ -187,12 +264,17 @@ Documentation is also available when running `carthagerc` or `carthagerc --help`
|
|
187
264
|
server [-pPORT|--port=PORT]
|
188
265
|
start cache server
|
189
266
|
|
267
|
+
verify
|
268
|
+
compare versions from Cartfile.resolved to existing frameworks in Carthage/Build
|
269
|
+
|
190
270
|
version
|
191
271
|
print current version number
|
192
272
|
|
193
273
|
OPTIONS
|
194
274
|
-f, --force Force upload/download of framework archives even if local and server .version files match
|
195
275
|
-h, --help Show help
|
276
|
+
-m, --platform=PLATFORM Comma delimited list of platforms which should be downloaded from the server; e.g. `--platform iOS,macOS`; Supported values: iOS, macOS, tvOS, watchOS
|
277
|
+
-n, --no-retry Don't retry download or upload on network failures
|
196
278
|
-p, --port=PORT Server application port used when starting server, default port is 9292
|
197
279
|
-v, --verbose Show extra runtime information
|
198
280
|
|
data/Rakefile
CHANGED
@@ -5,10 +5,10 @@ task :default => :spec
|
|
5
5
|
|
6
6
|
Rake::TestTask.new do |t|
|
7
7
|
t.libs << "test"
|
8
|
-
t.test_files = FileList[
|
8
|
+
t.test_files = FileList["test/*_tests.rb"]
|
9
9
|
t.verbose = true
|
10
10
|
end
|
11
11
|
|
12
12
|
task :format do
|
13
|
-
system(
|
13
|
+
system("bundle exec rufo bin/carthagerc lib test Gemfile Guardfile Rakefile carthage_remote_cache.gemspec")
|
14
14
|
end
|
data/bin/carthagerc
CHANGED
@@ -2,13 +2,15 @@
|
|
2
2
|
|
3
3
|
$LOAD_PATH.push File.expand_path("../../lib", __FILE__)
|
4
4
|
|
5
|
-
require
|
6
|
-
require
|
7
|
-
require
|
5
|
+
require "optparse"
|
6
|
+
require "carthage_remote_cache"
|
7
|
+
require "commands"
|
8
8
|
|
9
|
-
ARGV <<
|
9
|
+
ARGV << "-h" if ARGV.empty?
|
10
|
+
command = ARGV[0]
|
10
11
|
options = {
|
11
12
|
:force => false,
|
13
|
+
:is_retry_enabled => true,
|
12
14
|
:server_port => SERVER_DEFAULT_PORT,
|
13
15
|
:verbose => false,
|
14
16
|
}
|
@@ -30,7 +32,7 @@ opt_parser = OptionParser.new do |opt|
|
|
30
32
|
opt.separator " config"
|
31
33
|
opt.separator " print environment information and #{CARTRCFILE} configuration"
|
32
34
|
opt.separator ""
|
33
|
-
opt.separator " download [-f|--force] [-v|--verbose]"
|
35
|
+
opt.separator " download [-f|--force] [-v|--verbose] [-mPLATFORM|--platform=PLATFORM]"
|
34
36
|
opt.separator " fetch missing frameworks into Carthage/Build"
|
35
37
|
opt.separator ""
|
36
38
|
opt.separator " init"
|
@@ -42,6 +44,9 @@ opt_parser = OptionParser.new do |opt|
|
|
42
44
|
opt.separator " server [-pPORT|--port=PORT]"
|
43
45
|
opt.separator " start cache server"
|
44
46
|
opt.separator ""
|
47
|
+
opt.separator " verify"
|
48
|
+
opt.separator " compare versions from #{CARTFILE_RESOLVED} to existing frameworks in #{CARTHAGE_BUILD_DIR}"
|
49
|
+
opt.separator ""
|
45
50
|
opt.separator " version"
|
46
51
|
opt.separator " print current version number"
|
47
52
|
opt.separator ""
|
@@ -56,6 +61,15 @@ opt_parser = OptionParser.new do |opt|
|
|
56
61
|
exit
|
57
62
|
end
|
58
63
|
|
64
|
+
opt.on("-m", "--platform=PLATFORM", "Comma delimited list of platforms which should be downloaded from the server; e.g. `--platform iOS,macOS`; Supported values: #{PLATFORMS.map(&:to_s).join(", ")}") do |platform|
|
65
|
+
raise AppError.new("[-p|--platform] is only supported for the 'download' command") if command != "download"
|
66
|
+
options[:platforms] = platform_to_symbols(platform)
|
67
|
+
end
|
68
|
+
|
69
|
+
opt.on("-n", "--no-retry", "Don't retry download or upload on network failures") do
|
70
|
+
options[:is_retry_enabled] = false
|
71
|
+
end
|
72
|
+
|
59
73
|
opt.on("-pPORT", "--port=PORT", "Server application port used when starting server, default port is #{SERVER_DEFAULT_PORT}") do |port|
|
60
74
|
options[:server_port] = port
|
61
75
|
end
|
@@ -65,10 +79,9 @@ opt_parser = OptionParser.new do |opt|
|
|
65
79
|
end
|
66
80
|
end
|
67
81
|
|
68
|
-
opt_parser.parse!
|
69
|
-
|
70
82
|
begin
|
71
|
-
|
83
|
+
opt_parser.parse!
|
84
|
+
|
72
85
|
case command
|
73
86
|
when "config"
|
74
87
|
puts Configuration.new_with_defaults
|
@@ -80,10 +93,12 @@ begin
|
|
80
93
|
UploadCommand.new_with_defaults(options).run
|
81
94
|
when "server"
|
82
95
|
ServerCommand.new(options).run
|
96
|
+
when "verify"
|
97
|
+
VerifyCommand.new_with_defaults(options).run
|
83
98
|
when "version"
|
84
99
|
puts VERSION
|
85
100
|
else
|
86
|
-
bail("Unsupported command #{command}, run with --help to show available commands")
|
101
|
+
bail("Unsupported command #{command}, run with --help to show available commands or see README at https://github.com/kayak/carthage_remote_cache")
|
87
102
|
end
|
88
103
|
rescue AppError => e
|
89
104
|
bail(e.message)
|
@@ -14,23 +14,23 @@ Gem::Specification.new do |spec|
|
|
14
14
|
spec.email = ["jblahunka@kayak.com"]
|
15
15
|
|
16
16
|
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
17
|
-
f.match(%r{^(test|spec|features|example)/})
|
17
|
+
f.match(%r{^(test|spec|features|example|integrations)/})
|
18
18
|
end
|
19
19
|
spec.bindir = "bin"
|
20
20
|
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
21
21
|
spec.require_paths = ["lib"]
|
22
22
|
|
23
|
-
spec.add_development_dependency "bundler"
|
23
|
+
spec.add_development_dependency "bundler"
|
24
24
|
spec.add_development_dependency "guard", "~> 2.14.2"
|
25
25
|
spec.add_development_dependency "guard-test", "~> 2.0.8"
|
26
26
|
spec.add_development_dependency "mocha", "~> 1.3.0"
|
27
|
-
spec.add_development_dependency "rake", "~>
|
27
|
+
spec.add_development_dependency "rake", "~> 13.0"
|
28
28
|
spec.add_development_dependency "rerun"
|
29
29
|
spec.add_development_dependency "rufo"
|
30
30
|
spec.add_development_dependency "test-unit", "~> 3.2.7"
|
31
31
|
|
32
32
|
spec.add_runtime_dependency "concurrent-ruby", "~> 1.0.5"
|
33
|
-
spec.add_runtime_dependency "rack", "
|
33
|
+
spec.add_runtime_dependency "rack", ">= 2.0.6", "< 2.3.0"
|
34
34
|
spec.add_runtime_dependency "rest-client", "~> 2.0.2"
|
35
|
-
spec.add_runtime_dependency "sinatra", "~> 2.0.
|
35
|
+
spec.add_runtime_dependency "sinatra", "~> 2.0.4"
|
36
36
|
end
|