dependabot-core 0.86.17 → 0.86.18

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: 43499cb13c5c2925ba980601df64c7beec419999d81734bb35bdb1a048b6ba73
4
- data.tar.gz: 6770f5379b263acc06a436cd31aba9df3e3256432274d3814e3b93239731a992
3
+ metadata.gz: 3f21bbdf41e2e8d4af7b0dca36eb0936edbb2b3a8caeece17733698c641e44b2
4
+ data.tar.gz: bf2d55c6e586d4b205b7b9ade1d8cc3cdc8d0f79f9ff2d156c854cffd307d1bf
5
5
  SHA512:
6
- metadata.gz: 1138a1918a8e11e015cff3f73476220e1bdce23588cffdb4485e481240efc02e931b8be41c9f35c97d9ceb82a7ea72b4684f5bd28e6fa4bcab7eaccdd43a1d58
7
- data.tar.gz: 3395b58fd8474ca2d867562aa414b749ef4de60e487a0dea86e2dc402bbee96139e1dce0f0dcb3129eae7fc9e66332708c6071866754a080d03887f1b9a0895a
6
+ metadata.gz: '01106807ae7db8c7e7fdc081bd62b67d51c2a492c566c037b6d9c01b49a219f5bec5574d5cb6a0ef67e41157e853408dd750030a437274655bfd81c7c7606772'
7
+ data.tar.gz: c026e17253882ab49466c5ea32a5d0116ea4820573bd389a15c9a40db4bd765f6c450a3e3388633e89945794a6508898eb62b3efdf8e89fbe5d6d40ab7df19b4
data/CHANGELOG.md CHANGED
@@ -1,3 +1,9 @@
1
+ ## v0.86.18, 30 December 2018
2
+
3
+ - PHP: Handle > requirements correctly when bumping versions
4
+ - PHP: Add widen_ranges update strategy to PHP
5
+ - PHP: Allow update strategy to be passed as an option
6
+
1
7
  ## v0.86.17, 27 December 2018
2
8
 
3
9
  - Add ext-sqlite3 support for PHP by adding in Dockerfile
@@ -8,7 +8,7 @@
8
8
  },
9
9
  "devDependencies": {
10
10
  "eslint": "5.11.1",
11
- "eslint-plugin-prettier": "3.0.0",
11
+ "eslint-plugin-prettier": "3.0.1",
12
12
  "fs-extra": "7.0.1",
13
13
  "jest": "23.6.0",
14
14
  "nock": "10.0.5",
@@ -1453,10 +1453,10 @@ escodegen@^1.9.0:
1453
1453
  optionalDependencies:
1454
1454
  source-map "~0.6.1"
1455
1455
 
1456
- eslint-plugin-prettier@3.0.0:
1457
- version "3.0.0"
1458
- resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.0.0.tgz#f6b823e065f8c36529918cdb766d7a0e975ec30c"
1459
- integrity sha512-4g11opzhqq/8+AMmo5Vc2Gn7z9alZ4JqrbZ+D4i8KlSyxeQhZHlmIrY8U9Akf514MoEhogPa87Jgkq87aZ2Ohw==
1456
+ eslint-plugin-prettier@3.0.1:
1457
+ version "3.0.1"
1458
+ resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.0.1.tgz#19d521e3981f69dd6d14f64aec8c6a6ac6eb0b0d"
1459
+ integrity sha512-/PMttrarPAY78PLvV3xfWibMOdMDl57hmlQ2XqFeA37wd+CJ7WSxV7txqjVPHi/AAFKd2lX0ZqfsOc/i5yFCSQ==
1460
1460
  dependencies:
1461
1461
  prettier-linter-helpers "^1.0.0"
1462
1462
 
@@ -8,7 +8,7 @@
8
8
  },
