bundleup 0.7.0 → 0.8.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: b3427f9b203480a7f65bdf9afb374ea26ee2e86d7f49a5dfbdd3f311577ce365
4
- data.tar.gz: e841c17b919c641a3e27a6ef1462b4b2ff5cfed0f750e08b99f57fbff7dad506
3
+ metadata.gz: 41775d894ceef821d639e5a283e9880a453695e1638ae007b707fb3b9641043f
4
+ data.tar.gz: e3f6ea14d551dbc1e561d8573579894fa21579415576ef551bfc08ae95984d9f
5
5
  SHA512:
6
- metadata.gz: 38946290ae160d93c9442e11ef1cf20492e58ae9364a92cbfe9fb581b01199696a0752a513fa92cbae4f6136d8dcd1d2bfe4cd7ca9f54857798dcd7b88008f06
7
- data.tar.gz: b640116ea1dce44f3738e1f6940601c8c399f4b5840e67940cb42e465514bbb81863aded727b801e1641641a763961818f1f605c76b347dfe7b58d9f8aae743f
6
+ metadata.gz: bc8901a74431a2c75ef87b334d9aad4669ee0c62df4a0c41ec24017113f8a942f7ea582b80018100c77ce1301e4f266c283bbda88590ad50f76bf44cd9fb179d
7
+ data.tar.gz: 5a09c595275237a78cb914bb7bcde07d4d7ef54340579d1c207bee88a21070b239bdfc39cbba081af946f5491f22634252133064731531b0b6c4076e429bd0a7
@@ -0,0 +1,9 @@
1
+ workflow "Push" {
2
+ on = "push"
3
+ resolves = ["Draft Release"]
4
+ }
5
+
6
+ action "Draft Release" {
7
+ uses = "toolmantim/release-drafter@v5.1.1"
8
+ secrets = ["GITHUB_TOKEN"]
9
+ }
@@ -0,0 +1,17 @@
1
+ name-template: "$NEXT_PATCH_VERSION"
2
+ tag-template: "v$NEXT_PATCH_VERSION"
3
+ categories:
4
+ - title: "⚠️ Breaking Changes"
5
+ label: "⚠️ Breaking"
6
+ - title: "✨ New Features"
7
+ label: "✨ Feature"
8
+ - title: "🐛 Bug Fixes"
9
+ label: "🐛 Bug Fix"
10
+ - title: "📚 Documentation"
11
+ label: "📚 Docs"
12
+ - title: "🏠 Housekeeping"
13
+ label: "🏠 Housekeeping"
14
+ change-template: "- $TITLE (#$NUMBER) @$AUTHOR"
15
+ no-changes-template: "- No changes"
16
+ template: |
17
+ $CHANGES
@@ -1,4 +1,8 @@
1
+ require:
2
+ - rubocop-performance
3
+
1
4
  AllCops:
5
+ TargetRubyVersion: 2.4
2
6
  Exclude:
3
7
  - "*.gemspec"
4
8
  - "vendor/**/*"
@@ -18,6 +22,9 @@ Metrics/ClassLength:
18
22
  Exclude:
19
23
  - "test/**/*"
20
24
 
25
+ Naming/MemoizedInstanceVariableName:
26
+ Enabled: false
27
+
21
28
  Style/BarePercentLiterals:
22
29
  EnforcedStyle: percent_q
23
30
 
@@ -30,8 +37,11 @@ Style/Documentation:
30
37
  Style/DoubleNegation:
31
38
  Enabled: false
32
39
 
40
+ Style/FrozenStringLiteralComment:
41
+ Enabled: false
42
+
33
43
  Style/HashSyntax:
34
- EnforcedStyle: hash_rockets
44
+ EnforcedStyle: ruby19
35
45
 
36
46
  Style/StringLiterals:
37
47
  EnforcedStyle: double_quotes
@@ -1,11 +1,16 @@
1
+ ---
1
2
  sudo: false
2
3
  language: ruby
3
4
  cache: bundler
5
+ branches:
6
+ only:
7
+ - master
4
8
  rvm:
5
- - 2.3.8
6
- - 2.4.5
7
- - 2.5.3
8
- - ruby-head
9
+ - 2.4.6
10
+ - 2.5.5
11
+ - 2.6.3
12
+ - ruby-head
9
13
  before_install:
