dependabot-core 0.87.5 → 0.87.6

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: 71f676293872268388934f5fbcdcc20e8b9061bdec7346031eeebcb5fcb3d9a8
4
- data.tar.gz: 0e1c56cf730fca2cdce80928d637d35b34e3c1fe5feae211eaf8bd0aaeecb388
3
+ metadata.gz: 7ac6c5bd2bbf26b5dac19a512e8bc4f7713d389d0f29cbc2642d0862141f8c50
4
+ data.tar.gz: 8285dc609f5a040f3747933a024a6272f931528aaba60a2119ca91e3d0e8833d
5
5
  SHA512:
6
- metadata.gz: dc24eb4ee2e13cdb5db0ed246dcf4b65f0272cce77479096418a85e6143b7bedc585dba5686fc511d21b0144d2ebb3ac595b0e3887479e7a23266ef7be820d74
7
- data.tar.gz: b2797b6359638cb3ef846774267b9324fb7364fcc187678e2d5fd1fb398276039cd2516d9692bcd79735f423e8b9e55ffa91105ccb06bba92dec42b04b3a64d4
6
+ metadata.gz: f6c2d5f02ea25d5a4aea0d06471e66d764ae2f70d406e169a219a1174133e21ce806d9f0269e4a0537d18277d78695bc915104696be4938571c0de205fd604d4
7
+ data.tar.gz: 63ec2baaac7661fba5eb0ca7f853d5df2a747794a7e635e2f0e7d22ce999c23062280da5839642d6c0919cc61594f963d4c92659b30e64e00d71053a691426b6
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ## v0.87.6, 4 January 2019
2
+
3
+ - Yarn: de-duplicate indirect dependencies
4
+
1
5
  ## v0.87.5, 4 January 2019
2
6
 
3
7
  - Handle empty versions properly when a build or local version is possible
@@ -835,7 +839,7 @@
835
839
 
836
840
  ## v0.75.16, 6 November 2018
837
841
 
838
- - Python: Bump poetry from 0.12.5 to 0.12.6
842
+ - Python: Bump poetry from 0.12.5 to 0.12.6
839
843
  - JS: Handle version resolution for sub-dependencies when not updating manifest
840
844
  - Add a common interface for provider client (thanks @codisart)
841
845
 
@@ -1015,7 +1019,7 @@
1015
1019
 
1016
1020
  ## v0.74.6, 25 October 2018
1017
1021
 
1018
- - JS: Don't update the attribute for git dependencies in npm6 lockfiles
1022
+ - JS: Don't update the attribute for git dependencies in npm6 lockfiles
1019
1023
  - Rust: Guard against trying to update dependencies with multiple source types
1020
1024
 
1021
1025
  ## v0.74.5, 25 October 2018
@@ -1868,7 +1872,7 @@
1868
1872
  - JS: Bump npm from 6.4.0 to 6.4.1
1869
1873
  - Python: Fetch setup.cfg if present
1870
1874
  - Python: Check whether setup.py is using pbr
1871
- - Python: Handle setup.py files that use a __name__ == '__main__' structure
1875
+ - Python: Handle setup.py files that use a **name** == '**main**' structure
1872
1876
 
1873
1877
  ## v0.69.4, 29 August 2018
1874
1878
 
@@ -2393,7 +2397,7 @@
2393
2397
  ## v0.61.90, 20 July 2018
2394
2398
 
2395
2399
  - JS: Store version as git SHA for git dependencies using Yarn
2396
- - JS: Fall back to when an updated version can't be found
2400
+ - JS: Fall back to when an updated version can't be found
2397
2401
 
2398
2402
  ## v0.61.89, 20 July 2018
2399
2403
 
@@ -3269,7 +3273,7 @@
3269
3273
 
3270
3274
  - BREAKING: Require a type attribute for git source credentials
3271
3275
  - BREAKING: Require a hostname when specifying an api_endpoint for a
3272
- Dependabot::Source
3276
+ Dependabot::Source
3273
3277
  - PHP: Set credentials for all known git sources (means private Bitbucket and
3274
3278
  Gitlab repos are now supported)
