libyear-bundler 0.5.1 → 0.5.2

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: 3b113205ec01de873ddfdb08d3f57bae32d490e7c8507fd1a66a1fb6b3eb908b
4
- data.tar.gz: 6d8e7d769640f59408f32d348cbef9c3b0ac05afa4d599d1bf1263e6eb9c236c
3
+ metadata.gz: b928c7b46ecc15833f753d4b5400becf3159bb01f89ce4dfca13f134e85dc214
4
+ data.tar.gz: 84675a2d07aa5f953a0bb9521390ebf383005bcbf255ddfdac574e5b0a2b6de7
5
5
  SHA512:
6
- metadata.gz: e0faaddd13daf54352167af88c80299210f4cdb7bae8509406058f8322e5a0d1eb637d8d75a22cebc0a9384b6c60c2e2b7166561f52c7dee9aa9f43e283ea7af
7
- data.tar.gz: cbed8858a0ef38a2ce323354add6bd64035ffe43bd69cd41f0d381f5486c27b9d81d20e7e8e01424bd6eb5d5e5f93054a5ec3f6ed51a8d1581ffbad0eaae4859
6
+ metadata.gz: d20b10024dcd680f6a598d889a17a0cf42fd7bd9e531de0badaaab74dd60728b76baa4091e9737cbd7452125f2b9f153349b8381ff6087a860fb52838e2072bb
7
+ data.tar.gz: 51f690808ed6af0e8f36f84b54b13197873ecd4638948045f496fc1b555e54c4e02942a59279a0b1de1aaf9c332d70a637d50eb5df5cf2ebf29b0c1ba222043e
@@ -43,7 +43,7 @@ module LibyearBundler
43
43
  end
44
44
 
45
45
  def newest_version
46
- ::Gem::Version.new(all_stable_versions.first)
46
+ ::Gem::Version.new(all_stable_versions.first['version'])
47
47
  end
48
48
 
49
49
  def newest_version_release_date
@@ -92,10 +92,9 @@ module LibyearBundler
92
92
  # which we also implcitly do for gem versions because that's bundler's
93
93
  # default behavior
94
94
  def all_stable_versions
95
- stable_releases = all_versions.reject do |version|
95
+ all_versions.reject do |version|
96
96
  ::Gem::Version.new(version['version']).prerelease?
97
97
  end
98
- stable_releases.map { |release| release['version'] }
99
98
  end
100
99
 
101
100
  def installed_version_sequence_index
@@ -108,6 +107,11 @@ module LibyearBundler
108
107
 
109
108
  def release_date(version)
110
109
  v = all_stable_versions.detect { |ver| ver['version'] == version }
110
+
111
+ if v.nil?
112
+ raise format('Cannot determine release date for ruby %s', version)
113
+ end
114
+
111
115
  # YAML#safe_load provides an already-parsed Date object, so the following
112
116
  # is a Date object
113
117
  v['date']
@@ -124,7 +128,7 @@ module LibyearBundler
124
128
  # Sources:
125
129
  # - https://github.com/ruby/ruby/blob/trunk/version.h#L37
126
130
  # - https://ruby-doc.org/stdlib-1.9.3/libdoc/rubygems/rdoc/Version.html
127
- `ruby --version`.split[1].gsub(/p\d/, '')
131
+ `ruby --version`.split[1].gsub(/p\d*/, '')
128
132
  end
129
133
 
130
134
  def version_from_bundler
@@ -17,7 +17,13 @@ module LibyearBundler
17
17
 
18
18
  def to_s
19
19
  to_h[:gems].each { |gem| put_line_summary(gem) }
20
- put_line_summary(@ruby) if @ruby.outdated?
20
+
21
+ begin
22
+ put_line_summary(@ruby) if @ruby.outdated?
23
+ rescue StandardError => e
24
+ warn "Unable to calculate libyears for ruby itself: #{e} (line summary)"
25
+ end
26
+
21
27
  put_summary(to_h)
22
28
  end