9
9
  "devDependencies": {
10
10
  "eslint": "5.11.1",
11
- "eslint-plugin-prettier": "3.0.0",
11
+ "eslint-plugin-prettier": "3.0.1",
12
12
  "fs-extra": "7.0.1",
13
13
  "jest": "23.6.0",
14
14
  "nock": "10.0.5",
@@ -1256,10 +1256,10 @@ escodegen@^1.9.0:
1256
1256
  optionalDependencies:
1257
1257
  source-map "~0.5.6"
1258
1258
 
1259
- eslint-plugin-prettier@3.0.0:
1260
- version "3.0.0"
1261
- resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.0.0.tgz#f6b823e065f8c36529918cdb766d7a0e975ec30c"
1262
- integrity sha512-4g11opzhqq/8+AMmo5Vc2Gn7z9alZ4JqrbZ+D4i8KlSyxeQhZHlmIrY8U9Akf514MoEhogPa87Jgkq87aZ2Ohw==
1259
+ eslint-plugin-prettier@3.0.1:
1260
+ version "3.0.1"
1261
+ resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.0.1.tgz#19d521e3981f69dd6d14f64aec8c6a6ac6eb0b0d"
1262
+ integrity sha512-/PMttrarPAY78PLvV3xfWibMOdMDl57hmlQ2XqFeA37wd+CJ7WSxV7txqjVPHi/AAFKd2lX0ZqfsOc/i5yFCSQ==
1263
1263
  dependencies:
1264
1264
  prettier-linter-helpers "^1.0.0"
1265
1265
 
@@ -21,11 +21,15 @@ module Dependabot
21
21
  /(?<=[a-zA-Z0-9*])(?<!\sas)[\s,]+(?![\s,]*[|-]|as)/.freeze
22
22
  OR_SEPARATOR = /(?<=[a-zA-Z0-9*])[\s,]*\|\|?\s*/.freeze
23
23
  SEPARATOR = /(?:#{AND_SEPARATOR})|(?:#{OR_SEPARATOR})/.freeze
24
+ ALLOWED_UPDATE_STRATEGIES =
25
+ %i(widen_ranges bump_versions bump_versions_if_necessary).freeze
24
26
 
25
- def initialize(requirements:, library:,
27
+ def initialize(requirements:, update_strategy:,
26
28
  latest_version:, latest_resolvable_version:)
27
29
  @requirements = requirements
28
- @library = library
30
+ @update_strategy = update_strategy
31
+
32
+ check_update_strategy
29
33
 
30
34
  if latest_version
31
35
  @latest_version = version_class.new(latest_version)
@@ -45,9 +49,17 @@ module Dependabot
45
49
 
46
50
  private
47
51
 
48
- attr_reader :requirements, :latest_version, :latest_resolvable_version
52
+ attr_reader :requirements, :update_strategy,
53
+ :latest_version, :latest_resolvable_version
54
+
55
+ def check_update_strategy
56
+ return if ALLOWED_UPDATE_STRATEGIES.include?(update_strategy)
57
+
58
+ raise "Unknown update strategy: #{update_strategy}"
59
+ end
49
60
 
50
61
  # rubocop:disable Metrics/PerceivedComplexity
62
+ # rubocop:disable Metrics/CyclomaticComplexity
51
63
  def updated_requirement(req)
52
64
  req_string = req[:requirement].strip
53
65
  or_string_reqs = req_string.split(OR_SEPARATOR)
@@ -60,11 +72,15 @@ module Dependabot
60
72
  return req unless req_string.match?(/\d/)
61
73
  return req if numeric_or_string_reqs.none?
62
74
  return updated_alias(req) if req_string.match?(ALIAS_REGEX)
63
- return req if req_satisfied_by_latest_resolvable?(req_string)
75
+ return req if req_satisfied_by_latest_resolvable?(req_string) &&
76
+ update_strategy != :bump_versions
64
77
 
65
78
  new_req =
66
- if library? then updated_library_requirement(req, or_separator)
67
- else updated_app_requirement(req, or_separator)
79
+ case update_strategy
80
+ when :widen_ranges
81
+ widen_requirement(req, or_separator)
82
+ when :bump_versions, :bump_versions_if_necessary
83
+ update_requirement_version(req, or_separator)
68
84
  end
69
85
 
70
86
  new_req_string =
@@ -72,6 +88,7 @@ module Dependabot
72
88
  new_req.merge(requirement: new_req_string)
73
89
  end
74
90
  # rubocop:enable Metrics/PerceivedComplexity
91
+ # rubocop:enable Metrics/CyclomaticComplexity
75
92
 
76
93
  def updated_alias(req)
77
94
  req_string = req[:requirement]
@@ -86,17 +103,17 @@ module Dependabot
86
103
  req.merge(requirement: new_req)
87
104
  end
88
105
 
89
- def library?
90
- @library
91
- end
92
-
93
- def updated_app_requirement(req, or_separator)
106
+ def widen_requirement(req, or_separator)
94
107
  current_requirement = req[:requirement]
95
108
  reqs = current_requirement.strip.split(SEPARATOR).map(&:strip)
96
109
 
97
110
  updated_requirement =
98
- if reqs.count > 1
99
- "^#{latest_resolvable_version}"
111
+ if reqs.any? { |r| r.start_with?("^") }
112
+ update_caret_requirement(current_requirement, or_separator)
113
+ elsif reqs.any? { |r| r.start_with?("~") }
114
+ update_tilda_requirement(current_requirement, or_separator)
115
+ elsif reqs.any? { |r| r.include?("*") }
116
+ update_wildcard_requirement(current_requirement, or_separator)
100
117
  elsif reqs.any? { |r| r.match?(/<|(\s+-\s+)/) }
101
118
  update_range_requirement(current_requirement, or_separator)
102
119
  else
@@ -106,19 +123,17 @@ module Dependabot
106
123
  req.merge(requirement: updated_requirement)
107
124
  end
108
125
 
109
- def updated_library_requirement(req, or_separator)
126
+ def update_requirement_version(req, or_separator)
110
127
  current_requirement = req[:requirement]
111
128
  reqs = current_requirement.strip.split(SEPARATOR).map(&:strip)
112
129
 
113
130
  updated_requirement =
114
- if reqs.any? { |r| r.start_with?("^") }
115
- update_caret_requirement(current_requirement, or_separator)
116
- elsif reqs.any? { |r| r.start_with?("~") }
117
- update_tilda_requirement(current_requirement, or_separator)
118
- elsif reqs.any? { |r| r.include?("*") }
119
- update_wildcard_requirement(current_requirement, or_separator)
131
+ if reqs.count > 1
132
+ "^#{latest_resolvable_version}"
120
133
  elsif reqs.any? { |r| r.match?(/<|(\s+-\s+)/) }
121
134
  update_range_requirement(current_requirement, or_separator)
135
+ elsif reqs.any? { |r| r.match?(/>[^=]/) }
136
+ current_requirement
122
137
  else
123
138
  update_version_string(current_requirement)
124
139
  end
@@ -52,10 +52,20 @@ module Dependabot
52
52
  requirements: dependency.requirements,
53
53
  latest_version: latest_version&.to_s,
54
54
  latest_resolvable_version: latest_resolvable_version&.to_s,
55
- library: library?
55
+ update_strategy: requirements_update_strategy
56
56
  ).updated_requirements
57
57
  end
58
58
 
59
+ def requirements_update_strategy
60
+ # If passed in as an option (in the base class) honour that option
61
+ if @requirements_update_strategy
62
+ return @requirements_update_strategy.to_sym
63
+ end
64
+
65
+ # Otherwise, widen ranges for libraries and bump versions for apps
66
+ library? ? :widen_ranges : :bump_versions_if_necessary
67
+ end
68
+
59
69
  private
60
70
 
61
71
  def latest_version_resolvable_with_full_unlock?
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Dependabot
4
- VERSION = "0.86.17"
4
+ VERSION = "0.86.18"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dependabot-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.86.17
4
+ version: 0.86.18
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dependabot
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-12-27 00:00:00.000000000 Z
11
+ date: 2018-12-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-ecr