10
- - gem update --system
11
- - gem install bundler --no-document
14
+ - gem update --system
15
+ - gem install bundler -v 2.0.2 --conservative --no-document
16
+ - gem install executable-hooks --conservative --no-document
@@ -1,66 +1 @@
1
- # bundleup Change Log
2
-
3
- All notable changes to this project will be documented in this file.
4
-
5
- bundleup is in a pre-1.0 state. This means that its APIs and behavior are subject to breaking changes without deprecation notices. Until 1.0, version numbers will follow a [Semver][]-ish `0.y.z` format, where `y` is incremented when new features or breaking changes are introduced, and `z` is incremented for lesser changes or bug fixes.
6
-
7
- ## [Unreleased][]
8
-
9
- * Your contribution here!
10
-
11
- ## [0.7.0][] (2018-12-30)
12
-
13
- * **Drop support for Ruby < 2.3**
14
-
15
- ## [0.6.1][] (2017-11-06)
16
-
17
- * Fix erroneous blank lines in output
18
-
19
- ## [0.6.0][] (2017-11-06)
20
-
21
- * [#1](https://github.com/mattbrictson/bundleup/issues/1): If a Gemfile has an inline or prefix comment for a particular gem, and that gem is being held back due to a pin, then print the comment along with the pin information in bundleup's output.
22
-
23
- ## [0.5.0][] (2016-04-01)
24
-
25
- * You can now pass command-line arguments to bundleup, which will in turn be
26
- handed to `bundle update`. For example: `bundleup --group=development`.
27
- * Improve the console output when a Bundler command fails.
28
- * Fixed a bug where if a Bundler command failed to run, it would be executed a
29
- second time.
30
-
31
- ## [0.4.0][] (2016-02-19)
32
-
33
- * **Change the upgrade process to modify the Gemfile.lock in place, with the
34
- option to "undo" (i.e. restore from backup) if the changes are not desired.**
35
- This makes bundleup much faster since it doesn't have to run `bundle update`
36
- twice.
37
- * Fixed a bug where color was mistakenly based on the newest version of a gem,
38
- even if a restriction prevented upgrading to that version.
39
-
40
- ## [0.3.0][] (2016-01-08)
41
-
42
- * Always show SHA changes in red. If a dependency is tracking a
43
- Git branch, and running `bundle update` would cause that branch
44
- to updated and point to a new ref, that is something that
45
- warrants attention.
46
-
47
- ## [0.2.0][] (2015-12-26)
48
-
49
- * Animated spinner during long-running bundler commands
50
- * Rather than run `bundle` in a temp directory, run within the current
51
- directory, making a backup copy of Gemfile.lock. This ensures that relative
52
- paths and `.bundle/config` are honored.
53
-
54
- ## 0.1.0 (2015-12-24)
55
-
56
- * Initial release
57
-
58
- [Semver]: http://semver.org
59
- [Unreleased]: https://github.com/mattbrictson/bundleup/compare/v0.7.0...HEAD
60
- [0.7.0]: https://github.com/mattbrictson/bundleup/compare/v0.6.1...v0.7.0
61
- [0.6.1]: https://github.com/mattbrictson/bundleup/compare/v0.6.0...v0.6.1
62
- [0.6.0]: https://github.com/mattbrictson/bundleup/compare/v0.5.0...v0.6.0
63
- [0.5.0]: https://github.com/mattbrictson/bundleup/compare/v0.4.0...v0.5.0
64
- [0.4.0]: https://github.com/mattbrictson/bundleup/compare/v0.3.0...v0.4.0
65
- [0.3.0]: https://github.com/mattbrictson/bundleup/compare/v0.2.0...v0.3.0
66
- [0.2.0]: https://github.com/mattbrictson/bundleup/compare/v0.1.0...v0.2.0
1
+ Release notes for this project are kept here: https://github.com/mattbrictson/bundleup/releases
@@ -1,6 +1,6 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright (c) 2018 Matt Brictson
3
+ Copyright (c) 2019 Matt Brictson
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
data/Rakefile CHANGED
@@ -1,5 +1,4 @@
1
1
  require "bundler/gem_tasks"
2
- require "chandler/tasks"
3
2
  require "rake/testtask"
4
3
  require "rubocop/rake_task"
5
4
 
@@ -11,5 +10,96 @@ end
11
10
 
12
11
  RuboCop::RakeTask.new
13
12
 
14
- task "release:rubygem_push" => "chandler:push"
15
- task :default => %i[test rubocop]
13
+ task default: %i[test rubocop]
14
+
15
+ Rake::Task["release"].enhance do
16
+ puts "Don't forget to publish the release on GitHub!"
17
+ system "open https://github.com/mattbrictson/bundleup/releases"
18
+ end
19
+
20
+ task bump: %w[bump:bundler bump:ruby bump:year]
21
+
22
+ namespace :bump do
23
+ task :bundler do
24
+ version = Gemfile.bundler_version
25
+ replace_in_file ".travis.yml", /bundler -v (\S+)/ => version
26
+ end
27
+
28
+ task :ruby do
29
+ lowest = RubyVersions.lowest_supported
30
+ lowest_minor = RubyVersions.lowest_supported_minor
31
+
32
+ replace_in_file "bundleup.gemspec", /ruby_version = ">= (.*)"/ => lowest
33
+ replace_in_file ".rubocop.yml", /TargetRubyVersion: (.*)/ => lowest_minor
34
+
35
+ travis = YAML.safe_load(open(".travis.yml"))
36
+ travis["rvm"] = RubyVersions.latest_supported_patches + ["ruby-head"]
37
+ IO.write(".travis.yml", YAML.dump(travis))
38
+ end
39
+
40
+ task :year do
41
+ replace_in_file "LICENSE.txt", /\(c\) (\d+)/ => Date.today.year.to_s
42
+ end
43
+ end
44
+
45
+ require "date"
46
+ require "open-uri"
47
+ require "yaml"
48
+
49
+ def replace_in_file(path, replacements)
50
+ contents = IO.read(path)
51
+ orig_contents = contents.dup
52
+ replacements.each do |regexp, text|
53
+ contents.gsub!(regexp) do |match|
54
+ match[regexp, 1] = text
55
+ match
56
+ end
57
+ end
58
+ IO.write(path, contents) if contents != orig_contents
59
+ end
60
+
61
+ module Gemfile
62
+ class << self
63
+ def bundler_version
64
+ lock_file[/BUNDLED WITH\n (\S+)$/, 1]
65
+ end
66
+
67
+ private
68
+
69
+ def lock_file
70
+ @_lock_file ||= IO.read("Gemfile.lock")
71
+ end
72
+ end
73
+ end
74
+
75
+ module RubyVersions
76
+ class << self
77
+ def lowest_supported
78
+ "#{lowest_supported_minor}.0"
79
+ end
80
+
81
+ def lowest_supported_minor
82
+ latest_supported_patches.first[/\d+\.\d+/]
83
+ end
84
+
85
+ def latest
86
+ latest_supported_patches.last
87
+ end
88
+
89
+ def latest_supported_patches
90
+ patches = [versions[:stable], versions[:security_maintenance]].flatten
91
+ patches.map(&Gem::Version.method(:new)).sort.map(&:to_s)
92
+ end
93
+
94
+ private
95
+
96
+ def versions
97
+ @_versions ||= begin
98
+ yaml = open(
99
+ "https://raw.githubusercontent.com/ruby/www.ruby-lang.org/master/_data/downloads.yml"
100
+ )
101
+ YAML.safe_load(yaml, symbolize_names: true)
102
+ end
103
+ end
104
+ end
105
+ end
@@ -19,13 +19,13 @@ Gem::Specification.new do |spec|
19
19
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
20
  spec.require_paths = ["lib"]
21
21
 
22
- spec.required_ruby_version = ">= 2.3.0"
22
+ spec.required_ruby_version = ">= 2.4.0"
23
23
 
24
- spec.add_development_dependency "bundler", "~> 1.11"
25
- spec.add_development_dependency "chandler"
24
+ spec.add_development_dependency "bundler", "~> 2.0"
26
25
  spec.add_development_dependency "coveralls", "~> 0.8.19"
27
26
  spec.add_development_dependency "minitest", "~> 5.0"
28
27
  spec.add_development_dependency "minitest-reporters", "~> 1.1"
29
28
  spec.add_development_dependency "rake", "~> 12.0"
30
- spec.add_development_dependency "rubocop", "0.51.0"
29
+ spec.add_development_dependency "rubocop", "0.71.0"
30
+ spec.add_development_dependency "rubocop-performance", "1.4.0"
31
31
  end
@@ -23,6 +23,7 @@ module Bundleup
23
23
  progress("Running `#{cmd_line}`") do
24
24
  out, err, status = Open3.capture3(*cmd)
25
25
  next(out) if status.success? || fail_silently
26
+
26
27
  raise ["Failed to execute: #{cmd_line}", out, err].compact.join("\n")
27
28
  end
28
29
  end
@@ -28,6 +28,7 @@ module Bundleup
28
28
 
29
29
  def review_pins
30
30
  return if pins.empty?
31
+
31
32
  puts "\nNote that the following gem(s) are being held back:\n\n"
32
33
  print_pins_table
33
34
  end
@@ -39,6 +40,7 @@ module Bundleup
39
40
  def restore_lockfile
40
41
  return unless defined?(@upgrade)
41
42
  return unless upgrade.lockfile_changed?
43
+
42
44
  upgrade.undo
43
45
  puts "Your original Gemfile.lock has been restored."
44
46
  end
@@ -1,11 +1,11 @@
1
1
  module Bundleup
2
2
  module Console
3
3
  ANSI_CODES = {
4
- :red => 31,
5
- :green => 32,
6
- :yellow => 33,
7
- :blue => 34,
8
- :gray => 90
4
+ red: 31,
5
+ green: 32,
6
+ yellow: 33,
7
+ blue: 34,
8
+ gray: 90
9
9
  }.freeze
10
10
 
11
11
  def ok(message)
@@ -19,6 +19,7 @@ module Bundleup
19
19
  def color(color_name, message)
20
20
  code = ANSI_CODES[color_name]
21
21
  return message if code.nil?
22
+
22
23
  "\e[0;#{code};49m#{message}\e[0m"
23
24
  end
24
25
 
@@ -80,6 +81,7 @@ module Bundleup
80
81
  wait_for_exit(thread, initial_wait)
81
82
  loop do
82
83
  break if wait_for_exit(thread, periodic_wait)
84
+
83
85
  yield
84
86
  end
85
87
  thread.value
@@ -90,6 +92,7 @@ module Bundleup
90
92
  rescue StandardError
91
93
  # Sanity check. If we get an exception, the thread should be dead.
92
94
  raise if thread.alive?
95
+
93
96
  thread
94
97
  end
95
98
  end
@@ -35,11 +35,13 @@ module Bundleup
35
35
 
36
36
  def major_upgrade?
37
37
  return false if new_version.nil? || old_version.nil?
38
+
38
39
  major(new_version) != major(old_version)
39
40
  end
40
41
 
41
42
  def minor_upgrade?
42
43
  return false if new_version.nil? || old_version.nil?
44
+
43
45
  !major_upgrade? && minor(new_version) != minor(old_version)
44
46
  end
45
47
 
@@ -54,3 +56,4 @@ module Bundleup
54
56
  end
55
57
  end
56
58
  end
59
+ # rubocop:enable Metrics/BlockLength
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  module Bundleup
4
- VERSION = "0.7.0".freeze
2
+ VERSION = "0.8.0".freeze
5
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bundleup
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matt Brictson
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-12-30 00:00:00.000000000 Z
11
+ date: 2019-06-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -16,28 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.11'
19
+ version: '2.0'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.11'
27
- - !ruby/object:Gem::Dependency
28
- name: chandler
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: '0'
34
- type: :development
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ">="
39
- - !ruby/object:Gem::Version
40
- version: '0'
26
+ version: '2.0'
41
27
  - !ruby/object:Gem::Dependency
42
28
  name: coveralls
43
29
  requirement: !ruby/object:Gem::Requirement
@@ -100,14 +86,28 @@ dependencies:
100
86
  requirements:
101
87
  - - '='
102
88
  - !ruby/object:Gem::Version
103
- version: 0.51.0
89
+ version: 0.71.0
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - '='
95
+ - !ruby/object:Gem::Version
96
+ version: 0.71.0
97
+ - !ruby/object:Gem::Dependency
98
+ name: rubocop-performance
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - '='
102
+ - !ruby/object:Gem::Version
103
+ version: 1.4.0
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - '='
109
109
  - !ruby/object:Gem::Version
110
- version: 0.51.0
110
+ version: 1.4.0
111
111
  description:
112
112
  email:
113
113
  - bundleup@mattbrictson.com
@@ -116,6 +116,8 @@ executables:
116
116
  extensions: []
117
117
  extra_rdoc_files: []
118
118
  files:
119
+ - ".github/main.workflow"
120
+ - ".github/release-drafter.yml"
119
121
  - ".gitignore"
120
122
  - ".rubocop.yml"
121
123
  - ".travis.yml"
@@ -151,14 +153,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
151
153
  requirements:
152
154
  - - ">="
153
155
  - !ruby/object:Gem::Version
154
- version: 2.3.0
156
+ version: 2.4.0
155
157
  required_rubygems_version: !ruby/object:Gem::Requirement
156
158
  requirements:
157
159
  - - ">="
158
160
  - !ruby/object:Gem::Version
159
161
  version: '0'
160
162
  requirements: []
161
- rubygems_version: 3.0.1
163
+ rubygems_version: 3.0.4
162
164
  signing_key:
163
165
  specification_version: 4
164
166
  summary: A friendlier command-line interface for Bundler’s `update` and `outdated`