23
29
 
@@ -30,7 +36,11 @@ module LibyearBundler
30
36
  }
31
37
  @gems.each { |gem| increment_metrics_summary(gem, summary) }
32
38
 
33
- increment_metrics_summary(@ruby, summary) if @ruby.outdated?
39
+ begin
40
+ increment_metrics_summary(@ruby, summary) if @ruby.outdated?
41
+ rescue StandardError => e
42
+ warn "Unable to calculate libyears for ruby itself: #{e}"
43
+ end
34
44
 
35
45
  summary
36
46
  end
@@ -1,3 +1,3 @@
1
1
  module LibyearBundler
2
- VERSION = "0.5.1".freeze
2
+ VERSION = "0.5.2".freeze
3
3
  end
@@ -12,8 +12,13 @@ Gem::Specification.new do |spec|
12
12
  spec.summary = "A simple measure of dependency freshness"
13
13
  spec.homepage = "https://libyear.com"
14
14
  spec.licenses = ["GPL-3.0"]
15
- spec.files = `git ls-files -z`.split("\x0").reject do |f|
16
- f.match(%r{^(test|spec|features)/})
15
+ spec.files = `git ls-files -z`.split("\x0").select do |f|
16
+ f.start_with?('lib/') ||
17
+ [
18
+ 'bin/libyear-bundler',
19
+ 'libyear-bundler.gemspec',
20
+ 'LICENSE.txt'
21
+ ].include?(f)
17
22
  end
18
23
  spec.bindir = "bin"
19
24
  spec.executables = ["libyear-bundler"]
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: libyear-bundler
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: 0.5.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jared Beck
@@ -66,17 +66,8 @@ executables:
66
66
  extensions: []
67
67
  extra_rdoc_files: []
68
68
  files:
69
- - ".gitignore"
70
- - ".rubocop.yml"
71
- - ".rubocop_todo.yml"
72
- - ".travis.yml"
73
- - CHANGELOG.md
74
- - CONTRIBUTING.md
75
- - Gemfile
76
69
  - LICENSE.txt
77
- - README.md
78
70
  - bin/libyear-bundler
79
- - bin/test
80
71
  - lib/libyear_bundler.rb
81
72
  - lib/libyear_bundler/bundle_outdated.rb
82
73
  - lib/libyear_bundler/calculators/libyear.rb
