keep_up 0.9.0 → 0.10.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
  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