appbundler 0.9.0 → 0.10.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3bdcdbca4e10ef8f04ec364fad2250690e062992
4
- data.tar.gz: 4c0408acd0c32ab33376397d78616c1a50dcca7a
3
+ metadata.gz: b6d3790061544bed9cee8bd44d5c94bcd235b46b
4
+ data.tar.gz: 050a352e5d29f64ad1dd512abeef8759f9a17dfd
5
5
  SHA512:
6
- metadata.gz: 144df4d360bfebafd5b99730dfc428d7ecc409efcdcd54bb68c0f7c1624eeb913be17a575ee83aff3960d5aacace7f409c2593a11481932172abe75f0184eaba
7
- data.tar.gz: 625f02ebeefb40ee421047c6c406f248b5d35bbe7ad7f43cd2711a8963cbf816ffe806acd1e47c74c2bf0ef5ded3816e711f6c5ae762ff4ebf5c51558d1d2bc0
6
+ metadata.gz: 46f7c7536c8090ba2ebd83b4678041e89965344cacc40d3d455897884beea826c258080f5add78a1d2387ba397e986863d95abaf4393aad1741e88fbb9d9a37e
7
+ data.tar.gz: 4b2a888810f9199e41f17ffda7d4be4043d6569be893e46cbb7f9239793a6ad60ca837949d5774b552c2c1308822657e152c161d5647073bf7024058b3520836
data/.travis.yml CHANGED
@@ -3,9 +3,8 @@ before_install:
3
3
  - gem install bundler
4
4
 
5
5
  rvm:
6
- - 2.0.0
7
- - 2.1.1
8
- - 2.2
6
+ - 2.2.5
7
+ - 2.3.1
9
8
 
10
9
  branches:
11
10
  only:
@@ -13,4 +12,3 @@ branches:
13
12
 
14
13
  # The integration tests need to see installed gems.
15
14
  script: rspec --color --format progress
16
-
data/Gemfile CHANGED
@@ -1,4 +1,4 @@
1
- source 'https://rubygems.org'
1
+ source "https://rubygems.org"
2
2
 
3
3
  # Specify your gem's dependencies in appbundler.gemspec
4
4
  gemspec
data/README.md CHANGED
@@ -1,70 +1,80 @@
1
1
  # Appbundler
2
2
 
