keep_up 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
  SHA256:
3
- metadata.gz: d9a8cf50656d55403aaae2319218ce2801bcd9dffdea0151d86fc90f7051de27
4
- data.tar.gz: ea53a52e56e04b9dba8134bdf86c99713847ef2158181a557f93165e326177b9
3
+ metadata.gz: 7f7cf0d8f661622facd6330ca2b0185be3b4e307750f498a8d7a5fe5e426b2d4
4
+ data.tar.gz: d4b93a7ecde478f08fe746582af8aafcae56edb2c32932f37a5e324ee39fc811
5
5
  SHA512:
6
- metadata.gz: 251e0b63416c6b937831aac2b65cccd5b6e3b38432af375d4210f52071e63edd4688767754c4d94ef8d540176d8fd8ee895ee51ae81926613c39fdc81e1c87cf
7
- data.tar.gz: 0eab09bcbfc0c8472a511e9d10cf8132529a3801d5aadc68a138d7d26d6d34c636d8d6e0246ee255c72e2853ed5344019f2ec486fac0b370a4fdf4e31f75f534
6
+ metadata.gz: 2636dc31ad91af4460b38804925e078161cce26c86041683022a8a11f6932d615ec61bcded0db14e25d9b0d255481a7bc1ede9a1de0bb5f6fb7067d93fc2471a
7
+ data.tar.gz: 559e8a41d53d847156b468e8cf28ae49183ac839ead216fc0440d4c28c4a3a7fc42d753dd1fdf52733fae7fd1749388449bf843943cc1193b461ee6f18f9dc9e
data/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.10.0 / 2022-01-23
4
+
5
+ * Drop support for Ruby 2.5 and 2.6
6
+ * Add support for Ruby 3.0 and 3.1
7
+ * Avoid interrupting half-printed lines when bundle update fails
8
+
3
9
  ## 0.9.0 / 2020-09-18
4
10
 
5
11
  * Drop support for Ruby 2.4
@@ -46,9 +46,11 @@ module KeepUp
46
46
  end
47
47
 
48
48
  def update_all_dependencies
49
- Updater.new(bundle: bundle,
50
- version_control: version_control,
51
- filter: filter).run
49
+ Updater.new(
50
+ bundle: bundle,
51
+ version_control: version_control,
52
+ filter: filter
53
+ ).run
52
54
  end
53
55
 
54
56
  def version_control
@@ -64,11 +66,12 @@ module KeepUp
64
66
  end
65
67
 
66
68
  def filter
67
- @filter ||= if skip.any?
68
- SkipFilter.new(skip)
69
- else
70
- NullFilter.new
71
- end
69
+ @filter ||=
70
+ if skip.any?
71
+ SkipFilter.new(skip)
72
+ else
73
+ NullFilter.new
74
+ end
72
75
  end
73
76
  end
74
77
  end
@@ -20,17 +20,10 @@ module KeepUp
20
20
  def dependencies
21
21
  @dependencies ||=
22
22
  begin
23
- command = "bundle outdated --parseable#{' --local' if @local}"
23
+ command = "bundle outdated --parseable#{" --local" if @local}"
24
24
  lines = run_filtered command, OUTDATED_MATCHER
25
25
  lines.map do |name, newest, version, requirement|
26
- requirement_list = requirement&.split(/,\s*/)
27
- requirement_list ||= fetch_gemspec_dependency_requirements(name)
28
- version = version.split(" ").first
29
- newest = newest.split(" ").first
30
- Dependency.new(name: name,
31
- locked_version: version,
32
- newest_version: newest,
33
- requirement_list: requirement_list)
26
+ build_dependency(name, newest, version, requirement)
34
27
  end
35
28
  end
36
29
  end
@@ -59,7 +52,7 @@ module KeepUp
59
52
  # Update lockfile and return resulting spec, or false in case of failure
60
53
  def update_lockfile(update)
61
54
  update_name = update.name
62
- command = "bundle update#{' --local' if @local} --conservative #{update_name}"
55
+ command = "bundle update#{" --local" if @local} --conservative #{update_name}"
63
56
  lines = run_filtered command, UPDATE_MATCHER
64
57
  lines.each do |name, version, old_version|
65
58
  next unless name == update_name && old_version
@@ -74,18 +67,33 @@ module KeepUp
74
67
  private
75
68
 
76
69
  def gemspec