3275
3279
  - Rust: Set credentials for all known git sources (means private Bitbucket and
@@ -5326,7 +5330,7 @@
5326
5330
 
5327
5331
  ## v0.38.2, 13 December 2017
5328
5332
 
5329
- - Python: Handle * version strings in UpdateChecker
5333
+ - Python: Handle \* version strings in UpdateChecker
5330
5334
 
5331
5335
  ## v0.38.1, 13 December 2017
5332
5336
 
@@ -6659,20 +6663,19 @@
6659
6663
 
6660
6664
  ## v0.3.2, 09 May 2017
6661
6665
 
6662
- - Don't discard DependencyFile details when updating (#24)
6666
+ - Don't discard DependencyFile details when updating (#24)
6663
6667
 
6664
6668
  ## v0.3.1, 09 May 2017
6665
6669
 
6666
- - Support fetching dependency files from a specified directory (#23)
6667
-
6670
+ - Support fetching dependency files from a specified directory (#23)
6668
6671
 
6669
6672
  ## v0.3.0, 09 May 2017
6670
6673
 
6671
- - BREAKING: Rename Node to JavaScript everywhere (#22)
6674
+ - BREAKING: Rename Node to JavaScript everywhere (#22)
6672
6675
 
6673
6676
  ## v0.2.1, 03 May 2017
6674
6677
 
6675
- - Store the failed git command on GitCommandError (#21)
6678
+ - Store the failed git command on GitCommandError (#21)
6676
6679
 
6677
6680
  ## v0.2.0, 02 May 2017
6678
6681
 
@@ -3,9 +3,22 @@ const stringify = require("@dependabot/yarn-lib/lib/lockfile/stringify")
3
3
  .default;
4
4
  const semver = require("semver");
5
5
 
6
- // Inspired by yarn-tools. Altered to ensure the latest version is always used
6
+ function flattenIndirectDependencies(packages) {
7
+ return (packages || []).reduce((acc, { pkg }) => {
8
+ if ("dependencies" in pkg) {
9
+ return acc.concat(Object.keys(pkg.dependencies));
10
+ }
11
+ return acc;
12
+ }, []);
13
+ }
14
+
15
+ // Inspired by yarn-deduplicate. Altered to ensure the latest version is always used
7
16
  // for version ranges which allow it.
8
- module.exports = (data, includePackages = []) => {
17
+ module.exports = (data, updatedDependencyName) => {
18
+ if (!updatedDependencyName) {
19
+ throw new Error("Yarn fix duplicates: must provide dependency name");
20
+ }
21
+
9
22
  const json = parse(data).object;
10
23
  const enableLockfileVersions = Boolean(data.match(/^# yarn v/m));
11
24
  const noHeader = !Boolean(data.match(/^# THIS IS AN AU/m));
@@ -23,11 +36,23 @@ module.exports = (data, includePackages = []) => {
23
36
  }
24
37
  });
25
38
 
26
- Object.entries(packages)
27
- .filter(([name]) => {
28
- if (includePackages.length === 0) return true;
29
- return includePackages.includes(name);
30
- })
39
+ const packageEntries = Object.entries(packages);
40
+
41
+ const updatedPackageEntry = packageEntries.filter(([name]) => {
42
+ return updatedDependencyName === name;
43
+ });
44
+
45
+ const updatedDependencyPackage =
46
+ updatedPackageEntry[0] && updatedPackageEntry[0][1];
47
+
48
+ const indirectDependencies = flattenIndirectDependencies(
49
+ updatedDependencyPackage
50
+ );
51
+
52
+ const packagesToDedupe = [updatedDependencyName, ...indirectDependencies];
53
+
54
+ packageEntries
55
+ .filter(([name]) => packagesToDedupe.includes(name))
31
56
  .forEach(([name, packages]) => {
32
57
  // Reverse sort, so we'll find the maximum satisfying version first
33
58
  const versions = packages.map(p => p.pkg.version).sort(semver.rcompare);
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Dependabot
4
- VERSION = "0.87.5"
4
+ VERSION = "0.87.6"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dependabot-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.87.5
4
+ version: 0.87.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dependabot