3
- Appbundler reads a Gemfile.lock and generates code with
4
- `gem "some-dep", "= VERSION"` statements to lock the app's dependencies
5
- to the versions selected by bundler. This code is used in binstubs for
6
- the application so that running (e.g.) `chef-client` on the command line
7
- activates the locked dependencies for `chef` before running the command.
3
+ [![Build Status Master](https://travis-ci.org/chef/appbundler.svg?branch=master)](https://travis-ci.org/chef/appbundler) [![Gem Version](https://badge.fury.io/rb/appbundler.svg)](https://badge.fury.io/rb/appbundler)
4
+
5
+ Appbundler reads a Gemfile.lock and generates code with `gem "some-dep", "= VERSION"` statements to lock the app's dependencies to the versions selected by bundler. This code is used in binstubs for the application so that running (e.g.) `chef-client` on the command line activates the locked dependencies for `chef` before running the command.
8
6
 
9
7
  This provides the following benefits:
10
- * The application loads faster because rubygems is not resolving
11
- dependency constraints at runtime.
12
- * The application runs with the same dependencies that it would if
13
- bundler was used, so we can test applications (that will be installed
14
- in an omnibus package) using the default bundler workflow.
15
- * There's no need to `bundle exec` or patch the bundler runtime into the
16
- app.
17
- * The app can load gems not included in the Gemfile/gemspec. Our use
18
- case for this is to load plugins (e.g., for knife and test kitchen).
19
- * A user can use rvm and still use the application (see below).
20
- * The application is protected from installation of incompatible
21
- dependencies.
22
-
23
- # Usage
24
-
25
- Install via rubygems: `gem install appbundler` or clone this project and
26
- bundle install:
27
8
 
28
- ```
29
- git clone https://github.com/opscode/appbundler.git
9
+ - The application loads faster because rubygems is not resolving dependency constraints at runtime.
10
+ - The application runs with the same dependencies that it would if bundler was used, so we can test applications (that will be installed in an omnibus package) using the default bundler workflow.
11
+ - There's no need to `bundle exec` or patch the bundler runtime into the app.
12
+ - The app can load gems not included in the Gemfile/gemspec. Our use case for this is to load plugins (e.g., for knife and test kitchen).
13
+ - A user can use rvm and still use the application (see below).
14
+ - The application is protected from installation of incompatible dependencies.
15
+
16
+ ## Usage
17
+
18
+ Install via rubygems: `gem install appbundler` or clone this project and bundle install:
19
+
20
+ ```shell
21
+ git clone https://github.com/chef/appbundler.git
30
22
  cd appbundler
31
23
  bundle install
32
24
  ```
33
25
 
34
- Clone whatever project you want to appbundle somewhere else, and bundle
35
- install it:
26
+ Clone whatever project you want to appbundle somewhere else, and bundle install it:
36
27
 
37
- ```
28
+ ```shell
38
29
  mkdir ~/oc
39
30
  cd ~/oc
40
- git clone https://github.com/opscode/chef.git
31
+ git clone https://github.com/chef/chef.git
41
32
  cd chef
42
33
  bundle install
43
34
  ```
44
35
 
45
36
  Create a bin directory where your bundled binstubs will live:
46
37
 
47
- ```
38
+ ```shell
48
39
  mkdir ~/appbundle-bin
49
40
  # Add to your PATH if you like
50
41
  ```
51
42
 
52
43
  Now you can app bundle your project (chef in our example):
53
44
 
54
- ```
45
+ ```shell
55
46
  bin/appbundler ~/oc/chef ~/appbundler-bin
56
47
  ```
57
48
 
58
49
  Now you can run all of the app's executables with locked down deps:
59
50
 
60
- ```
51
+ ```shell
61
52
  ~/appbunlder-bin/chef-client -v
62
53
  ```
63
54
 
55
+ ## RVM
56
+
57
+ The generated binstubs explicitly disable rvm, so the above won't work if you're using rvm. This is intentional, because our use case is for omnibus applications where rvm's environment variables can break the embedded application by making ruby look for gems in rvm's gem repo.
58
+
59
+ ## Contributing
60
+
61
+ For information on contributing to this project see <https://github.com/chef/chef/blob/master/CONTRIBUTING.md>
64
62
 
65
- # RVM
63
+ ## License
66
64
 
67
- The generated binstubs explicitly disable rvm, so the above won't work
68
- if you're using rvm. This is intentional, because our use case is for
69
- omnibus applications where rvm's environment variables can break the
70
- embedded application by making ruby look for gems in rvm's gem repo.
65
+ - Copyright:: Copyright (c) 2014-2016 Chef Software, Inc.
66
+ - License:: Apache License, Version 2.0
67
+
68
+ ```text
69
+ Licensed under the Apache License, Version 2.0 (the "License");
70
+ you may not use this file except in compliance with the License.
71
+ You may obtain a copy of the License at
72
+
73
+ http://www.apache.org/licenses/LICENSE-2.0
74
+
75
+ Unless required by applicable law or agreed to in writing, software
76
+ distributed under the License is distributed on an "AS IS" BASIS,
77
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
78
+ See the License for the specific language governing permissions and
79
+ limitations under the License.
80
+ ```
data/appbundler.gemspec CHANGED
@@ -1,27 +1,29 @@
1
1
  # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
2
+ lib = File.expand_path("../lib", __FILE__)
3
3
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'appbundler/version'
4
+ require "appbundler/version"
5
5
 
6
6
  Gem::Specification.new do |spec|
7
7
  spec.name = "appbundler"
8
8
  spec.version = Appbundler::VERSION
9
- spec.authors = ["danielsdeleo"]
10
- spec.email = ["dan@opscode.com"]
9
+ spec.authors = ["Dan DeLeo"]
10
+ spec.email = ["dan@chef.io"]
11
11
  spec.description = %q{Extracts a dependency solution from bundler's Gemfile.lock to speed gem activation}
12
12
  spec.summary = spec.description
13
- spec.homepage = ""
14
- spec.license = "Apache2"
13
+ spec.homepage = "https://github.com/chef/appbundler"
14
+ spec.license = "Apache-2.0"
15
15
 
16
16
  spec.files = `git ls-files`.split($/)
17
17
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ["lib"]
20
20
 
21
+ spec.required_ruby_version = ">= 2.2.0"
22
+
21
23
  spec.add_development_dependency "rake"
22
24
  spec.add_development_dependency "rspec", "~> 3.0"
23
25
  spec.add_development_dependency "pry"
24
- spec.add_development_dependency "mixlib-shellout", "~> 1.0"
26
+ spec.add_development_dependency "mixlib-shellout", "~> 2.0"
25
27
 
26
28
  spec.add_dependency "mixlib-cli", "~> 1.4"
27
29
  end
data/bin/appbundler CHANGED
@@ -3,11 +3,10 @@
3
3
  Kernel.trap(:INT) { exit 1 }
4
4
 
5
5
  begin
6
- require 'appbundler/cli'
6
+ require "appbundler/cli"
7
7
  rescue LoadError
8
8
  $:.unshift File.expand_path("../../lib", __FILE__)
9
- require 'appbundler/cli'
9
+ require "appbundler/cli"
10
10
  end
11
11
 
12
12
  Appbundler::CLI.run(ARGV)
13
-
data/lib/appbundler.rb CHANGED
@@ -1,4 +1,3 @@
1
1
 
2
2
  module Appbundler
3
3
  end
4
-
@@ -1,7 +1,6 @@
1
- require 'bundler'
2
- require 'fileutils'
3
- require 'pp'
4
-
1
+ require "bundler"
2
+ require "fileutils"
3
+ require "pp"
5
4
 
6
5
  module Appbundler
7
6
 
@@ -11,7 +10,7 @@ module Appbundler
11
10
 
12
11
  class App
13
12
 
14
- BINSTUB_FILE_VERSION=1
13
+ BINSTUB_FILE_VERSION = 1
15
14
 
16
15
  attr_reader :bundle_path
17
16
  attr_reader :target_bin_dir
@@ -71,7 +70,7 @@ module Appbundler
71
70
  end
72
71
 
73
72
  def batchfile_stub
74
- ruby_relpath_windows = ruby_relative_path.gsub('/', '\\')
73
+ ruby_relpath_windows = ruby_relative_path.tr("/", '\\')
75
74
  <<-E
76
75
  @ECHO OFF
77
76
  "%~dp0\\#{ruby_relpath_windows}" "%~dpn0" %*
@@ -89,7 +88,7 @@ E
89
88
  end
90
89
 
91
90
  def shebang
92
- "#!#{ruby}\n"
91
+ "#!#{ruby} --disable-gems\n"
93
92
  end
94
93
 
95
94
  # A specially formatted comment that documents the format version of the
@@ -113,13 +112,16 @@ E
113
112
  # APPBUNDLER_ALLOW_RVM environment variable to "true". This feature
114
113
  # exists to make tests run correctly on travis.ci (which uses rvm).
115
114
  def env_sanitizer
116
- %Q{ENV["GEM_HOME"] = ENV["GEM_PATH"] = nil unless ENV["APPBUNDLER_ALLOW_RVM"] == "true"}
115
+ <<-EOS
116
+ ENV["GEM_HOME"] = ENV["GEM_PATH"] = nil unless ENV["APPBUNDLER_ALLOW_RVM"] == "true"
117
+ require "rubygems"
118
+ ::Gem.clear_paths
119
+ EOS
117
120
  end
118
121
 
119
122
  def runtime_activate
120
-
121
123
  @runtime_activate ||= begin
122
- statements = runtime_dep_specs.map {|s| %Q|gem "#{s.name}", "= #{s.version}"|}
124
+ statements = runtime_dep_specs.map { |s| %Q{gem "#{s.name}", "= #{s.version}"} }
123
125
  activate_code = ""
124
126
  activate_code << env_sanitizer << "\n"
125
127
  activate_code << statements.join("\n") << "\n"
@@ -146,7 +148,7 @@ E
146
148
 
147
149
  def executables
148
150
  spec = app_gemspec
149
- spec.executables.map {|e| spec.bin_file(e)}
151
+ spec.executables.map { |e| spec.bin_file(e) }
150
152
  end
151
153
 
152
154
  def runtime_dep_specs
@@ -236,9 +238,9 @@ MESSAGE
236
238
  false
237
239
  end
238
240
 
239
- def add_dependencies_from(spec, collected_deps=[])
241
+ def add_dependencies_from(spec, collected_deps = [])
240
242
  spec.dependencies.each do |dep|
241
- next if collected_deps.any? {|s| s.name == dep.name }
243
+ next if collected_deps.any? { |s| s.name == dep.name }
242
244
  # a bundler dep will not get pinned in Gemfile.lock
243
245
  next if dep.name == "bundler"
244
246
  next_spec = spec_for(dep.name)
@@ -249,7 +251,7 @@ MESSAGE
249
251
  end
250
252
 
251
253
  def spec_for(dep_name)
252
- gemfile_lock_specs.find {|s| s.name == dep_name } or raise "No spec #{dep_name}"
254
+ gemfile_lock_specs.find { |s| s.name == dep_name } || raise("No spec #{dep_name}")
253
255
  end
254
256
  end
255
257
  end
@@ -1,6 +1,6 @@
1
- require 'appbundler/version'
2
- require 'appbundler/app'
3
- require 'mixlib/cli'
1
+ require "appbundler/version"
2
+ require "appbundler/app"
3
+ require "mixlib/cli"
4
4
 
5
5
  module Appbundler
6
6
  class CLI
@@ -21,11 +21,11 @@ will point to the gem, not your working copy.
21
21
  BANNER
22
22
 
23
23
  option :version,
24
- :short => '-v',
25
- :long => '--version',
26
- :description => 'Show appbundler version',
24
+ :short => "-v",
25
+ :long => "--version",
26
+ :description => "Show appbundler version",
27
27
  :boolean => true,
28
- :proc => lambda {|v| $stdout.puts("Appbundler Version: #{::Appbundler::VERSION}")},
28
+ :proc => lambda { |v| $stdout.puts("Appbundler Version: #{::Appbundler::VERSION}") },
29
29
  :exit => 0
30
30
 
31
31
  option :help,
@@ -1,3 +1,3 @@
1
1
  module Appbundler
2
- VERSION = "0.9.0"
2
+ VERSION = "0.10.0"
3
3
  end
@@ -1,8 +1,8 @@
1
- require 'spec_helper'
2
- require 'tmpdir'
3
- require 'fileutils'
4
- require 'mixlib/shellout'
5
- require 'appbundler/app'
1
+ require "spec_helper"
2
+ require "tmpdir"
3
+ require "fileutils"
4
+ require "mixlib/shellout"
5
+ require "appbundler/app"
6
6
 
7
7
  describe Appbundler do
8
8
 
@@ -11,7 +11,7 @@ describe Appbundler do
11
11
  end
12
12
 
13
13
  def double_spec(name, version, dep_names)
14
- deps = dep_names.map {|n| double("Bundler::Dependency #{n}", :name => n.to_s) }
14
+ deps = dep_names.map { |n| double("Bundler::Dependency #{n}", :name => n.to_s) }
15
15
  source = double("Bundler::Source::Rubygems")
16
16
  spec = double("Bundler::LazySpecification '#{name}'", :name => name.to_s, :version => version, :dependencies => deps, :source => source)
17
17
  all_specs << spec
@@ -19,7 +19,7 @@ describe Appbundler do
19
19
  end
20
20
 
21
21
  def shellout!(cmd)
22
- s = Mixlib::ShellOut.new(cmd, :env => {"RUBYOPT" => nil, "BUNDLE_GEMFILE" => nil, "APPBUNDLER_ALLOW_RVM" => "true"})
22
+ s = Mixlib::ShellOut.new(cmd, :env => { "RUBYOPT" => nil, "BUNDLE_GEMFILE" => nil, "APPBUNDLER_ALLOW_RVM" => "true" })
23
23
  s.run_command
24
24
  s.error!
25
25
  s
@@ -83,7 +83,7 @@ describe Appbundler do
83
83
  expect(app.runtime_dep_specs).to include(second_level_dep_a_a)
84
84
  expect(app.runtime_dep_specs).to include(second_level_dep_b_a)
85
85
  expect(app.runtime_dep_specs).to include(second_level_dep_shared)
86
- expect(app.runtime_dep_specs.select {|s| s == second_level_dep_shared}.size).to eq(1)
86
+ expect(app.runtime_dep_specs.select { |s| s == second_level_dep_shared }.size).to eq(1)
87
87
  end
88
88
 
89
89
  it "generates gem activation code for the app" do
@@ -111,7 +111,12 @@ CODE
111
111
  end
112
112
 
113
113
  it "generates code to override GEM_HOME and GEM_PATH (e.g., rvm)" do
114
- expected = %Q{ENV["GEM_HOME"] = ENV["GEM_PATH"] = nil unless ENV["APPBUNDLER_ALLOW_RVM"] == "true"}
114
+ expected = <<-EOS
115
+ ENV["GEM_HOME"] = ENV["GEM_PATH"] = nil unless ENV["APPBUNDLER_ALLOW_RVM"] == "true"
116
+ require "rubygems"
117
+ ::Gem.clear_paths
118
+ EOS
119
+
115
120
  expect(app.env_sanitizer).to eq(expected)
116
121
  expect(app.runtime_activate).to include(expected)
117
122
  end
@@ -129,7 +134,7 @@ CODE
129
134
  end
130
135
 
131
136
  it "generates batchfile stub code" do
132
- expected_batch_code=<<-E
137
+ expected_batch_code = <<-E
133
138
  @ECHO OFF
134
139
  "%~dp0\\..\\embedded\\bin\\ruby.exe" "%~dpn0" %*
135
140
  E
@@ -183,7 +188,7 @@ E
183
188
  end
184
189
 
185
190
  context "when created with the example application" do
186
- FIXTURES_PATH = File.expand_path("../../fixtures/", __FILE__).freeze
191
+ FIXTURES_PATH = File.expand_path("../../fixtures/", __FILE__).freeze
187
192
 
188
193
  APP_ROOT = File.join(FIXTURES_PATH, "appbundler-example-app").freeze
189
194
 
@@ -232,9 +237,12 @@ E
232
237
  end
233
238
 
234
239
  it "generates runtime activation code for the app" do
235
- expected_gem_activates= if windows?
236
- <<-E
240
+ expected_gem_activates = if windows?
241
+ <<-E
237
242
  ENV["GEM_HOME"] = ENV["GEM_PATH"] = nil unless ENV["APPBUNDLER_ALLOW_RVM"] == "true"
243
+ require "rubygems"
244
+ ::Gem.clear_paths
245
+
238
246
  gem "chef", "= 12.4.1"
239
247
  gem "chef-config", "= 12.4.1"
240
248
  gem "mixlib-config", "= 2.2.1"
@@ -294,9 +302,12 @@ gem "win32-service", "= 0.8.6"
294
302
  gem "windows-api", "= 0.4.4"
295
303
  gem "windows-pr", "= 1.2.4"
296
304
  E
297
- else
298
- <<-E
305
+ else
306
+ <<-E
299
307
  ENV["GEM_HOME"] = ENV["GEM_PATH"] = nil unless ENV["APPBUNDLER_ALLOW_RVM"] == "true"
308
+ require "rubygems"
309
+ ::Gem.clear_paths
310
+
300
311
  gem "chef", "= 12.4.1"
301
312
  gem "chef-config", "= 12.4.1"
302
313
  gem "mixlib-config", "= 2.2.1"
@@ -344,13 +355,13 @@ gem "net-telnet", "= 0.1.1"
344
355
  gem "sfl", "= 2.2"
345
356
  gem "syslog-logger", "= 1.6.8"
346
357
  E
347
- end
358
+ end
348
359
  expect(app.runtime_activate).to include(expected_gem_activates)
349
360
  end
350
361
 
351
362
  it "lists the app's executables" do
352
363
  spec = Gem::Specification.find_by_name("appbundler-example-app", "= 1.0.0")
353
- expected_executables = %w[app-binary-1 app-binary-2].map do |basename|
364
+ expected_executables = %w{app-binary-1 app-binary-2}.map do |basename|
354
365
  File.join(spec.gem_dir, "/bin", basename)
355
366
  end
356
367
  expect(app.executables).to match_array(expected_executables)
@@ -368,7 +379,7 @@ E
368
379
 
369
380
  load_binary = executable_content.lines.to_a.last
370
381
 
371
- expected_load_path = %Q[Kernel.load(bin_file)\n]
382
+ expected_load_path = %Q{Kernel.load(bin_file)\n}
372
383
 
373
384
  expect(load_binary).to eq(expected_load_path)
374
385
  end
@@ -390,15 +401,15 @@ E
390
401
  spec = Gem::Specification.find_by_name("appbundler-example-app", "= 1.0.0")
391
402
  gem_path = spec.gem_dir
392
403
  app.copy_bundler_env
393
- expect(File.exists?(File.join(gem_path, 'Gemfile.lock'))).to be(true)
404
+ expect(File.exists?(File.join(gem_path, "Gemfile.lock"))).to be(true)
394
405
  end
395
406
 
396
407
  it "copies over .bundler to the gem directory" do
397
408
  spec = Gem::Specification.find_by_name("appbundler-example-app", "= 1.0.0")
398
409
  gem_path = spec.gem_dir
399
410
  app.copy_bundler_env
400
- expect(File.directory?(File.join(gem_path, '.bundle'))).to be(true)
401
- expect(File.exists?(File.join(gem_path, '.bundle/config'))).to be(true)
411
+ expect(File.directory?(File.join(gem_path, ".bundle"))).to be(true)
412
+ expect(File.exists?(File.join(gem_path, ".bundle/config"))).to be(true)
402
413
  end
403
414
  context "and the executable is symlinked to a different directory", :not_supported_on_windows do
404
415
 
@@ -434,7 +445,7 @@ E
434
445
  context "on windows" do
435
446
 
436
447
  let(:expected_ruby_relpath) do
437
- app.ruby_relative_path.gsub('/', '\\')
448
+ app.ruby_relative_path.tr("/", '\\')
438
449
  end
439
450
 
440
451
  let(:expected_batch_code) do
@@ -4,13 +4,13 @@ Gem::Specification.new do |spec|
4
4
  spec.name = "appbundler-example-app"
5
5
  spec.version = "1.0.0"
6
6
  spec.authors = ["danielsdeleo"]
7
- spec.email = ["dan@opscode.com"]
7
+ spec.email = ["dan@chef.io"]
8
8
  spec.description = %q{test fixture app}
9
9
  spec.summary = spec.description
10
10
  spec.homepage = ""
11
11
  spec.license = "Apache2"
12
12
 
13
- spec.files = Dir.glob("{bin,lib,spec}/**/*").reject {|f| File.directory?(f) }
13
+ spec.files = Dir.glob("{bin,lib,spec}/**/*").reject { |f| File.directory?(f) }
14
14
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
15
15
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
16
16
  spec.require_paths = ["lib"]
@@ -19,4 +19,3 @@ Gem::Specification.new do |spec|
19
19
  spec.add_development_dependency "rake"
20
20
  spec.add_development_dependency "pry"
21
21
  end
22
-
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: appbundler
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.0
4
+ version: 0.10.0
5
5
  platform: ruby
6
6
  authors:
7
- - danielsdeleo
7
+ - Dan DeLeo
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-04-11 00:00:00.000000000 Z
11
+ date: 2016-11-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -58,14 +58,14 @@ dependencies:
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '1.0'
61
+ version: '2.0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '1.0'
68
+ version: '2.0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: mixlib-cli
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -83,7 +83,7 @@ dependencies:
83
83
  description: Extracts a dependency solution from bundler's Gemfile.lock to speed gem
84
84
  activation
85
85
  email:
86
- - dan@opscode.com
86
+ - dan@chef.io
87
87
  executables:
88
88
  - appbundler
89
89
  extensions: []
@@ -113,9 +113,9 @@ files:
113
113
  - spec/fixtures/appbundler-example-app/bin/app-binary-2
114
114
  - spec/fixtures/appbundler-example-app/lib/example_app.rb
115
115
  - spec/spec_helper.rb
116
- homepage: ''
116
+ homepage: https://github.com/chef/appbundler
117
117
  licenses:
118
- - Apache2
118
+ - Apache-2.0
119
119
  metadata: {}
120
120
  post_install_message:
121
121
  rdoc_options: []
@@ -125,7 +125,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
125
125
  requirements:
126
126
  - - ">="
127
127
  - !ruby/object:Gem::Version
128
- version: '0'
128
+ version: 2.2.0
129
129
  required_rubygems_version: !ruby/object:Gem::Requirement
130
130
  requirements:
131
131
  - - ">="
@@ -133,7 +133,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
133
133
  version: '0'
134
134
  requirements: []
135
135
  rubyforge_project:
136
- rubygems_version: 2.6.3
136
+ rubygems_version: 2.6.8
137
137
  signing_key:
138
138
  specification_version: 4
139
139
  summary: Extracts a dependency solution from bundler's Gemfile.lock to speed gem activation
@@ -149,4 +149,3 @@ test_files:
149
149
  - spec/fixtures/appbundler-example-app/bin/app-binary-2
150
150
  - spec/fixtures/appbundler-example-app/lib/example_app.rb
151
151
  - spec/spec_helper.rb
152
- has_rdoc: