mixlib-install 2.1.12 → 3.0.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e1a9b21c17652ee75bd5ff49815ec28de675dd2d
4
- data.tar.gz: e3a8f6eb46a882f8cd782bbfccf72a2d9fdb4939
3
+ metadata.gz: 085161439c62c8a919ce8fd06074c085188d9335
4
+ data.tar.gz: 0f728caf3f8d6c8ce78dea5e8b627acb95febc05
5
5
  SHA512:
6
- metadata.gz: f8d9f212165f65985b2c6c63c808808cfaccc617c213b0078c621b63834a99ffcf5dd857f0a876a6066f967c4b20e3e6df83f2ea4ad5ac3b5301f790432b1da4
7
- data.tar.gz: 9860b66f2d577810d773bf1167ee7177edbd5a7f53f1dacb4addaee51d70ffce4d500ad1314a055f233bb268e49375fba5ff55300121058b8d297c5e73f0e625
6
+ metadata.gz: ebcdac43be5b9a3b0b335d81b77afd8a442309b6c28f95f7db3a1564e5c810809755dce7f25aeff924cac8e2d575d2c73110006f87a77a77991e4ade20e4645c
7
+ data.tar.gz: 87e953ca7d176419053774b3f3515c161b786dba36442dcd7b7cdad87fb5e337b11177ae0b208e740d5a3d9980f7672aa09678a181caa7ab85e966a7cb8dad79
@@ -1,9 +1,15 @@
1
1
  # Change Log
2
2
 
3
+ ## [3.0.0]
4
+ - [Breaking API Change] `Options` validation added to ensure that when any platform option is set they are all provided (platform, platform_version, architecture)
5
+ - [Breaking API Change] The `platform_version_compatibility_mode` option will automatically be set to `true` when no platform options are provided
6
+ - [Breaking API Change] Queries for aritfacts that yield no results will raise an exception (`Mixlib::Install::Backend::ArtifactsNotFound`) versus returning an empty array
7
+ - New properties added to `Products`: `github_repo` and `downloads_product_page_url`
8
+ - New method for retrieving products that are available on downloads.chef.io: `PRODUCT_MATRIX.products_available_on_downloads_site`
9
+
3
10
  ## [2.1.12]
4
11
  - Force powershell scripts to ASCII encode variables
5
12
 
6
-
7
13
  ## [2.1.11]
8
14
  - Fix ScriptGenerator install script to use proper platform detection for Windows artifacts
9
15
  - Artifact metadata now includes supported Windows Desktop versions
data/README.md CHANGED
@@ -83,6 +83,21 @@ artifact.platform # => "ubuntu"
83
83
  artifact.platform_version # => "14.04"
84
84
  ```
85
85
 
86
+ `platform_version_compatibility_mode` will automatically be enabled if platform options are not specified.
87
+
88
+ If running on Ubuntu 15.04...
89
+ ```ruby
90
+ options = {
91
+ channel: :current,
92
+ product_name: 'chef',
93
+ }
94
+
95
+ artifact = Mixlib::Install.new(options).artifact_info
96
+
97
+ artifact.platform # => "ubuntu"
98
+ artifact.platform_version # => "14.04"
99
+ ```
100
+
86
101
  ### List the available versions for a product and channel
87
102
  #### Instance method
88
103
  ```ruby
@@ -21,9 +21,9 @@ require "mixlib/install/util"
21
21
  module Mixlib
22
22
  class Install
23
23
  class Backend
24
- class Base
25
- class UnsupportedVersion < ArgumentError; end
24
+ class ArtifactsNotFound < StandardError; end
26
25
 
26
+ class Base
27
27
  attr_reader :options
28
28
 
29
29
  SUPPORTED_WINDOWS_DESKTOP_VERSIONS = %w{7 8 8.1 10}
@@ -79,10 +79,10 @@ module Mixlib
79
79
  # Filters and returns the available artifacts based on the configured
80
80
  # platform filtering options.
81
81
  #
82
- # @return ArtifactInfo, Array<ArtifactInfo>, []
82
+ # @return ArtifactInfo, Array<ArtifactInfo>, ArtifactsNotFound
83
83
  # If the result is a single artifact, this returns ArtifactInfo.
84
84
  # If the result is a list of artifacts, this returns Array<ArtifactInfo>.
85
- # If no suitable artifact is found, this returns [].
85
+ # If no suitable artifact is found, this returns ArtifactsNotFound exception.
86
86
  def filter_artifacts(artifacts)
87
87
  return artifacts unless platform_filters_available?
88
88
 
@@ -123,8 +123,17 @@ module Mixlib
123
123
  return closest_compatible_artifact
124
124
  end
125
125
 
126
- # Otherwise, we return an empty array indicating we do not have any matching artifacts
127
- return []
126
+ # Return an exception if we get to the end of the method
127
+ raise ArtifactsNotFound, <<-EOF
128
+ No artifacts found matching criteria.
129
+ product name: #{options.product_name}
130
+ channel: #{options.channel}
131
+ version: #{options.product_version}
132
+ platform: #{options.platform}
133
+ platform version: #{options.platform_version}
134
+ architecture: #{options.architecture}
135
+ compatibility mode: #{options.platform_version_compatibility_mode}
136
+ EOF
128
137
  end
129
138
 
130
139
  # On windows, if we do not have a native 64-bit package available
@@ -232,10 +241,6 @@ module Mixlib
232
241
  # See https://docs.chef.io/platforms.html
233
242
  #
234
243
  def map_custom_windows_desktop_versions(desktop_version)
235
- unless SUPPORTED_WINDOWS_DESKTOP_VERSIONS.include?(desktop_version)
236
- raise UnsupportedVersion, "Unsupported Windows desktop version `#{desktop_version}`. Supported versions: #{SUPPORTED_WINDOWS_DESKTOP_VERSIONS.join(", ")}."
237
- end
238
-
239
244
  server_version = Util.map_windows_desktop_version(desktop_version)
240
245
 
241
246
  # Windows desktop 10 officially maps to server 2016.
@@ -27,8 +27,6 @@ module Mixlib
27
27
  class Install
28
28
  class Backend
29
29
  class PackageRouter < Base
30
- class NoArtifactsError < StandardError; end
31
-
32
30
  ENDPOINT = "https://packages.chef.io".freeze
33
31
 
34
32
  COMPAT_DOWNLOAD_URL_ENDPOINT = "http://packages.chef.io".freeze
@@ -66,6 +64,15 @@ module Mixlib
66
64
  def versions
67
65
  items = get("/api/v1/#{options.channel}/#{omnibus_project}/versions")["results"]
68
66
 
67
+ # Circumvent early when there are no product artifacts in a specific channel
68
+ if items.empty?
69
+ raise ArtifactsNotFound, <<-EOF
70
+ No artifacts found matching criteria.
71
+ product name: #{options.product_name}
72
+ channel: #{options.channel}
73
+ EOF
74
+ end
75
+
69
76
  # Filter out the partial builds if we are in :unstable channel
70
77
  # In other channels we do not need to do this since all builds are
71
78
  # always complete. Infact we should not do this since for some arcane
@@ -76,6 +83,7 @@ module Mixlib
76
83
  # populated with the build record if "artifact.module.build" exists.
77
84
  items.reject! { |i| i["artifacts"].nil? }
78
85
  end
86
+
79
87
  items
80
88
  end
81
89
 
@@ -84,21 +92,9 @@ module Mixlib
84
92
  #
85
93
  # @return [Array<ArtifactInfo>] Array of info about found artifacts
86
94
  def latest_version
87
- # Get the list of builds from the REST api.
88
- # We do this because a user in the readers group does not have
89
- # permissions to run aql against builds.
90
- builds = versions
91
-
92
- if builds.nil?
93
- raise NoArtifactsError, <<-MSG
94
- Can not find any builds for #{options.product_name} in #{endpoint}.
95
- MSG
96
- end
97
-
98
95
  # Sort by created data
99
- # TODO: Shouldn't we sort by version?
100
- builds.sort_by! { |b| b["created"] }.reverse!
101
- version = extract_version_from_response(builds.first)
96
+ sorted_versions = versions.sort_by! { |b| b["created"] }.reverse!
97
+ version = extract_version_from_response(sorted_versions.first)
102
98
  artifacts_for_version(version)
103
99
  end
104
100
 
@@ -49,32 +49,27 @@ If no earlier version is found the earliest version available will be set.",
49
49
  desc: "Print artifact attributes",
50
50
  type: :boolean
51
51
  def download(product_name)
52
- say_status("Warn", "Product key `delivery` will be deprecated in a future release. Please use `automate`") if product_name == "delivery"
53
52
  # Set mininum options
54
53
  mixlib_install_options = {
55
54
  channel: options[:channel].to_sym,
56
55
  product_name: product_name,
57
56
  product_version: options[:version],
58
57
  platform_version_compatibility_mode: options[:platform_version_compat],
59
- }
60
-
61
- # Set platform info or auto detect platform
62
- if options[:platform]
63
- if options[:platform_version].nil? || options[:architecture].nil?
64
- abort "Must provide platform version and architecture when specifying a platform"
65
- end
66
- mixlib_install_options[:platform] = options[:platform]
67
- mixlib_install_options[:platform_version] = options[:platform_version]
68
- mixlib_install_options[:architecture] = options[:architecture]
69
- else
58
+ architecture: options[:architecture],
59
+ }.tap do |opt|
60
+ opt[:platform] = options[:platform] if options[:platform]
61
+ opt[:platform_version] = options[:platform_version] if options[:platform_version]
62
+ end
70
63
 
64
+ # auto detect platform options if not configured
65
+ if options[:platform].nil? && options[:platform_version].nil?
71
66
  mixlib_install_options.merge!(Mixlib::Install.detect_platform)
72
67
  end
73
68
 
74
- say "Querying for artifact with options:\n#{JSON.pretty_generate(mixlib_install_options)}"
75
- artifact = Mixlib::Install.new(mixlib_install_options).artifact_info
76
- if artifact.nil? || artifact.is_a?(Array)
77
- abort "No results found."
69
+ begin
70
+ artifact = Mixlib::Install.new(mixlib_install_options).artifact_info
71
+ rescue Mixlib::Install::Backend::ArtifactsNotFound => e
72
+ abort e.message
78
73
  end
79
74
 
80
75
  if options[:url]
@@ -25,7 +25,7 @@ module Mixlib
25
25
  class Options
26
26
  class InvalidOptions < ArgumentError; end
27
27
 
28
- attr_reader :options
28
+ attr_reader :options, :errors
29
29
 
30
30
  SUPPORTED_ARCHITECTURES = %w{
31
31
  i386
@@ -36,12 +36,15 @@ module Mixlib
36
36
  sparc
37
37
  x86_64
38
38
  }
39
+
39
40
  SUPPORTED_CHANNELS = [
40
41
  :stable,
41
42
  :current,
42
43
  :unstable,
43
44
  ]
45
+
44
46
  SUPPORTED_PRODUCT_NAMES = PRODUCT_MATRIX.products
47
+
45
48
  SUPPORTED_SHELL_TYPES = [
46
49
  :ps1,
47
50
  :sh,
@@ -61,34 +64,34 @@ module Mixlib
61
64
 
62
65
  def initialize(options)
63
66
  @options = options
67
+ @errors = []
68
+
69
+ resolve_platform_version_compatibility_mode!
64
70
 
65
71
  map_windows_desktop_versions! if for_windows?
66
72
 
67
73
  validate!
68
74
  end
69
75
 
76
+ SUPPORTED_OPTIONS.each do |option|
77
+ define_method option do
78
+ options[option] || options[option.to_s] || default_options[option]
79
+ end
80
+ end
81
+
70
82
  def validate!
71
83
  validate_options!
72
84
  end
73
85
 
74
86
  def validate_options!
75
- errors = []
76
-
77
- errors << validate_architecture
78
- errors << validate_product_names
79
- errors << validate_channels
80
- errors << validate_shell_type
81
- errors << validate_user_agent_headers
82
-
83
- unless errors.compact.empty?
84
- raise InvalidOptions, errors.join("\n")
85
- end
86
- end
87
-
88
- SUPPORTED_OPTIONS.each do |option|
89
- define_method option do
90
- options[option] || options[option.to_s] || default_options[option]
91
- end
87
+ validate_architecture
88
+ validate_product_names
89
+ validate_channels
90
+ validate_shell_type
91
+ validate_user_agent_headers
92
+ validate_platform_options
93
+
94
+ raise InvalidOptions, errors.join("\n") unless errors.empty?
92
95
  end
93
96
 
94
97
  def for_ps1?
@@ -117,6 +120,29 @@ module Mixlib
117
120
  validate_options!
118
121
  end
119
122
 
123
+ def platform_info
124
+ {
125
+ platform: options[:platform],
126
+ platform_version: options[:platform_version],
127
+ architecture: options[:architecture],
128
+ }
129
+ end
130
+
131
+ #
132
+ # Calling this method will give queries more of an opportunity to collect
133
+ # compatible artifacts where there may not always be an exact match.
134
+ #
135
+ # This option is set to false by default.
136
+ # - In cases where no platform options are configured it will set this option to true.
137
+ # - In cases where all platform options are configured it will remain false UNLESS the option
138
+ # has been configured to be true.
139
+ #
140
+ def resolve_platform_version_compatibility_mode!
141
+ unless options[:platform_version_compatibility_mode]
142
+ options[:platform_version_compatibility_mode] = true if platform_info.values.none?
143
+ end
144
+ end
145
+
120
146
  private
121
147
 
122
148
  def default_options
@@ -130,7 +156,7 @@ module Mixlib
130
156
 
131
157
  def validate_architecture
132
158
  unless architecture.nil? || SUPPORTED_ARCHITECTURES.include?(architecture)
133
- <<-EOS
159
+ errors << <<-EOS
134
160
  Unknown architecture #{architecture}.
135
161
  Must be one of: #{SUPPORTED_ARCHITECTURES.join(", ")}
136
162
  EOS
@@ -139,7 +165,7 @@ Must be one of: #{SUPPORTED_ARCHITECTURES.join(", ")}
139
165
 
140
166
  def validate_product_names
141
167
  unless SUPPORTED_PRODUCT_NAMES.include? product_name
142
- <<-EOS
168
+ errors << <<-EOS
143
169
  Unknown product name #{product_name}.
144
170
  Must be one of: #{SUPPORTED_PRODUCT_NAMES.join(", ")}
145
171
  EOS
@@ -148,7 +174,7 @@ Must be one of: #{SUPPORTED_PRODUCT_NAMES.join(", ")}
148
174
 
149
175
  def validate_channels
150
176
  unless SUPPORTED_CHANNELS.include? channel
151
- <<-EOS
177
+ errors << <<-EOS
152
178
  Unknown channel #{channel}.
153
179
  Must be one of: #{SUPPORTED_CHANNELS.join(", ")}
154
180
  EOS
@@ -157,7 +183,7 @@ Must be one of: #{SUPPORTED_CHANNELS.join(", ")}
157
183
 
158
184
  def validate_shell_type
159
185
  unless SUPPORTED_SHELL_TYPES.include? shell_type
160
- <<-EOS
186
+ errors << <<-EOS
161
187
  Unknown shell type.
162
188
  Must be one of: #{SUPPORTED_SHELL_TYPES.join(", ")}
163
189
  EOS
@@ -176,12 +202,24 @@ Must be one of: #{SUPPORTED_SHELL_TYPES.join(", ")}
176
202
  end
177
203
  end
178
204
 
179
- error
205
+ errors << error if error
206
+ end
207
+
208
+ def validate_platform_options
209
+ unless all_or_none?(platform_info.values)
210
+ errors << <<-EOS
211
+ Must provide platform, platform version and architecture when specifying any platform details
212
+ EOS
213
+ end
180
214
  end
181
215
 
182
216
  def map_windows_desktop_versions!
183
217
  options[:platform_version] = Util.map_windows_desktop_version(platform_version)
184
218
  end
219
+
220
+ def all_or_none?(items)
221
+ items.all? || items.compact.empty?
222
+ end
185
223
  end
186
224
  end
187
225
  end
@@ -20,17 +20,21 @@ require "mixlib/versioning"
20
20
  module Mixlib
21
21
  class Install
22
22
  class Product
23
- def initialize(&block)
23
+ def initialize(key, &block)
24
+ @product_key = key
24
25
  instance_eval(&block)
25
26
  end
26
27
 
27
28
  DSL_PROPERTIES = [
28
29
  :config_file,
29
30
  :ctl_command,
31
+ :product_key,
30
32
  :package_name,
31
33
  :product_name,
32
34
  :install_path,
33
35
  :omnibus_project,
36
+ :github_repo,
37
+ :downloads_product_page_url,
34
38
  ]
35
39
 
36
40
  #
@@ -53,7 +57,7 @@ module Mixlib
53
57
  value = instance_variable_get("@#{prop}".to_sym)
54
58
  return default_value_for(prop) if value.nil?
55
59
 
56
- if value.is_a? String
60
+ if value.is_a?(String) || value.is_a?(Symbol)
57
61
  value
58
62
  else
59
63
  value.call(version_for(version))
@@ -77,6 +81,10 @@ module Mixlib
77
81
  "/opt/#{package_name}"
78
82
  when :omnibus_project
79
83
  package_name
84
+ when :downloads_product_page_url
85
+ "https://downloads.chef.io/#{product_key}"
86
+ when :github_repo
87
+ "chef/#{product_key}"
80
88
  else
81
89
  nil
82
90
  end
@@ -132,7 +140,7 @@ module Mixlib
132
140
  # `key` and stores it.
133
141
  #
134
142
  def product(key, &block)
135
- @product_map[key] = Product.new(&block)
143
+ @product_map[key] = Product.new(key, &block)
136
144
  end
137
145
 
138
146
  #
@@ -162,6 +170,18 @@ module Mixlib
162
170
  product.version(version)
163
171
  product
164
172
  end
173
+
174
+ #
175
+ # Looks up all products that are available on downloads.chef.io
176
+ #
177
+ # @return Hash{String => Product}
178
+ # :key => product_key
179
+ # :value => Mixlib::Install::Product instance
180
+ def products_available_on_downloads_site
181
+ @product_map.delete_if do |product_key, product|
182
+ product.downloads_product_page_url == :not_available
183
+ end
184
+ end
165
185
  end
166
186
  end
167
187
  end
@@ -179,16 +199,21 @@ PRODUCT_MATRIX = Mixlib::Install::ProductMatrix.new do
179
199
  package_name "opscode-analytics"
180
200
  ctl_command "opscode-analytics-ctl"
181
201
  config_file "/etc/opscode-analytics/opscode-analytics.rb"
202
+ downloads_product_page_url :not_available
182
203
  end
183
204
 
184
205
  product "angry-omnibus-toolchain" do
185
206
  product_name "Angry Omnibus Toolchain"
186
207
  package_name "angry-omnibus-toolchain"
208
+ github_repo "chef/omnibus-toolchain"
209
+ downloads_product_page_url :not_available
187
210
  end
188
211
 
189
212
  product "angrychef" do
190
213
  product_name "Angry Chef Client"
191
214
  package_name "angrychef"
215
+ github_repo "chef/chef"
216
+ downloads_product_page_url :not_available
192
217
  end
193
218
 
194
219
  product "automate" do
@@ -245,11 +270,13 @@ PRODUCT_MATRIX = Mixlib::Install::ProductMatrix.new do
245
270
  product "chef-server-ha-provisioning" do
246
271
  product_name "Chef Server HA Provisioning for AWS"
247
272
  package_name "chef-server-ha-provisioning"
273
+ downloads_product_page_url :not_available
248
274
  end
249
275
 
250
276
  product "chefdk" do
251
277
  product_name "Chef Development Kit"
252
278
  package_name "chefdk"
279
+ github_repo "chef/chef-dk"
253
280
  end
254
281
 
255
282
  product "compliance" do
@@ -269,17 +296,23 @@ PRODUCT_MATRIX = Mixlib::Install::ProductMatrix.new do
269
296
  v < version_for("0.7.0") ? "delivery-ctl" : "automate-ctl"
270
297
  end
271
298
  config_file "/etc/delivery/delivery.rb"
299
+ github_repo "chef/automate"
300
+ downloads_product_page_url "https://downloads.chef.io/automate"
272
301
  end
273
302
 
274
303
  product "ha" do
275
304
  product_name "Chef Server High Availability addon"
276
305
  package_name "chef-ha"
277
306
  config_file "/etc/opscode/chef-server.rb"
307
+ github_repo "chef/chef-ha"
308
+ downloads_product_page_url :not_available
278
309
  end
279
310
 
280
311
  product "harmony" do
281
312
  product_name "Harmony - Omnibus Integration Internal Test Project"
282
313
  package_name "harmony"
314
+ github_repo "chef/omnibus-harmony"
315
+ downloads_product_page_url :not_available
283
316
  end
284
317
 
285
318
  product "inspec" do
@@ -302,6 +335,7 @@ PRODUCT_MATRIX = Mixlib::Install::ProductMatrix.new do
302
335
  "/etc/chef-manage/manage.rb"
303
336
  end
304
337
  end
338
+ github_repo "chef/chef-manage"
305
339
  end
306
340
 
307
341
  product "marketplace" do
@@ -309,11 +343,14 @@ PRODUCT_MATRIX = Mixlib::Install::ProductMatrix.new do
309
343
  package_name "chef-marketplace"
310
344
  ctl_command "chef-marketplace-ctl"
311
345
  config_file "/etc/chef-marketplace/marketplace.rb"
346
+ github_repo "chef-partners/omnibus-marketplace"
347
+ downloads_product_page_url :not_available
312
348
  end
313
349
 
314
350
  product "omnibus-toolchain" do
315
351
  product_name "Omnibus Toolchain"
316
352
  package_name "omnibus-toolchain"
353
+ downloads_product_page_url :not_available
317
354
  end
318
355
 
319
356
  product "private-chef" do
@@ -322,6 +359,7 @@ PRODUCT_MATRIX = Mixlib::Install::ProductMatrix.new do
322
359
  ctl_command "private-chef-ctl"
323
360
  config_file "/etc/opscode/private-chef.rb"
324
361
  install_path "/opt/opscode"
362
+ github_repo "chef/opscode-chef"
325
363
  end
326
364
 
327
365
  product "push-jobs-client" do
@@ -329,6 +367,7 @@ PRODUCT_MATRIX = Mixlib::Install::ProductMatrix.new do
329
367
  package_name do |v|
330
368
  v < version_for("1.3.0") ? "opscode-push-jobs-client" : "push-jobs-client"
331
369
  end
370
+ github_repo "chef/opscode-pushy-client"
332
371
  end
333
372
 
334
373
  product "push-jobs-server" do
@@ -336,6 +375,7 @@ PRODUCT_MATRIX = Mixlib::Install::ProductMatrix.new do
336
375
  package_name "opscode-push-jobs-server"
337
376
  ctl_command "opscode-push-jobs-server-ctl"
338
377
  config_file "/etc/opscode-push-jobs-server/opscode-push-jobs-server.rb"
378
+ github_repo "chef/opscode-pushy-server"
339
379
  end
340
380
 
341
381
  product "reporting" do
@@ -343,6 +383,7 @@ PRODUCT_MATRIX = Mixlib::Install::ProductMatrix.new do
343
383
  package_name "opscode-reporting"
344
384
  ctl_command "opscode-reporting-ctl"
345
385
  config_file "/etc/opscode-reporting/opscode-reporting.rb"
386
+ github_repo "chef/oc_reporting"
346
387
  end
347
388
 
348
389
  product "supermarket" do
@@ -357,5 +398,7 @@ PRODUCT_MATRIX = Mixlib::Install::ProductMatrix.new do
357
398
  package_name "chef-sync"
358
399
  ctl_command "chef-sync-ctl"
359
400
  config_file "/etc/chef-sync/chef-sync.rb"
401
+ github_repo "chef/omnibus-sync"
402
+ downloads_product_page_url :not_available
360
403
  end
361
404
  end
@@ -1,5 +1,5 @@
1
1
  module Mixlib
2
2
  class Install
3
- VERSION = "2.1.12"
3
+ VERSION = "3.0.0"
4
4
  end
5
5
  end
@@ -10,14 +10,13 @@ Gem::Specification.new do |spec|
10
10
  spec.email = ["thom@chef.io", "patrick@chef.io"]
11
11
  spec.license = "Apache-2.0"
12
12
 
13
- spec.summary = "A mixin to help with omnitruck installs"
13
+ spec.summary = "A library for interacting with Chef Software Inc's software distribution systems."
14
14
  spec.homepage = "https://chef.io"
15
15
 
16
16
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
17
17
  spec.executables = ["mixlib-install"]
18
18
  spec.require_paths = ["lib"]
19
19
 
20
- spec.add_dependency "artifactory"
21
20
  spec.add_dependency "mixlib-shellout"
22
21
  spec.add_dependency "mixlib-versioning"
23
22
  spec.add_dependency "thor"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mixlib-install
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.12
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thom May
@@ -9,22 +9,8 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2017-02-02 00:00:00.000000000 Z
12
+ date: 2017-03-09 00:00:00.000000000 Z
13
13
  dependencies:
14
- - !ruby/object:Gem::Dependency
15
- name: artifactory
16
- requirement: !ruby/object:Gem::Requirement
17
- requirements:
18
- - - ">="
19
- - !ruby/object:Gem::Version
20
- version: '0'
21
- type: :runtime
22
- prerelease: false
23
- version_requirements: !ruby/object:Gem::Requirement
24
- requirements:
25
- - - ">="
26
- - !ruby/object:Gem::Version
27
- version: '0'
28
14
  - !ruby/object:Gem::Dependency
29
15
  name: mixlib-shellout
30
16
  requirement: !ruby/object:Gem::Requirement
@@ -309,8 +295,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
309
295
  version: '0'
310
296
  requirements: []
311
297
  rubyforge_project:
312
- rubygems_version: 2.6.8
298
+ rubygems_version: 2.6.10
313
299
  signing_key:
314
300
  specification_version: 4
315
- summary: A mixin to help with omnitruck installs
301
+ summary: A library for interacting with Chef Software Inc's software distribution
302
+ systems.
316
303
  test_files: []