bundler-patch 1.0.0 → 1.1.0.pre1
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/.ruby-version +1 -1
- data/.travis.yml +40 -18
- data/bundler-patch.gemspec +2 -2
- data/lib/bundler/patch.rb +1 -0
- data/lib/bundler/patch/advisory_consolidator.rb +2 -1
- data/lib/bundler/patch/cli.rb +55 -6
- data/lib/bundler/patch/gemfile.rb +3 -4
- data/lib/bundler/patch/ruby_version.rb +7 -7
- data/lib/bundler/patch/target_bundle.rb +108 -0
- data/lib/bundler/patch/updater.rb +1 -1
- data/lib/bundler/patch/version.rb +1 -1
- metadata +10 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4d0a7b1ce6bd99140213082d130de098b65c45ce
|
4
|
+
data.tar.gz: f81ba6fbfecf3be917095c265e9cfe38929e49ec
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 75aaf7bd3c7c80d6cd88c43604071277df983c0716ac4de46094f8aaa1bf41f9161769ab1e2320c99ec00f50b8ef54c75d8cfd68ab868304fda6c20ee5ebbc48
|
7
|
+
data.tar.gz: bbfebaa7bd031e39ab1a5313233e256b2f6d2b3b8f6e0071afe14d15a25abca02ae9976eac90bbbe2656f488495af8df369c0e894ea26cbb933ebee357b3db96
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.3.
|
1
|
+
2.3.4
|
data/.travis.yml
CHANGED
@@ -4,26 +4,48 @@ before_install:
|
|
4
4
|
- for dir in $(echo $GEM_PATH | tr ':' ' '); do gem uninstall -i $dir bundler -a -x; done
|
5
5
|
- gem install bundler -v $BUNDLER_TEST_VERSION
|
6
6
|
- bundle --version
|
7
|
+
- rvm use 2.1.10 --install --binary --fuzzy
|
8
|
+
- gem update --system
|
9
|
+
- rvm use $RVM_VER --install --binary --fuzzy
|
10
|
+
- gem update --system
|
7
11
|
|
8
12
|
script: bundle exec rake test:all
|
9
13
|
|
10
14
|
matrix:
|
11
15
|
include:
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
16
|
+
env:
|
17
|
+
- RVM_VER=2.3.4
|
18
|
+
- BUNDLER_TEST_VERSION=1.9.10
|
19
|
+
- BP_DEBUG=1
|
20
|
+
env:
|
21
|
+
- RVM_VER=2.3.4
|
22
|
+
- BUNDLER_TEST_VERSION=1.10.5
|
23
|
+
- BP_DEBUG=1
|
24
|
+
env:
|
25
|
+
- RVM_VER=2.3.4
|
26
|
+
- BUNDLER_TEST_VERSION=1.11.2
|
27
|
+
- BP_DEBUG=1
|
28
|
+
env:
|
29
|
+
- RVM_VER=2.3.4
|
30
|
+
- BUNDLER_TEST_VERSION=1.12.5
|
31
|
+
- BP_DEBUG=1
|
32
|
+
env:
|
33
|
+
- RVM_VER=2.3.4
|
34
|
+
- BUNDLER_TEST_VERSION=1.13.6
|
35
|
+
- BP_DEBUG=1
|
36
|
+
env:
|
37
|
+
- RVM_VER=2.3.4
|
38
|
+
- BUNDLER_TEST_VERSION=1.14.6
|
39
|
+
- BP_DEBUG=1
|
40
|
+
# env:
|
41
|
+
# - RVM_VER=2.1.10
|
42
|
+
# - BUNDLER_TEST_VERSION=1.15.1
|
43
|
+
# - BP_DEBUG=1
|
44
|
+
env:
|
45
|
+
- RVM_VER=2.2.7
|
46
|
+
- BUNDLER_TEST_VERSION=1.15.1
|
47
|
+
- BP_DEBUG=1
|
48
|
+
env:
|
49
|
+
- RVM_VER=2.3.4
|
50
|
+
- BUNDLER_TEST_VERSION=1.15.1
|
51
|
+
- BP_DEBUG=1
|
data/bundler-patch.gemspec
CHANGED
@@ -19,11 +19,11 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.executables = ['bundler-patch']
|
20
20
|
spec.require_paths = ['lib']
|
21
21
|
|
22
|
-
spec.add_dependency 'bundler-advise', '~> 1.1', '>= 1.1.
|
22
|
+
spec.add_dependency 'bundler-advise', '~> 1.1', '>= 1.1.5'
|
23
23
|
spec.add_dependency 'slop', '~> 3.0'
|
24
24
|
spec.add_dependency 'bundler', '~> 1.7'
|
25
25
|
|
26
|
-
spec.add_development_dependency 'bundler-fixture', '~> 1.
|
26
|
+
spec.add_development_dependency 'bundler-fixture', '~> 1.6'
|
27
27
|
spec.add_development_dependency 'pry'
|
28
28
|
spec.add_development_dependency 'rake', '~> 10.0'
|
29
29
|
spec.add_development_dependency 'rspec', '~> 3.5'
|
data/lib/bundler/patch.rb
CHANGED
@@ -63,7 +63,8 @@ module Bundler::Patch
|
|
63
63
|
end.map do |_, all|
|
64
64
|
all.sort.last
|
65
65
|
end
|
66
|
-
Gemfile.new(
|
66
|
+
Gemfile.new(target_bundle: @options[:target] || TargetBundle.new,
|
67
|
+
gem_name: all_gem_names.first, patched_versions: highest_minor_patched)
|
67
68
|
end
|
68
69
|
end
|
69
70
|
|
data/lib/bundler/patch/cli.rb
CHANGED
@@ -2,10 +2,13 @@ require 'bundler'
|
|
2
2
|
require 'bundler/vendor/thor/lib/thor'
|
3
3
|
require 'bundler/advise'
|
4
4
|
require 'slop'
|
5
|
+
require 'open3'
|
5
6
|
|
6
7
|
module Bundler::Patch
|
7
8
|
class CLI
|
8
9
|
def self.execute
|
10
|
+
original_command = ARGV.join(' ')
|
11
|
+
|
9
12
|
opts = Slop.parse! do
|
10
13
|
banner "Bundler Patch Version #{Bundler::Patch::VERSION}\nUsage: bundle patch [options] [gems-to-update]\n\nbundler-patch attempts to update gems conservatively.\n"
|
11
14
|
on '-m', '--minor', 'Prefer update to the latest minor.patch version.'
|
@@ -17,8 +20,11 @@ module Bundler::Patch
|
|
17
20
|
on '-d=', '--ruby-advisory-db-path=', 'Optional path for ruby advisory db. `gems` dir will be appended to this path.'
|
18
21
|
on '-r', '--ruby', 'Update Ruby version in related files.'
|
19
22
|
on '--rubies=', 'Supported Ruby versions. Comma delimited or multiple switches.', as: Array, delimiter: ','
|
23
|
+
on '-g=', '--gemfile=', 'Optional Gemfile to execute against. Defaults to Gemfile in current directory.'
|
24
|
+
on '--use_target_ruby', 'Optionally attempt to use Ruby version of target bundle specified in --gemfile.'
|
20
25
|
on '-h', 'Show this help'
|
21
26
|
on '--help', 'Show README.md'
|
27
|
+
|
22
28
|
# will be stripped in help display and normalized to hyphenated options
|
23
29
|
on '--vulnerable_gems_only'
|
24
30
|
on '--advisory_db_path='
|
@@ -30,6 +36,7 @@ module Bundler::Patch
|
|
30
36
|
|
31
37
|
options = opts.to_hash
|
32
38
|
options[:gems_to_update] = ARGV
|
39
|
+
options[:original_command] = original_command
|
33
40
|
STDERR.puts options.inspect if ENV['DEBUG']
|
34
41
|
|
35
42
|
show_help(opts) if options[:h]
|
@@ -58,11 +65,23 @@ module Bundler::Patch
|
|
58
65
|
|
59
66
|
normalize_options(options)
|
60
67
|
|
61
|
-
|
68
|
+
process_gemfile_option(options)
|
69
|
+
|
70
|
+
if options[:use_target_ruby] # TODO: && different_ruby_found
|
71
|
+
tb = options[:target]
|
72
|
+
ruby = tb.ruby_bin_exe
|
73
|
+
tb.install_bundler_patch_in_target
|
74
|
+
bundler_patch = File.join(tb.ruby_bin, 'bundler-patch') # uses 'latest' bundler-patch, which can work after we've installed ours.
|
75
|
+
full_command = "#{ruby} #{bundler_patch} #{options[:original_command].gsub(/use_target_ruby/, '')}"
|
76
|
+
result = shell_command(full_command)
|
77
|
+
puts result[:stdout] unless ENV['BP_DEBUG']
|
78
|
+
else
|
79
|
+
return list(options) if options[:list]
|
62
80
|
|
63
|
-
|
81
|
+
patch_ruby(options) if options[:ruby]
|
64
82
|
|
65
|
-
|
83
|
+
patch_gems(options)
|
84
|
+
end
|
66
85
|
end
|
67
86
|
|
68
87
|
def normalize_options(options)
|
@@ -78,6 +97,19 @@ module Bundler::Patch
|
|
78
97
|
|
79
98
|
private
|
80
99
|
|
100
|
+
def process_gemfile_option(options)
|
101
|
+
# copy/pasta from Bundler
|
102
|
+
custom_gemfile = options[:gemfile] || Bundler.settings[:gemfile]
|
103
|
+
if custom_gemfile && !custom_gemfile.empty?
|
104
|
+
ENV['BUNDLE_GEMFILE'] = File.expand_path(custom_gemfile)
|
105
|
+
dir, gemfile = [File.dirname(custom_gemfile), File.basename(custom_gemfile)]
|
106
|
+
target_bundle = TargetBundle.new(dir: dir, gemfile: gemfile)
|
107
|
+
options[:target] = target_bundle
|
108
|
+
else
|
109
|
+
options[:target] = TargetBundle.new
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
81
113
|
def list(options)
|
82
114
|
gem_patches = AdvisoryConsolidator.new(options).vulnerable_gems
|
83
115
|
|
@@ -91,8 +123,9 @@ module Bundler::Patch
|
|
91
123
|
end
|
92
124
|
end
|
93
125
|
|
94
|
-
def patch_ruby(
|
95
|
-
|
126
|
+
def patch_ruby(options)
|
127
|
+
supported = options[:rubies]
|
128
|
+
RubyVersion.new(target_bundle: options[:target], patched_versions: supported).update
|
96
129
|
end
|
97
130
|
|
98
131
|
def patch_gems(options)
|
@@ -138,12 +171,28 @@ module Bundler::Patch
|
|
138
171
|
# update => true is very important, otherwise without any Gemfile changes, the installer
|
139
172
|
# may end up concluding everything can be resolved locally, nothing is changing,
|
140
173
|
# and then nothing is done. lib/bundler/cli/update.rb also hard-codes this.
|
141
|
-
Bundler::Installer.install(
|
174
|
+
Bundler::Installer.install(options[:target].dir, prep.bundler_def, {'update' => true})
|
142
175
|
Bundler.load.cache if Bundler.app_cache.exist?
|
143
176
|
end
|
144
177
|
end
|
145
178
|
end
|
146
179
|
|
180
|
+
def shell_command(command)
|
181
|
+
stdout, stderr, status = Open3.capture3(command)
|
182
|
+
if ENV['BP_DEBUG']
|
183
|
+
puts "-command: #{command}"
|
184
|
+
puts "--stdout:#{indent(stdout)}"
|
185
|
+
puts "--stderr:#{indent(stderr)}"
|
186
|
+
end
|
187
|
+
{stdout: stdout,
|
188
|
+
stderr: stderr,
|
189
|
+
status: status}
|
190
|
+
end
|
191
|
+
|
192
|
+
def indent(s)
|
193
|
+
s.split("\n").map { |ln| " #{ln}" }.join("\n")
|
194
|
+
end
|
195
|
+
|
147
196
|
if __FILE__ == $0
|
148
197
|
Bundler::Patch::CLI.execute
|
149
198
|
end
|
@@ -2,11 +2,11 @@ module Bundler::Patch
|
|
2
2
|
class Gemfile < UpdateSpec
|
3
3
|
attr_reader :gem_name
|
4
4
|
|
5
|
-
def initialize(
|
5
|
+
def initialize(target_bundle: TargetBundle.new,
|
6
6
|
gem_name:,
|
7
7
|
patched_versions: [])
|
8
|
-
super(target_file:
|
9
|
-
target_dir:
|
8
|
+
super(target_file: target_bundle.gemfile,
|
9
|
+
target_dir: target_bundle.dir,
|
10
10
|
patched_versions: patched_versions)
|
11
11
|
@gem_name = gem_name
|
12
12
|
end
|
@@ -32,7 +32,6 @@ module Bundler::Patch
|
|
32
32
|
#
|
33
33
|
# We'll still instance_eval the gem line though, to properly
|
34
34
|
# handle the various options and possible multiple reqs.
|
35
|
-
@target_file = 'Gemfile'
|
36
35
|
@regexes = /^\s*gem.*['"]\s*#{@gem_name}\s*['"].*$/
|
37
36
|
file_replace do |match, re|
|
38
37
|
update_to_new_gem_version(match)
|
@@ -4,21 +4,21 @@ module Bundler::Patch
|
|
4
4
|
|
5
5
|
def self.files
|
6
6
|
@files ||= {
|
7
|
-
'.ruby-version' => [/.*/]
|
8
|
-
'Gemfile' => RUBY_VERSION_LINE_REGEXPS,
|
9
|
-
'gems.rb' => RUBY_VERSION_LINE_REGEXPS,
|
7
|
+
'.ruby-version' => [/.*/]
|
10
8
|
}
|
11
9
|
end
|
12
10
|
|
13
|
-
def initialize(
|
14
|
-
super(target_file:
|
15
|
-
target_dir:
|
11
|
+
def initialize(target_bundle: TargetBundle.new, patched_versions: [])
|
12
|
+
super(target_file: target_bundle.gemfile,
|
13
|
+
target_dir: target_bundle.dir,
|
16
14
|
regexes: regexes,
|
17
15
|
patched_versions: patched_versions)
|
18
16
|
end
|
19
17
|
|
20
18
|
def update
|
21
|
-
self.class.files.
|
19
|
+
hash = self.class.files.dup
|
20
|
+
hash[@target_file.dup] = RUBY_VERSION_LINE_REGEXPS
|
21
|
+
hash.each_pair do |file, regexes|
|
22
22
|
@target_file = file
|
23
23
|
@regexes = regexes
|
24
24
|
file_replace
|
@@ -0,0 +1,108 @@
|
|
1
|
+
class TargetBundle
|
2
|
+
attr_reader :dir, :gemfile
|
3
|
+
|
4
|
+
def self.bundler_version_or_higher(version)
|
5
|
+
version_greater_than_or_equal_to_other(Bundler::VERSION, version)
|
6
|
+
end
|
7
|
+
|
8
|
+
def self.version_greater_than_or_equal_to_other(a, b)
|
9
|
+
Gem::Version.new(a) >= Gem::Version.new(b)
|
10
|
+
end
|
11
|
+
|
12
|
+
# TODO: Make gems.rb default in Bundler 2.0.
|
13
|
+
def initialize(dir: Dir.pwd, gemfile: 'Gemfile')
|
14
|
+
@dir = dir
|
15
|
+
@gemfile = gemfile
|
16
|
+
end
|
17
|
+
|
18
|
+
# First, the version of Ruby itself:
|
19
|
+
# 1. Look in the Gemfile/lockfile for ruby version
|
20
|
+
# 2. Look for a .ruby-version file
|
21
|
+
# 3. (An additional flag so user can specify?)
|
22
|
+
#
|
23
|
+
# Second, look bin path presuming version is in current path.
|
24
|
+
def ruby_version
|
25
|
+
result = if TargetBundle.bundler_version_or_higher('1.12.0') && File.exist?(lockfile_name)
|
26
|
+
lockfile_parser = Bundler::LockfileParser.new(Bundler.read_file(lockfile_name))
|
27
|
+
lockfile_parser.ruby_version
|
28
|
+
end
|
29
|
+
|
30
|
+
result ||= if File.exist?(ruby_version_filename)
|
31
|
+
File.read('.ruby-version').chomp
|
32
|
+
else
|
33
|
+
Bundler::Definition.build(gemfile_name, lockfile_name, nil).ruby_version
|
34
|
+
end
|
35
|
+
|
36
|
+
version, patch_level = result.to_s.scan(/(\d+\.\d+\.\d+)(p\d+)*/).first
|
37
|
+
patch_level ? "#{version}-#{patch_level}" : version
|
38
|
+
end
|
39
|
+
|
40
|
+
# This is hairy here. All the possible variants will make this mucky, but ... can
|
41
|
+
# prolly get close enough in many circumstances.
|
42
|
+
def ruby_bin(current_ruby_bin=RbConfig::CONFIG['bindir'], target_ruby_version=self.ruby_version)
|
43
|
+
[
|
44
|
+
target_ruby_version,
|
45
|
+
target_ruby_version.gsub(/-p\d+/, ''),
|
46
|
+
"ruby-#{target_ruby_version}",
|
47
|
+
"ruby-#{target_ruby_version.gsub(/-p\d+/, '')}"
|
48
|
+
].map do |ruby_ver|
|
49
|
+
build_ruby_bin(current_ruby_bin, ruby_ver)
|
50
|
+
end.detect do |ruby_ver|
|
51
|
+
print "Looking for #{ruby_ver}... " if ENV['BP_DEBUG']
|
52
|
+
File.exist?(ruby_ver).tap { |exist| puts(exist ? 'found' : 'not found') if ENV['BP_DEBUG'] }
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
def build_ruby_bin(current_ruby_bin, target_ruby_version)
|
57
|
+
current_ruby_bin.split(File::SEPARATOR).reverse.map do |segment|
|
58
|
+
if segment =~ /\d+\.\d+\.\d+/
|
59
|
+
segment.gsub(/(\d+\.\d+\.\d+)-*(p\d+)*/, target_ruby_version)
|
60
|
+
else
|
61
|
+
segment
|
62
|
+
end
|
63
|
+
end.reverse.join(File::SEPARATOR)
|
64
|
+
end
|
65
|
+
|
66
|
+
def ruby_bin_exe
|
67
|
+
File.join(ruby_bin, "#{RbConfig::CONFIG['ruby_install_name']}#{RbConfig::CONFIG['EXEEXT']}")
|
68
|
+
end
|
69
|
+
|
70
|
+
# Have to run a separate process in the other Ruby, because Bundler::Settings#path ultimately
|
71
|
+
# arrives at RbConfig::CONFIG which is all special data derived from the active runtime.
|
72
|
+
# TODO: fix ^^
|
73
|
+
def gem_home
|
74
|
+
result = shell_command "#{ruby_bin_exe} -C#{@dir} -e 'puts Gem.default_dir'"
|
75
|
+
path = result[:stdout].chomp
|
76
|
+
expanded_path = Pathname.new(path).expand_path(@dir).to_s
|
77
|
+
puts expanded_path if ENV['BP_DEBUG']
|
78
|
+
expanded_path
|
79
|
+
end
|
80
|
+
|
81
|
+
# To properly update another bundle, bundler-patch _does_ need to live in the same bundle
|
82
|
+
# location because of its _dependencies_ (it's not a self-contained gem), and it can't both
|
83
|
+
# act on another bundle location AND find its own dependencies in a separate bundle location.
|
84
|
+
|
85
|
+
# TODO: gem_home for this purpose does not need to be the local bundle path, can just
|
86
|
+
# be in the Ruby "global" gem home, right?
|
87
|
+
def install_bundler_patch_in_target
|
88
|
+
# cmd = "#{ruby_bin}#{File::SEPARATOR}gem install -V --install-dir #{gem_home} --conservative --no-document --prerelease bundler-patch"
|
89
|
+
cmd = "#{ruby_bin}#{File::SEPARATOR}gem install -V --install-dir #{gem_home} --no-document --prerelease bundler-patch"
|
90
|
+
shell_command cmd
|
91
|
+
|
92
|
+
shell_command "ls #{ruby_bin}#{File::SEPARATOR}**"
|
93
|
+
end
|
94
|
+
|
95
|
+
private
|
96
|
+
|
97
|
+
def ruby_version_filename
|
98
|
+
File.join(@dir, '.ruby-version')
|
99
|
+
end
|
100
|
+
|
101
|
+
def gemfile_name
|
102
|
+
File.join(@dir, @gemfile)
|
103
|
+
end
|
104
|
+
|
105
|
+
def lockfile_name
|
106
|
+
"#{gemfile_name}.lock"
|
107
|
+
end
|
108
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bundler-patch
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.1.0.pre1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- chrismo
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-05
|
11
|
+
date: 2017-07-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler-advise
|
@@ -19,7 +19,7 @@ dependencies:
|
|
19
19
|
version: '1.1'
|
20
20
|
- - ">="
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: 1.1.
|
22
|
+
version: 1.1.5
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -29,7 +29,7 @@ dependencies:
|
|
29
29
|
version: '1.1'
|
30
30
|
- - ">="
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version: 1.1.
|
32
|
+
version: 1.1.5
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: slop
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -64,20 +64,14 @@ dependencies:
|
|
64
64
|
requirements:
|
65
65
|
- - "~>"
|
66
66
|
- !ruby/object:Gem::Version
|
67
|
-
version: '1.
|
68
|
-
- - ">="
|
69
|
-
- !ruby/object:Gem::Version
|
70
|
-
version: 1.3.2
|
67
|
+
version: '1.6'
|
71
68
|
type: :development
|
72
69
|
prerelease: false
|
73
70
|
version_requirements: !ruby/object:Gem::Requirement
|
74
71
|
requirements:
|
75
72
|
- - "~>"
|
76
73
|
- !ruby/object:Gem::Version
|
77
|
-
version: '1.
|
78
|
-
- - ">="
|
79
|
-
- !ruby/object:Gem::Version
|
80
|
-
version: 1.3.2
|
74
|
+
version: '1.6'
|
81
75
|
- !ruby/object:Gem::Dependency
|
82
76
|
name: pry
|
83
77
|
requirement: !ruby/object:Gem::Requirement
|
@@ -149,6 +143,7 @@ files:
|
|
149
143
|
- lib/bundler/patch/gemfile.rb
|
150
144
|
- lib/bundler/patch/gems_to_patch_reconciler.rb
|
151
145
|
- lib/bundler/patch/ruby_version.rb
|
146
|
+
- lib/bundler/patch/target_bundle.rb
|
152
147
|
- lib/bundler/patch/updater.rb
|
153
148
|
- lib/bundler/patch/version.rb
|
154
149
|
homepage: https://github.com/livingsocial/bundler-patch
|
@@ -166,12 +161,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
166
161
|
version: '0'
|
167
162
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
168
163
|
requirements:
|
169
|
-
- - "
|
164
|
+
- - ">"
|
170
165
|
- !ruby/object:Gem::Version
|
171
|
-
version:
|
166
|
+
version: 1.3.1
|
172
167
|
requirements: []
|
173
168
|
rubyforge_project:
|
174
|
-
rubygems_version: 2.6.
|
169
|
+
rubygems_version: 2.6.12
|
175
170
|
signing_key:
|
176
171
|
specification_version: 4
|
177
172
|
summary: Conservative bundler updates
|