cnvrg 0.0.1414 → 0.0.1418
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/cnvrg/Images.rb +7 -11
- data/lib/cnvrg/cli.rb +126 -47
- data/lib/cnvrg/datafiles.rb +1 -1
- data/lib/cnvrg/files.rb +3 -3
- data/lib/cnvrg/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6e5e43e32a2a764d0177be682b7957bdaa6c184b
|
4
|
+
data.tar.gz: a1bd77092a713f3f6edb16f0f2bbb998d3a795d2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f60c19507e5eed03dd015ec4d8d03694cf518692057ba969b64cc62a2208d50e02007ace23c0d82740ffe263f685271610ba58f87d22a6866c0bd2d4021ab54a
|
7
|
+
data.tar.gz: 8049f800636d14a9de359dd580bece4a28cf6422304e65d17862e5aa85b83604aa9bf798c70b322c2bbcbafc6a40e3bf1659dbb6823d2050f044cd6b58468fef
|
data/lib/cnvrg/Images.rb
CHANGED
@@ -172,9 +172,10 @@ module Cnvrg
|
|
172
172
|
def create_container(port=7654, is_remote=false)
|
173
173
|
begin
|
174
174
|
image_settings = {
|
175
|
-
'Image' => "#{@image_name}
|
175
|
+
'Image' => "#{@image_name}:latest",
|
176
176
|
'User' => 'ds',
|
177
|
-
'Cmd' => '/
|
177
|
+
'Cmd' => '/usr/local/cnvrg/run_ipython.sh',
|
178
|
+
'WorkingDir' => '/home/ds/notebooks',
|
178
179
|
'ExposedPorts' => {
|
179
180
|
'8888/tcp' => {},
|
180
181
|
},
|
@@ -187,9 +188,6 @@ module Cnvrg
|
|
187
188
|
},
|
188
189
|
},
|
189
190
|
}
|
190
|
-
# if !is_remote
|
191
|
-
# image_settings['HostConfig'].merge!({ 'Binds' => ["#{@working_dir}:/home/ds/notebooks"]})
|
192
|
-
# end
|
193
191
|
container = Docker::Container.create(image_settings)
|
194
192
|
container.start()
|
195
193
|
netrc = File.open(File.expand_path('~')+"/.netrc", "rb")
|
@@ -199,10 +197,6 @@ module Cnvrg
|
|
199
197
|
p = container.exec(command, tty: true)
|
200
198
|
command = ["/bin/bash", "-lc", "sudo chown -R ds /home/ds/.netrc"]
|
201
199
|
p = container.exec(command, tty: true)
|
202
|
-
command = ["/bin/bash", "-lc", "mkdir /home/ds/.cnvrg"]
|
203
|
-
container.exec(command, tty: true)
|
204
|
-
command = ["/bin/bash", "-lc", "mkdir /home/ds/.cnvrg/tmp"]
|
205
|
-
container.exec(command, tty: true)
|
206
200
|
config = File.open(File.expand_path('~')+"/.cnvrg/config.yml", "rb")
|
207
201
|
config_content = config.read
|
208
202
|
container.store_file("/home/ds/.cnvrg/config.yml", config_content)
|
@@ -249,11 +243,13 @@ module Cnvrg
|
|
249
243
|
|
250
244
|
end
|
251
245
|
|
252
|
-
def remote_notebook(notebook_path, instance_type, kernel)
|
246
|
+
def remote_notebook(notebook_path, instance_type, kernel,data,data_commit)
|
253
247
|
response = Cnvrg::API.request("users/#{@owner}/images/#{@image_slug}/remote_notebook", 'POST', {dir: notebook_path,
|
254
248
|
project_slug: @project_slug,
|
255
249
|
instance_type: instance_type,
|
256
|
-
kernel: kernel
|
250
|
+
kernel: kernel,
|
251
|
+
dataset_slug:data,
|
252
|
+
dataset_commit: data_commit})
|
257
253
|
return response
|
258
254
|
end
|
259
255
|
|
data/lib/cnvrg/cli.rb
CHANGED
@@ -759,7 +759,7 @@ module Cnvrg
|
|
759
759
|
end
|
760
760
|
|
761
761
|
desc 'init_data_container', 'Init dataset directory', :hide => true
|
762
|
-
method_option :login_content, :type => :string, :aliases => ["
|
762
|
+
method_option :login_content, :type => :string, :aliases => ["-l"], :default => ""
|
763
763
|
|
764
764
|
def init_data_container(container)
|
765
765
|
begin
|
@@ -2794,7 +2794,10 @@ module Cnvrg
|
|
2794
2794
|
method_option :gpu, :type => :boolean, :aliases => ["--gpu"], :default => false
|
2795
2795
|
method_option :gpuxl, :type => :boolean, :aliases => ["--gpuxl"], :default => false
|
2796
2796
|
method_option :gpuxxl, :type => :boolean, :aliases => ["--gpuxxl"], :default => false
|
2797
|
-
method_option :image, :type => :string, :aliases => ["
|
2797
|
+
method_option :image, :type => :string, :aliases => ["-i","--image"], :default => ""
|
2798
|
+
method_option :data, :type => :string, :aliases => ["-d", "--data"], :default => ""
|
2799
|
+
method_option :data_commit, :type => :string, :aliases => ["--data_commit"], :default => ""
|
2800
|
+
|
2798
2801
|
|
2799
2802
|
desc 'notebook', 'starts a notebook session remotely or locally'
|
2800
2803
|
|
@@ -2803,7 +2806,8 @@ module Cnvrg
|
|
2803
2806
|
notebook_dir = options["notebook_dir"]
|
2804
2807
|
kernel = options["kernel"]
|
2805
2808
|
image = options["image"]
|
2806
|
-
|
2809
|
+
data = options["data"]
|
2810
|
+
data_commit = options["data_commit"]
|
2807
2811
|
if local
|
2808
2812
|
invoke :run_notebook, [], :notebook_dir => notebook_dir, :remote => false, :kernel => kernel, :image => image
|
2809
2813
|
return
|
@@ -2812,7 +2816,8 @@ module Cnvrg
|
|
2812
2816
|
"gpu" => options["gpu"], "gpuxl" => options["gpuxl"], "gpuxxl" => options["gpuxxl"]}
|
2813
2817
|
instance_type = get_instance_type(instances)
|
2814
2818
|
|
2815
|
-
invoke :remote_notebook, [], :notebook_dir => notebook_dir, :kernel => kernel, :machine_type => instance_type, :image => image
|
2819
|
+
invoke :remote_notebook, [], :notebook_dir => notebook_dir, :kernel => kernel, :machine_type => instance_type, :image => image,
|
2820
|
+
:data=> data, :data_commit => data_commit
|
2816
2821
|
return
|
2817
2822
|
|
2818
2823
|
end
|
@@ -2825,6 +2830,9 @@ module Cnvrg
|
|
2825
2830
|
method_option :machine_type, :type => :string, :default => ""
|
2826
2831
|
method_option :kernel, :type => :string, :aliases => ["--kernel", "-k"], :default => ""
|
2827
2832
|
method_option :image, :type => :string, :aliases => ["-i"], :default => ""
|
2833
|
+
method_option :data, :type => :string, :aliases => ["-d", "--data"], :default => ""
|
2834
|
+
method_option :data_commit, :type => :string, :aliases => ["--data_commit"], :default => ""
|
2835
|
+
|
2828
2836
|
|
2829
2837
|
|
2830
2838
|
def remote_notebook()
|
@@ -2836,6 +2844,8 @@ module Cnvrg
|
|
2836
2844
|
notebook_dir = options["notebook_dir"]
|
2837
2845
|
instance_type = options["machine_type"] || nil
|
2838
2846
|
kernel = options["kernel"] || nil
|
2847
|
+
data = options["data"]
|
2848
|
+
data_commit = options["data_commit"]
|
2839
2849
|
|
2840
2850
|
|
2841
2851
|
begin
|
@@ -2862,7 +2872,7 @@ module Cnvrg
|
|
2862
2872
|
invoke :sync, [false], []
|
2863
2873
|
|
2864
2874
|
|
2865
|
-
res = @image.remote_notebook(notebook_dir, instance_type, kernel)
|
2875
|
+
res = @image.remote_notebook(notebook_dir, instance_type, kernel,data,data_commit)
|
2866
2876
|
if Cnvrg::CLI.is_response_success(res)
|
2867
2877
|
if res["result"]["machine"] == -1
|
2868
2878
|
say "There are no available machines", Thor::Shell::Color::BLUE
|
@@ -3063,7 +3073,7 @@ module Cnvrg
|
|
3063
3073
|
notebook_dir = options["notebook_dir"]
|
3064
3074
|
remote = options["remote"] || false
|
3065
3075
|
kernel = options["kernel"] || ""
|
3066
|
-
|
3076
|
+
notebooks_pid = nil
|
3067
3077
|
|
3068
3078
|
if notebook_dir.empty?
|
3069
3079
|
notebook_dir = project_dir
|
@@ -3071,25 +3081,60 @@ module Cnvrg
|
|
3071
3081
|
|
3072
3082
|
notebook_dir = project_dir+ notebook_dir
|
3073
3083
|
end
|
3074
|
-
say "Linking notebook directory to: #{File.basename notebook_dir}", Thor::Shell::Color::BLUE
|
3075
3084
|
choose_image = options["image"]
|
3076
3085
|
|
3077
3086
|
if !choose_image.nil? and !choose_image.empty?
|
3078
3087
|
invoke :set_image, [choose_image]
|
3079
3088
|
end
|
3089
|
+
|
3080
3090
|
image = is_project_with_docker(Dir.pwd)
|
3091
|
+
if !image
|
3092
|
+
jupyter_installed = `which jupyter`
|
3093
|
+
if !$?.success?
|
3094
|
+
say "Could not find jupyter, Is it installed?", Thor::Shell::Color::RED
|
3095
|
+
exit(1)
|
3096
|
+
end
|
3097
|
+
|
3098
|
+
|
3099
|
+
cmd = "jupyter-notebook --port=8888"
|
3100
|
+
PTY.spawn(cmd) do |stdout, stdin, pid, stderr|
|
3101
|
+
begin
|
3102
|
+
notebooks_pid = pid
|
3103
|
+
stdout.each do |line|
|
3104
|
+
puts line
|
3105
|
+
|
3106
|
+
end
|
3107
|
+
|
3108
|
+
rescue Errno::EIO => e
|
3109
|
+
# break
|
3110
|
+
rescue Errno::ENOENT
|
3111
|
+
log_end(1, "command #{cmd} isn't valid")
|
3112
|
+
|
3113
|
+
|
3114
|
+
say "command \"#{cmd}\" couldn't be executed, verify command is valid", Thor::Shell::Color::RED
|
3115
|
+
rescue PTY::ChildExited
|
3116
|
+
log_end(1, "proccess exited")
|
3117
|
+
say "The process exited!", Thor::Shell::Color::RED
|
3118
|
+
rescue => e
|
3119
|
+
log_end(-1, e.message)
|
3120
|
+
say "Error occurred,aborting", Thor::Shell::Color::RED
|
3121
|
+
exit(0)
|
3122
|
+
|
3123
|
+
end
|
3124
|
+
|
3125
|
+
|
3126
|
+
end
|
3127
|
+
|
3128
|
+
end
|
3129
|
+
|
3081
3130
|
if image and image.is_docker and !remote
|
3082
3131
|
container= image.get_container
|
3083
3132
|
if !container
|
3084
|
-
|
3085
|
-
say "Couldn't create container with image #{image.image_name}:#{image.image_tag}", Thor::Shell::Color::RED
|
3133
|
+
say "Couldn't start docker container", Thor::Shell::Color::RED
|
3086
3134
|
exit(1)
|
3135
|
+
|
3087
3136
|
end
|
3088
|
-
else
|
3089
|
-
say "Project is not configured with any image", Thor::Shell::Color::RED
|
3090
|
-
exit(1)
|
3091
3137
|
|
3092
|
-
end
|
3093
3138
|
if options["verbose"]
|
3094
3139
|
say "Syncing project before running", Thor::Shell::Color::BLUE
|
3095
3140
|
say 'Checking for new updates from remote version', Thor::Shell::Color::BLUE
|
@@ -3116,7 +3161,7 @@ module Cnvrg
|
|
3116
3161
|
container.exec(command, tty: true)
|
3117
3162
|
container.stop()
|
3118
3163
|
container.start()
|
3119
|
-
|
3164
|
+
sleep(7)
|
3120
3165
|
@note = Experiment.new(@project.owner, @project.slug)
|
3121
3166
|
port = image.container_port()
|
3122
3167
|
|
@@ -3128,8 +3173,13 @@ module Cnvrg
|
|
3128
3173
|
exit(1)
|
3129
3174
|
end
|
3130
3175
|
|
3131
|
-
|
3132
|
-
|
3176
|
+
result = ""
|
3177
|
+
list.each do |r|
|
3178
|
+
if r.include? "http"
|
3179
|
+
result = r
|
3180
|
+
end
|
3181
|
+
end
|
3182
|
+
token = result.to_s.split("::")[0].to_s.match(/(token=)(.+)\s/)[2]
|
3133
3183
|
|
3134
3184
|
# machine_activity = @note.get_machine_activity(project_dir)
|
3135
3185
|
|
@@ -3149,20 +3199,9 @@ module Cnvrg
|
|
3149
3199
|
log_end(1, "can't start notebook server")
|
3150
3200
|
exit(1)
|
3151
3201
|
end
|
3202
|
+
end
|
3203
|
+
|
3152
3204
|
|
3153
|
-
# jup =verify_software_installed("jupyter-notebook")
|
3154
|
-
# logs = `#{jup} --no-browser --ip=0.0.0.0 --notebook-dir=#{notebook_dir}`
|
3155
|
-
# url = URI.extract(logs).reject { |x| x if !x.include? "http" }.uniq![0]
|
3156
|
-
# if !url.empty?
|
3157
|
-
# check = Helpers.checkmark()
|
3158
|
-
#
|
3159
|
-
# say "#{check} Notebook server started successfully, view notebook in url: #{url}", Thor::Shell::Color::GREEN
|
3160
|
-
# log_end(0)
|
3161
|
-
# else
|
3162
|
-
# say "Couldn't start notebook server", Thor::Shell::Color::RED
|
3163
|
-
# log_end(1, "can't start notebook server")
|
3164
|
-
# exit(1)
|
3165
|
-
# end
|
3166
3205
|
rescue => e
|
3167
3206
|
log_end(-1, e.message)
|
3168
3207
|
say "Error occurd, aborting", Thor::Shell::Color::RED
|
@@ -3170,12 +3209,20 @@ module Cnvrg
|
|
3170
3209
|
container.stop()
|
3171
3210
|
end
|
3172
3211
|
rescue SignalException
|
3173
|
-
|
3174
|
-
|
3175
|
-
|
3212
|
+
if !notebooks_pid.nil?
|
3213
|
+
::Process.kill(0,notebooks_pid)
|
3214
|
+
say "#{check} Notebook has stopped successfully", Thor::Shell::Color::GREEN
|
3215
|
+
|
3216
|
+
|
3217
|
+
invoke :sync, [false], []
|
3218
|
+
else
|
3219
|
+
log_end(-1)
|
3220
|
+
|
3221
|
+
if container
|
3222
|
+
container.stop()
|
3223
|
+
end
|
3176
3224
|
end
|
3177
|
-
|
3178
|
-
exit(1)
|
3225
|
+
|
3179
3226
|
end
|
3180
3227
|
|
3181
3228
|
|
@@ -3676,9 +3723,9 @@ module Cnvrg
|
|
3676
3723
|
end
|
3677
3724
|
|
3678
3725
|
desc '', '', :hide => true
|
3679
|
-
method_option :login, :type => :string, :aliases => ["-l"
|
3680
|
-
method_option :app_dir, :type => :string, :aliases => ["-d"
|
3681
|
-
method_option :cmd, :type => :string, :aliases => ["-c"
|
3726
|
+
method_option :login, :type => :string, :aliases => ["-l"], :default => ""
|
3727
|
+
method_option :app_dir, :type => :string, :aliases => ["-d"], :default => "/home/ds/notebooks"
|
3728
|
+
method_option :cmd, :type => :string, :aliases => ["-c"], :default => "/usr/local/cnvrg/run_ipython.sh"
|
3682
3729
|
|
3683
3730
|
|
3684
3731
|
def config_remote(image_name, port=7654, tensport=6006)
|
@@ -3719,11 +3766,11 @@ module Cnvrg
|
|
3719
3766
|
container.start()
|
3720
3767
|
command = ["/bin/bash", "-lc", "sudo echo -e \"#{login_content}\" >/home/ds/.netrc"]
|
3721
3768
|
container.exec(command, tty: true)
|
3722
|
-
command = ["/bin/bash", "-lc", "mkdir /home/ds/.cnvrg"]
|
3723
|
-
container.exec(command, tty: true)
|
3724
|
-
command = ["/bin/bash", "-lc", "mkdir /home/ds/.cnvrg/tmp"]
|
3725
|
-
container.exec(command, tty: true)
|
3726
|
-
command = ["/bin/bash", "-lc", "sudo chown -R ds
|
3769
|
+
# command = ["/bin/bash", "-lc", "mkdir /home/ds/.cnvrg"]
|
3770
|
+
# container.exec(command, tty: true)
|
3771
|
+
# command = ["/bin/bash", "-lc", "mkdir /home/ds/.cnvrg/tmp"]
|
3772
|
+
# container.exec(command, tty: true)
|
3773
|
+
command = ["/bin/bash", "-lc", "sudo chown -R ds:ds /home/ds/.netrc"]
|
3727
3774
|
container.exec(command, tty: true)
|
3728
3775
|
command = ["/bin/bash", "-lc", "sudo chmod 0600 /home/ds/.netrc"]
|
3729
3776
|
container.exec(command, tty: true)
|
@@ -3740,6 +3787,25 @@ module Cnvrg
|
|
3740
3787
|
end
|
3741
3788
|
end
|
3742
3789
|
|
3790
|
+
|
3791
|
+
desc '', '', :hide => true
|
3792
|
+
method_option :login, :type => :string, :aliases => ["-l"], :default => ""
|
3793
|
+
|
3794
|
+
def config_netrc(container)
|
3795
|
+
|
3796
|
+
login_content = options["login"]
|
3797
|
+
|
3798
|
+
container = Docker::Container.get(container)
|
3799
|
+
command = ["/bin/bash", "-lc", "sudo echo -e \"#{login_content}\" >/home/ds/.netrc"]
|
3800
|
+
container.exec(command, tty: true)
|
3801
|
+
command = ["/bin/bash", "-lc", "sudo chown -R ds:ds /home/ds/.netrc"]
|
3802
|
+
container.exec(command, tty: true)
|
3803
|
+
command = ["/bin/bash", "-lc", "sudo chmod 0600 /home/ds/.netrc"]
|
3804
|
+
container.exec(command, tty: true)
|
3805
|
+
say "OK"
|
3806
|
+
|
3807
|
+
end
|
3808
|
+
|
3743
3809
|
desc '', '', :hide => true
|
3744
3810
|
method_option :login, :type => :string, :aliases => ["-l", "--l"], :default => ""
|
3745
3811
|
method_option :app_dir, :type => :string, :aliases => ["-d", "--d"], :default => "/home/ds/notebooks"
|
@@ -3950,7 +4016,6 @@ module Cnvrg
|
|
3950
4016
|
end
|
3951
4017
|
end
|
3952
4018
|
|
3953
|
-
|
3954
4019
|
return dir_path
|
3955
4020
|
|
3956
4021
|
else
|
@@ -4072,7 +4137,7 @@ module Cnvrg
|
|
4072
4137
|
|
4073
4138
|
desc 'pull_image', 'downloads and loads an image'
|
4074
4139
|
|
4075
|
-
def
|
4140
|
+
def pull_image(image_name)
|
4076
4141
|
begin
|
4077
4142
|
verify_logged_in(false)
|
4078
4143
|
log_start(__method__, args, options)
|
@@ -4085,8 +4150,18 @@ module Cnvrg
|
|
4085
4150
|
path = download_image(image_name, image["slug"])
|
4086
4151
|
if path
|
4087
4152
|
say "Building image", Thor::Shell::Color::BLUE
|
4088
|
-
Docker.options[:read_timeout]=
|
4089
|
-
image = Docker::Image.build_from_dir(path, {'dockerfile' => 'Dockerfile', 't' => "#{image_name}:
|
4153
|
+
Docker.options[:read_timeout]=216000
|
4154
|
+
image = Docker::Image.build_from_dir(path, {'dockerfile' => 'Dockerfile.cpu', 't' => "#{image_name}:latest"}) do |v|
|
4155
|
+
begin
|
4156
|
+
if (log = JSON.parse(v)) && log.has_key?("stream")
|
4157
|
+
next if log["stream"].starts_with? "Step"
|
4158
|
+
$stdout.puts log["stream"]
|
4159
|
+
end
|
4160
|
+
rescue
|
4161
|
+
end
|
4162
|
+
|
4163
|
+
end
|
4164
|
+
|
4090
4165
|
if not image.nil?
|
4091
4166
|
FileUtils.rm_rf(path)
|
4092
4167
|
checks = Helpers.checkmark()
|
@@ -4095,11 +4170,13 @@ module Cnvrg
|
|
4095
4170
|
return image
|
4096
4171
|
log_end(0)
|
4097
4172
|
else
|
4173
|
+
|
4098
4174
|
say "Could not build image", Thor::Shell::Color::RED
|
4099
4175
|
log_end(1, "Could build image")
|
4100
4176
|
return false
|
4101
4177
|
end
|
4102
4178
|
else
|
4179
|
+
|
4103
4180
|
say "Could not download image", Thor::Shell::Color::RED
|
4104
4181
|
log_end(1, "Could build image")
|
4105
4182
|
return false
|
@@ -4127,7 +4204,9 @@ module Cnvrg
|
|
4127
4204
|
#
|
4128
4205
|
# end
|
4129
4206
|
# end
|
4130
|
-
rescue
|
4207
|
+
rescue => e
|
4208
|
+
|
4209
|
+
|
4131
4210
|
say "Couldn't build image", Thor::Shell::Color::RED
|
4132
4211
|
|
4133
4212
|
rescue SignalException
|
data/lib/cnvrg/datafiles.rb
CHANGED
@@ -254,7 +254,7 @@ module Cnvrg
|
|
254
254
|
|
255
255
|
end
|
256
256
|
|
257
|
-
if !s4cmd_suc or !s4cmd_install_suc
|
257
|
+
if !s4cmd_suc or !s4cmd_suc or !s4cmd_install_suc
|
258
258
|
s3 = Aws::S3::Resource.new(
|
259
259
|
:access_key_id => URLcrypt.decrypt(upload_resp["result"]["sts_a"]),
|
260
260
|
:secret_access_key => URLcrypt.decrypt(upload_resp["result"]["sts_s"]),
|
data/lib/cnvrg/files.rb
CHANGED
@@ -229,11 +229,11 @@ module Cnvrg
|
|
229
229
|
|
230
230
|
s4cmd=`pip freeze |grep s4cmd > /dev/null 2>&1` ; s4cmd_suc=$?.success?
|
231
231
|
if !s4cmd_suc
|
232
|
-
`pip install s4cmd > /dev/null 2>&1`
|
232
|
+
`pip install s4cmd > /dev/null 2>&1` ; s4cmd_install_suc=$?.success?
|
233
233
|
end
|
234
234
|
|
235
235
|
end
|
236
|
-
if !
|
236
|
+
if !s4cmd_suc or !s4cmd_suc or !s4cmd_install_suc
|
237
237
|
s3 = Aws::S3::Resource.new(
|
238
238
|
:access_key_id => URLcrypt.decrypt(upload_resp["result"]["sts_a"]),
|
239
239
|
:secret_access_key => URLcrypt.decrypt(upload_resp["result"]["sts_s"]),
|
@@ -251,7 +251,7 @@ module Cnvrg
|
|
251
251
|
s4cmd_body = ""
|
252
252
|
s4cmd_http_object.start do |http|
|
253
253
|
response = http.request s4cmd_request
|
254
|
-
s4cmd_body = response.
|
254
|
+
s4cmd_body = response.read_bodyo
|
255
255
|
end
|
256
256
|
s4cmd_new_body = s4cmd_body.gsub(" self.client = self.boto3.client('s3',
|
257
257
|
aws_access_key_id=aws_access_key_id,
|
data/lib/cnvrg/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cnvrg
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.1418
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yochay Ettun
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2017-
|
12
|
+
date: 2017-06-07 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -359,7 +359,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
359
359
|
version: '0'
|
360
360
|
requirements: []
|
361
361
|
rubyforge_project:
|
362
|
-
rubygems_version: 2.6.
|
362
|
+
rubygems_version: 2.6.12
|
363
363
|
signing_key:
|
364
364
|
specification_version: 4
|
365
365
|
summary: A CLI tool for interacting with cnvrg.io.
|