77
- @gemspec ||= if gemspec_name
78
- gemspec_path = File.expand_path(gemspec_name)
79
- eval File.read(gemspec_name), nil, gemspec_path
80
- end
70
+ @gemspec ||=
71
+ if gemspec_name
72
+ gemspec_path = File.expand_path(gemspec_name)
73
+ eval File.read(gemspec_name), nil, gemspec_path
74
+ end
81
75
  end
82
76
 
83
77
  def gemspec_dependencies
84
- @gemspec_dependencies ||= if gemspec
85
- gemspec.dependencies
86
- else
87
- []
88
- end
78
+ @gemspec_dependencies ||=
79
+ if gemspec
80
+ gemspec.dependencies
81
+ else
82
+ []
83
+ end
84
+ end
85
+
86
+ def build_dependency(name, newest, version, requirement)
87
+ requirement_list = requirement&.split(/,\s*/)
88
+ requirement_list ||= fetch_gemspec_dependency_requirements(name)
89
+ version = version.split.first
90
+ newest = newest.split.first
91
+ Dependency.new(
92
+ name: name,
93
+ locked_version: version,
94
+ newest_version: newest,
95
+ requirement_list: requirement_list
96
+ )
89
97
  end
90
98
 
91
99
  def fetch_gemspec_dependency_requirements(name)
@@ -117,7 +125,7 @@ module KeepUp
117
125
  matchdata = regexp.match line
118
126
  next unless matchdata
119
127
 
120
- matchdata.to_a[1..-1]
128
+ matchdata.to_a[1..]
121
129
  end.compact
122
130
  end
123
131
  end
@@ -44,10 +44,11 @@ module KeepUp
44
44
  end
45
45
 
46
46
  def segment_count
47
- @segment_count ||= begin
48
- _, ver = requirement.requirements.first
49
- ver.segments.count
50
- end
47
+ @segment_count ||=
48
+ begin
49
+ _, ver = requirement.requirements.first
50
+ ver.segments.count
51
+ end
51
52
  end
52
53
  end
53
54
  end
@@ -7,8 +7,7 @@ module KeepUp
7
7
  class Updater
8
8
  attr_reader :bundle, :version_control, :filter
9
9
 
10
- def initialize(bundle:, version_control:,
11
- filter: NullFilter.new, out: $stdout)
10
+ def initialize(bundle:, version_control:, filter: NullFilter.new, out: $stdout)
12
11
  @bundle = bundle
13
12
  @version_control = version_control
14
13
  @filter = filter
@@ -44,15 +43,14 @@ module KeepUp
44
43
  end
45
44
 
46
45
  def report_intent(dependency)
47
- @out.print "Updating #{dependency.name}"
46
+ @out.puts "Updating #{dependency.name}"
48
47
  end
49
48
 
50
49
  def report_result(dependency, result)
51
50
  if result
52
- @out.puts " to #{result.version}"
51
+ @out.puts "Updated #{dependency.name} to #{result.version}"
53
52
  else
54
- @out.puts " to #{dependency.version}"
55
- @out.puts "Update failed"
53
+ @out.puts "Failed updating #{dependency.name} to #{dependency.version}"
56
54
  end
57
55
  end
58
56
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module KeepUp
4
- VERSION = "0.9.0"
4
+ VERSION = "0.10.0"
5
5
  end
@@ -8,7 +8,8 @@ module KeepUp
8
8
  end
9
9
 
10
10
  def commit_changes(dependency)
11
- @runner.run "git commit -am 'Update #{dependency.name} to version #{dependency.version}'"
11
+ message = "Update #{dependency.name} to version #{dependency.version}"
12
+ @runner.run "git commit -am '#{message}'"
12
13
  end
13
14
 
14
15
  def revert_changes
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: keep_up
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
7
  - Matijs van Zuijlen
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-09-18 00:00:00.000000000 Z
11
+ date: 2022-01-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -36,28 +36,28 @@ dependencies:
36
36
  requirements:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: '1.0'
39
+ version: '2.0'
40
40
  type: :development
41
41
  prerelease: false
42
42
  version_requirements: !ruby/object:Gem::Requirement
43
43
  requirements:
44
44
  - - "~>"
45
45
  - !ruby/object:Gem::Version
46
- version: '1.0'
46
+ version: '2.0'
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: cucumber
49
49
  requirement: !ruby/object:Gem::Requirement
50
50
  requirements:
51
51
  - - "~>"
52
52
  - !ruby/object:Gem::Version
53
- version: '5.0'
53
+ version: '7.0'
54
54
  type: :development
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
57
57
  requirements:
58
58
  - - "~>"
59
59
  - !ruby/object:Gem::Version
60
- version: '5.0'
60
+ version: '7.0'
61
61
  - !ruby/object:Gem::Dependency
62
62
  name: rake
63
63
  requirement: !ruby/object:Gem::Requirement
@@ -72,6 +72,20 @@ dependencies:
72
72
  - - "~>"
73
73
  - !ruby/object:Gem::Version
74
74
  version: '13.0'
75
+ - !ruby/object:Gem::Dependency
76
+ name: rake-manifest
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: 0.2.0
82
+ type: :development
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: 0.2.0
75
89
  - !ruby/object:Gem::Dependency
76
90
  name: rspec
77
91
  requirement: !ruby/object:Gem::Requirement
@@ -86,20 +100,62 @@ dependencies:
86
100
  - - "~>"
87
101
  - !ruby/object:Gem::Version
88
102
  version: '3.0'
103
+ - !ruby/object:Gem::Dependency
104
+ name: rubocop
105
+ requirement: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: '1.25'
110
+ type: :development
111
+ prerelease: false
112
+ version_requirements: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - "~>"
115
+ - !ruby/object:Gem::Version
116
+ version: '1.25'
117
+ - !ruby/object:Gem::Dependency
118
+ name: rubocop-performance
119
+ requirement: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - "~>"
122
+ - !ruby/object:Gem::Version
123
+ version: '1.13'
124
+ type: :development
125
+ prerelease: false
126
+ version_requirements: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - "~>"
129
+ - !ruby/object:Gem::Version
130
+ version: '1.13'
131
+ - !ruby/object:Gem::Dependency
132
+ name: rubocop-rspec
133
+ requirement: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - "~>"
136
+ - !ruby/object:Gem::Version
137
+ version: '2.7'
138
+ type: :development
139
+ prerelease: false
140
+ version_requirements: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - "~>"
143
+ - !ruby/object:Gem::Version
144
+ version: '2.7'
89
145
  - !ruby/object:Gem::Dependency
90
146
  name: simplecov
91
147
  requirement: !ruby/object:Gem::Requirement
92
148
  requirements:
93
149
  - - "~>"
94
150
  - !ruby/object:Gem::Version
95
- version: 0.19.0
151
+ version: 0.21.0
96
152
  type: :development
97
153
  prerelease: false
98
154
  version_requirements: !ruby/object:Gem::Requirement
99
155
  requirements:
100
156
  - - "~>"
101
157
  - !ruby/object:Gem::Version
102
- version: 0.19.0
158
+ version: 0.21.0
103
159
  description: Automatically update the dependencies listed in your Gemfile, Gemfile.lock,
104
160
  and gemspec.
105
161
  email:
@@ -109,23 +165,11 @@ executables:
109
165
  extensions: []
110
166
  extra_rdoc_files: []
111
167
  files:
112
- - ".dockerignore"
113
- - ".gitignore"
114
- - ".hound.yml"
115
- - ".rspec"
116
- - ".rubocop.yml"
117
- - ".rubocop_todo.yml"
118
- - ".simplecov"
119
- - ".travis.yml"
120
168
  - CHANGELOG.md
121
169
  - CODE_OF_CONDUCT.md
122
- - Dockerfile
123
- - Gemfile
124
170
  - LICENSE.txt
125
171
  - README.md
126
- - Rakefile
127
172
  - bin/keep_up
128
- - keep_up.gemspec
129
173
  - lib/keep_up.rb
130
174
  - lib/keep_up/application.rb
131
175
  - lib/keep_up/bundle.rb
@@ -141,8 +185,10 @@ files:
141
185
  homepage: https://github.com/mvz/keep_up
142
186
  licenses:
143
187
  - MIT
144
- metadata: {}
145
- post_install_message:
188
+ metadata:
189
+ homepage_uri: https://github.com/mvz/keep_up
190
+ rubygems_mfa_required: 'true'
191
+ post_install_message:
146
192
  rdoc_options: []
147
193
  require_paths:
148
194
  - lib
@@ -150,15 +196,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
150
196
  requirements:
151
197
  - - ">="
152
198
  - !ruby/object:Gem::Version
153
- version: 2.5.0
199
+ version: 2.6.0
154
200
  required_rubygems_version: !ruby/object:Gem::Requirement
155
201
  requirements:
156
202
  - - ">="
157
203
  - !ruby/object:Gem::Version
158
204
  version: '0'
159
205
  requirements: []
160
- rubygems_version: 3.1.2
161
- signing_key:
206
+ rubygems_version: 3.3.3
207
+ signing_key:
162
208
  specification_version: 4
163
209
  summary: Automatically update your dependencies
164
210
  test_files: []
data/.dockerignore DELETED
@@ -1,3 +0,0 @@
1
- tmp/
2
- Dockerfile
3
- .dockerignore
data/.gitignore DELETED
@@ -1,9 +0,0 @@
1
- /.bundle/
2
- /.yardoc
3
- /Gemfile.lock
4
- /_yardoc/
5
- /coverage/
6
- /doc/
7
- /pkg/
8
- /spec/reports/
9
- /tmp/
data/.hound.yml DELETED
@@ -1,2 +0,0 @@
1
- rubocop:
2
- config_file: .rubocop.yml
data/.rspec DELETED
@@ -1,2 +0,0 @@
1
- --format documentation
2
- --color
data/.rubocop.yml DELETED
@@ -1,87 +0,0 @@
1
- inherit_from: .rubocop_todo.yml
2
-
3
- require:
4
- - rubocop-performance
5
- - rubocop-rspec
6
-
7
- AllCops:
8
- Exclude:
9
- - 'tmp/**/*'
10
- NewCops: enable
11
- TargetRubyVersion: 2.5
12
-
13
- # Be lenient with line length
14
- Layout/LineLength:
15
- Max: 92
16
-
17
- # Don't force lonely closing parentheses
18
- Layout/MultilineMethodCallBraceLayout:
19
- EnforcedStyle: same_line
20
-
21
- # Multi-line method calls should be simply indented. Aligning them makes it
22
- # even harder to keep a sane line length.
23
- Layout/MultilineMethodCallIndentation:
24
- EnforcedStyle: indented
25
-
26
- # Multi-line assignment should be simply indented. Aligning them makes it even
27
- # harder to keep a sane line length.
28
- Layout/MultilineOperationIndentation:
29
- EnforcedStyle: indented
30
-
31
- # Force consistent spacing independent of block contents
32
- Layout/SpaceBeforeBlockBraces:
33
- EnforcedStyleForEmptyBraces: space
34
-
35
- # Assume the programmer knows how bracketed block syntax works
36
- Lint/AmbiguousBlockAssociation:
37
- Enabled: false
38
-
39
- # Allow if (foo = get_foo) style
40
- Lint/AssignmentInCondition:
41
- AllowSafeAssignment: true
42
-
43
- # Spec describe blocks can be any size
44
- Metrics/BlockLength:
45
- Exclude:
46
- - 'spec/**/*'
47
-
48
- Performance/StartWith:
49
- AutoCorrect: true
50
-
51
- # Allow and/or for control flow only
52
- Style/AndOr:
53
- EnforcedStyle: conditionals
54
-
55
- # Require at least two dependent lines before suggesting a guard clause
56
- Style/GuardClause:
57
- MinBodyLength: 2
58
-
59
- # Sometimes an if statement just looks better than next with a guard clause
60
- Style/Next:
61
- Enabled: false
62
-
63
- # Explicite numbers are often clearer, and more robust.
64
- Style/NumericPredicate:
65
- Enabled: false
66
-
67
- # Use older RuboCop default
68
- Style/PercentLiteralDelimiters:
69
- PreferredDelimiters:
70
- '%W': ()
71
- '%w': ()
72
-
73
- # Allow explicit return with multiple return values
74
- Style/RedundantReturn:
75
- AllowMultipleReturnValues: true
76
-
77
- # Do not commit to use of interpolation
78
- Style/StringLiterals:
79
- EnforcedStyle: double_quotes
80
-
81
- # Prefer symbols to look like symbols
82
- Style/SymbolArray:
83
- EnforcedStyle: brackets
84
-
85
- # Accessors are only trivial if they match the ivar name
86
- Style/TrivialAccessors:
87
- ExactNameMatch: true
data/.rubocop_todo.yml DELETED
@@ -1,22 +0,0 @@
1
- # This configuration was generated by
2
- # `rubocop --auto-gen-config`
3
- # on 2020-08-28 11:02:57 UTC using RuboCop version 0.89.1.
4
- # The point is for the user to remove these configuration records
5
- # one by one as the offenses are removed from the code base.
6
- # Note that changes in the inspected code, or installation of new
7
- # versions of RuboCop, may require this file to be generated again.
8
-
9
- # Offense count: 2
10
- # Configuration parameters: CountComments, CountAsOne, ExcludedMethods.
11
- Metrics/MethodLength:
12
- Max: 15
13
-
14
- # Offense count: 8
15
- # Configuration parameters: AllowSubject.
16
- RSpec/MultipleMemoizedHelpers:
17
- Max: 10
18
-
19
- # Offense count: 1
20
- Security/Eval:
21
- Exclude:
22
- - 'lib/keep_up/bundle.rb'
data/.simplecov DELETED
@@ -1,11 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- SimpleCov.start do
4
- add_group "Main", "lib"
5
- add_group "Specs", "spec"
6
- enable_coverage :branch
7
- end
8
-
9
- SimpleCov.at_exit do
10
- SimpleCov.result.format!
11
- end
data/.travis.yml DELETED
@@ -1,24 +0,0 @@
1
- language: ruby
2
-
3
- dist: xenial
4
-
5
- before_script:
6
- - git config --global user.email "you@example.com"
7
- - git config --global user.name "Your Name"
8
-
9
- cache:
10
- bundler: true
11
-
12
- rvm:
13
- - 2.5
14
- - 2.6
15
- - 2.7
16
- - ruby-head
17
-
18
- matrix:
19
- allow_failures:
20
- - rvm: ruby-head
21
-
22
- branches:
23
- only:
24
- - master
data/Dockerfile DELETED
@@ -1,21 +0,0 @@
1
- FROM ruby:2.4.0
2
-
3
- RUN mkdir /keep_up
4
- WORKDIR /keep_up
5
-
6
- # Set up minimum files to run bundler
7
- ADD Gemfile /keep_up
8
- ADD keep_up.gemspec /keep_up
9
- RUN mkdir -p /keep_up/lib/keep_up
10
- ADD lib/keep_up/version.rb /keep_up/lib/keep_up
11
- ADD .git /keep_up
12
-
13
- RUN bundle install
14
-
15
- RUN gem uninstall bunder -xa
16
- RUN gem install bundler --version=1.13.7
17
- RUN git config --global user.email "you@example.com"
18
- RUN git config --global user.name "Your Name"
19
-
20
- ADD . /keep_up
21
- RUN bundle exec rake
data/Gemfile DELETED
@@ -1,6 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- source "https://rubygems.org"
4
-
5
- # Specify your gem's dependencies in keep_up.gemspec
6
- gemspec
data/Rakefile DELETED
@@ -1,13 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "bundler/gem_tasks"
4
- require "rspec/core/rake_task"
5
- require "cucumber/rake/task"
6
-
7
- RSpec::Core::RakeTask.new(:spec) do |t|
8
- t.ruby_opts = ["-rbundler/setup -rsimplecov -w"]
9
- end
10
-
11
- Cucumber::Rake::Task.new(:features)
12
-
13
- task default: [:spec, :features]
data/keep_up.gemspec DELETED
@@ -1,36 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- lib = File.expand_path("lib", __dir__)
4
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
- require "keep_up/version"
6
-
7
- Gem::Specification.new do |spec|
8
- spec.name = "keep_up"
9
- spec.version = KeepUp::VERSION
10
- spec.authors = ["Matijs van Zuijlen"]
11
- spec.email = ["matijs@matijs.net"]
12
-
13
- spec.summary = "Automatically update your dependencies"
14
- spec.description =
15
- "Automatically update the dependencies listed in your Gemfile," \
16
- " Gemfile.lock, and gemspec."
17
- spec.homepage = "https://github.com/mvz/keep_up"
18
- spec.license = "MIT"
19
-
20
- spec.files = `git ls-files -z`.split("\x0")
21
- .reject { |f| f.match(%r{^(test|script|spec|features)/}) }
22
-
23
- spec.bindir = "bin"
24
- spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
25
- spec.require_paths = ["lib"]
26
-
27
- spec.required_ruby_version = ">= 2.5.0"
28
-
29
- spec.add_runtime_dependency "bundler", [">= 1.15", "< 3.0"]
30
-
31
- spec.add_development_dependency "aruba", "~> 1.0"
32
- spec.add_development_dependency "cucumber", "~> 5.0"
33
- spec.add_development_dependency "rake", "~> 13.0"
34
- spec.add_development_dependency "rspec", "~> 3.0"
35
- spec.add_development_dependency "simplecov", "~> 0.19.0"
36
- end