data/.gitignore DELETED
@@ -1,10 +0,0 @@
1
- /.bundle/
2
- /.yardoc
3
- /Gemfile.lock
4
- /_yardoc/
5
- /coverage/
6
- /doc/
7
- /pkg/
8
- /spec/reports/
9
- /tmp/
10
- .ruby-version
@@ -1,30 +0,0 @@
1
- inherit_from: .rubocop_todo.yml
2
-
3
- AllCops:
4
- TargetRubyVersion: 2.1.10
5
-
6
- Layout/IndentArray:
7
- EnforcedStyle: consistent
8
-
9
- Layout/MultilineMethodCallIndentation:
10
- EnforcedStyle: indented
11
-
12
- Metrics/AbcSize:
13
- Max: 27
14
-
15
- Metrics/BlockLength:
16
- Exclude:
17
- - 'spec/**/*'
18
-
19
- Metrics/ModuleLength:
20
- Exclude:
21
- - 'spec/**/*'
22
-
23
- Metrics/LineLength:
24
- Max: 100
25
-
26
- Metrics/MethodLength:
27
- Enabled: false
28
-
29
- Style/StringLiterals:
30
- Enabled: false
@@ -1,89 +0,0 @@
1
- # This configuration was generated by
2
- # `rubocop --auto-gen-config`
3
- # on 2017-11-29 16:15:16 -0500 using RuboCop version 0.51.0.
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: 1
10
- # Cop supports --auto-correct.
11
- # Configuration parameters: EnforcedStyle, SupportedStyles.
12
- # SupportedStyles: leading, trailing
13
- Layout/DotPosition:
14
- Exclude:
15
- - 'spec/calculators/libyear_spec.rb'
16
-
17
- # Offense count: 1
18
- # Cop supports --auto-correct.
19
- Layout/EmptyLines:
20
- Exclude:
21
- - 'lib/libyear_bundler/cli.rb'
22
-
23
- # Offense count: 1
24
- # Cop supports --auto-correct.
25
- # Configuration parameters: EnforcedStyle, SupportedStyles.
26
- # SupportedStyles: auto_detection, squiggly, active_support, powerpack, unindent
27
- Layout/IndentHeredoc:
28
- Exclude:
29
- - 'lib/libyear_bundler/options.rb'
30
-
31
- # Offense count: 3
32
- # Configuration parameters: CountComments, ExcludedMethods.
33
- Metrics/BlockLength:
34
- Max: 40
35
-
36
- # Offense count: 1
37
- Metrics/ClassLength:
38
- Exclude:
39
- - 'lib/libyear_bundler/report.rb'
40
-
41
- # Offense count: 3
42
- # Configuration parameters: ExpectMatchingDefinition, Regex, IgnoreExecutableScripts, AllowedAcronyms.
43
- # AllowedAcronyms: CLI, DSL, ACL, API, ASCII, CPU, CSS, DNS, EOF, GUID, HTML, HTTP, HTTPS, ID, IP, JSON, LHS, QPS, RAM, RHS, RPC, SLA, SMTP, SQL, SSH, TCP, TLS, TTL, UDP, UI, UID, UUID, URI, URL, UTF8, VM, XML, XMPP, XSRF, XSS
44
- Naming/FileName:
45
- Exclude:
46
- - 'spec/gemfiles/Gemfile.bundler-1.14.rb'
47
- - 'spec/gemfiles/Gemfile.bundler-1.15.rb'
48
- - 'spec/gemfiles/Gemfile.bundler-1.16.rb'
49
-
50
- # Offense count: 1
51
- Style/Documentation:
52
- Exclude:
53
- - 'spec/**/*'
54
- - 'test/**/*'
55
-
56
- # Offense count: 1
57
- # Cop supports --auto-correct.
58
- Style/Encoding:
59
- Exclude:
60
- - 'libyear-bundler.gemspec'
61
-
62
- # Offense count: 1
63
- # Cop supports --auto-correct.
64
- Style/MutableConstant:
65
- Exclude:
66
- - 'lib/libyear_bundler/options.rb'
67
-
68
- # Offense count: 9
69
- # Cop supports --auto-correct.
70
- Style/StderrPuts:
71
- Exclude:
72
- - 'lib/libyear_bundler/bundle_outdated.rb'
73
- - 'lib/libyear_bundler/cli.rb'
74
- - 'lib/libyear_bundler/models/gem.rb'
75
-
76
- # Offense count: 2
77
- # Cop supports --auto-correct.
78
- # Configuration parameters: MinSize, SupportedStyles.
79
- # SupportedStyles: percent, brackets
80
- Style/SymbolArray:
81
- EnforcedStyle: brackets
82
-
83
- # Offense count: 1
84
- # Cop supports --auto-correct.
85
- # Configuration parameters: ExactNameMatch, AllowPredicates, AllowDSLWriters, IgnoreClassMethods, Whitelist.
86
- # Whitelist: to_ary, to_a, to_c, to_enum, to_h, to_hash, to_i, to_int, to_io, to_open, to_path, to_proc, to_r, to_regexp, to_str, to_s, to_sym
87
- Style/TrivialAccessors:
88
- Exclude:
89
- - 'lib/libyear_bundler/models/gem.rb'
@@ -1,11 +0,0 @@
1
- cache: bundler
2
- language: ruby
3
- rvm:
4
- - 2.4.2
5
- - 2.3.5
6
- - 2.2.8
7
- - 2.1.10
8
- script:
9
- - bundle exec rubocop
10
- - bundle exec rspec
11
- sudo: false
@@ -1,149 +0,0 @@
1
- # libyear
2
-
3
- This project follows [semver 2.0.0][1] and the recommendations
4
- of [keepachangelog.com][2].
5
-
6
- ## Unreleased
7
-
8
- Breaking changes:
9
-
10
- - None
11
-
12
- Added:
13
-
14
- - None
15
-
16
- Fixed:
17
-
18
- - None
19
-
20
- ## 0.5.1 (2019-05-09)
21
-
22
- Breaking changes:
23
-
24
- - None
25
-
26
- Added:
27
-
28
- - None
29
-
30
- Fixed:
31
-
32
- - Stable Ruby releases are no longer considered pre-releases (80534fa)
33
- - Avoid crash due to malformed version strings by skipping those dependencies (7b0b2cf)
34
-
35
- Dependencies:
36
-
37
- - Support bundler 2
38
-
39
- ## 0.5.0 (2017-12-27)
40
-
41
- Breaking changes:
42
-
43
- - None
44
-
45
- Added:
46
-
47
- - [#10](https://github.com/jaredbeck/libyear-bundler/pull/10)
48
- Include Ruby version in metrics calculations
49
-
50
- Fixed:
51
-
52
- - None
53
-
54
- ## 0.4.0 (2017-07-07)
55
-
56
- Breaking changes:
57
-
58
- - None
59
-
60
- Added:
61
-
62
- - [#3](https://github.com/jaredbeck/libyear-bundler/pull/3)
63
- Add --versions and --releases
64
-
65
- Fixed:
66
-
67
- - None
68
-
69
- ## 0.3.0 (2017-03-24)
70
-
71
- Breaking changes:
72
-
73
- - None
74
-
75
- Added:
76
-
77
- - [#1](https://github.com/jaredbeck/libyear-bundler/pull/1)
78
- Add --grand-total option
79
-
80
- Fixed:
81
-
82
- - None
83
-
84
- ## 0.2.0 (2017-03-10)
85
-
86
- Breaking changes:
87
-
88
- - Rename project
89
- - Rename project from libyear-rb to libyear-bundler
90
- - Rename binary from libyear to libyear-bundler
91
- - Discussion: https://github.com/jaredbeck/libyear-rb/issues/1
92
-
93
- Added:
94
-
95
- - None
96
-
97
- Fixed:
98
-
99
- - None
100
-
101
- ## 0.1.3 (2017-03-07)
102
-
103
- Breaking changes:
104
-
105
- - None
106
-
107
- Added:
108
-
109
- - None
110
-
111
- Fixed:
112
-
113
- - Don't crash when Gemfile uses git
114
-
115
- ## 0.1.2 (2017-02-16)
116
-
117
- Breaking changes:
118
-
119
- - None
120
-
121
- Added:
122
-
123
- - None
124
-
125
- Fixed:
126
-
127
- - Better handling of weird sources like rails-assets
128
- - Wider report columns
129
-
130
- ## 0.1.1 (2017-02-14)
131
-
132
- Breaking changes:
133
-
134
- - None
135
-
136
- Added:
137
-
138
- - None
139
-
140
- Fixed:
141
-
142
- - Better handling of error when bundle outdated fails
143
-
144
- ## 0.1.0 (2017-02-13)
145
-
146
- Initial version. Proof of concept.
147
-
148
- [1]: http://semver.org/spec/v2.0.0.html
149
- [2]: http://keepachangelog.com/
@@ -1,24 +0,0 @@
1
- # Contributing Guide
2
-
3
- ## Development
4
-
5
- Pull requests are welcome.
6
-
7
- ```bash
8
- bundle install
9
- bundle exec rspec
10
- ```
11
-
12
- ## Releases
13
-
14
- 1. Set the version in `lib/libyear_bundler/version.rb`
15
- - Follow SemVer
16
- - Only use integer-dot-integer-dot-integer format, never "pre-releases"
17
- 1. In the changelog,
18
- - Replace "Unreleased" with the date in ISO-8601 format
19
- - Add a new "Unreleased" section
20
- 1. Commit
21
- 1. git tag -a -m "v0.5.0" "v0.5.0" # or whatever number
22
- 1. git push --tags origin master
23
- 1. gem build libyear-bundler.gemspec
24
- 1. gem push libyear-bundler-0.5.0.gem
data/Gemfile DELETED
@@ -1,4 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- # Specify your gem's dependencies in libyear.gemspec
4
- gemspec
data/README.md DELETED
@@ -1,141 +0,0 @@
1
- # Libyear
2
-
3
- A simple measure of dependency freshness for ruby apps.
4
-
5
- ```bash
6
- $ libyear-bundler Gemfile
7
- activesupport 4.2.7.1 2016-08-10 5.1.3 2017-08-03 1.0
8
- i18n 0.8.0 2017-01-31 0.8.6 2017-07-10 0.4
9
- json 1.8.6 2017-01-13 2.1.0 2017-04-18 0.3
10
- System is 1.7 libyears behind
11
- ```
12
-
13
- `libyear-bundler` tells you how out-of-date your Gemfile is, in *a single
14
- number*.
15
-
16
- # Install
17
-
18
- ```bash
19
- gem install libyear-bundler
20
- ```
21
-
22
- ## Usage
23
-
24
- Run `libyear-bundler` in a directory with a Gemfile.
25
-
26
- ### `--libyears` (default)
27
-
28
- Measures the time between your dependencies' installed and newest versions, in
29
- years.
30
-
31
- ```bash
32
- $ libyear-bundler Gemfile
33
- activesupport 4.2.7.1 2016-08-10 5.1.3 2017-08-03 1.0
34
- i18n 0.8.0 2017-01-31 0.8.6 2017-07-10 0.4
35
- json 1.8.6 2017-01-13 2.1.0 2017-04-18 0.3
36
- minitest 5.10.1 2016-12-02 5.10.3 2017-07-21 0.6
37
- minitest_to_rspec 0.6.0 2015-06-09 0.8.0 2017-01-02 1.6
38
- ruby_parser 3.8.4 2017-01-13 3.10.1 2017-07-21 0.5
39
- sexp_processor 4.8.0 2017-02-01 4.10.0 2017-07-17 0.5
40
- thread_safe 0.3.5 2015-03-11 0.3.6 2017-02-22 2.0
41
- tzinfo 1.2.2 2014-08-08 1.2.3 2017-03-25 2.6
42
- System is 9.4 libyears behind
43
-
44
- ```
45
-
46
- ### `--releases`
47
-
48
- Measures the number of releases between your dependencies' installed and newest
49
- versions
50
-
51
- ```bash
52
- $ libyear-bundler Gemfile --releases
53
- activesupport 4.2.7.1 2016-08-10 5.1.3 2017-08-03 37
54
- i18n 0.8.0 2017-01-31 0.8.6 2017-07-10 5
55
- json 1.8.6 2017-01-13 2.1.0 2017-04-18 12
56
- minitest 5.10.1 2016-12-02 5.10.3 2017-07-21 2
57
- minitest_to_rspec 0.6.0 2015-06-09 0.8.0 2017-01-02 5
58
- ruby_parser 3.8.4 2017-01-13 3.10.1 2017-07-21 3
59
- sexp_processor 4.8.0 2017-02-01 4.10.0 2017-07-17 3
60
- thread_safe 0.3.5 2015-03-11 0.3.6 2017-02-22 2
61
- tzinfo 1.2.2 2014-08-08 1.2.3 2017-03-25 1
62
- Total releases behind: 70
63
-
64
- ```
65
-
66
- ### `--versions`
67
-
68
- Measures the number of major, minor, and patch versions between your
69
- dependencies' installed and newest versions
70
-
71
- ```bash
72
- $ libyear-bundler Gemfile --versions
73
- activesupport 4.2.7.1 2016-08-10 5.1.3 2017-08-03 [1, 0, 0]
74
- i18n 0.8.0 2017-01-31 0.8.6 2017-07-10 [0, 0, 6]
75
- json 1.8.6 2017-01-13 2.1.0 2017-04-18 [1, 0, 0]
76
- minitest 5.10.1 2016-12-02 5.10.3 2017-07-21 [0, 0, 2]
77
- minitest_to_rspec 0.6.0 2015-06-09 0.8.0 2017-01-02 [0, 2, 0]
78
- ruby_parser 3.8.4 2017-01-13 3.10.1 2017-07-21 [0, 2, 0]
79
- sexp_processor 4.8.0 2017-02-01 4.10.0 2017-07-17 [0, 2, 0]
80
- thread_safe 0.3.5 2015-03-11 0.3.6 2017-02-22 [0, 0, 1]
81
- tzinfo 1.2.2 2014-08-08 1.2.3 2017-03-25 [0, 0, 1]
82
- Major, minor, patch versions behind: 2, 6, 10
83
-
84
- ```
85
-
86
- ### `--all`
87
-
88
- Returns relevant data for each outdated gem, including 'libyears', 'releases',
89
- and 'versions' metrics
90
-
91
- ```bash
92
- $ libyear-bundler Gemfile --all
93
- activesupport 4.2.7.1 2016-08-10 5.1.3 2017-08-03 1.0 37 [1, 0, 0]
94
- i18n 0.8.0 2017-01-31 0.8.6 2017-07-10 0.4 5 [0, 0, 6]
95
- json 1.8.6 2017-01-13 2.1.0 2017-04-18 0.3 12 [1, 0, 0]
96
- minitest 5.10.1 2016-12-02 5.10.3 2017-07-21 0.6 2 [0, 0, 2]
97
- minitest_to_rspec 0.6.0 2015-06-09 0.8.0 2017-01-02 1.6 5 [0, 2, 0]
98
- ruby_parser 3.8.4 2017-01-13 3.10.1 2017-07-21 0.5 3 [0, 2, 0]
99
- sexp_processor 4.8.0 2017-02-01 4.10.0 2017-07-17 0.5 3 [0, 2, 0]
100
- thread_safe 0.3.5 2015-03-11 0.3.6 2017-02-22 2.0 2 [0, 0, 1]
101
- tzinfo 1.2.2 2014-08-08 1.2.3 2017-03-25 2.6 1 [0, 0, 1]
102
- System is 9.4 libyears behind
103
- Total releases behind: 70
104
- Major, minor, patch versions behind: 2, 6, 10
105
- ```
106
-
107
- ### `--grand-total`
108
-
109
- With no other options, returns the grand-total of libyears. Used with other
110
- flags, returns the associated grand-total.
111
-
112
- ```bash
113
- $ libyear-bundler Gemfile --grand-total
114
- 9.4
115
-
116
- $ libyear-bundler Gemfile --releases --grand-total
117
- 70
118
-
119
- $ libyear-bundler Gemfile --versions --grand-total
120
- [2, 6, 10]
121
-
122
- $ libyear-bundler Gemfile --all --grand-total
123
- 9.4
124
- 70
125
- [2, 6, 10]
126
- ```
127
-
128
- ## Contributing
129
-
130
- See CONTRIBUTING.md
131
-
132
- ## Acknowledgements
133
-
134
- The inspiration for libyear comes from the technical report “Measuring
135
- Dependency Freshness in Software Systems”[1].
136
-
137
- ---
138
- [1] J. Cox, E. Bouwers, M. van Eekelen and J. Visser, Measuring Dependency
139
- Freshness in Software Systems. In Proceedings of the 37th International
140
- Conference on Software Engineering (ICSE 2015), May 2015
141
- https://ericbouwers.github.io/papers/icse15.pdf
data/bin/test DELETED
@@ -1,6 +0,0 @@
1
- #!/usr/bin/env bash
2
-
3
- set -e
4
-
5
- bundle exec rubocop
6
- bundle exec rspec