license_finder 2.1.0.rc3 → 2.1.0.rc4

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
  SHA1:
3
- metadata.gz: 554dcf10a176408392e1f259852f218803beff8f
4
- data.tar.gz: 53c9a69a3779906d601903a6286d23237e156784
3
+ metadata.gz: 9cd300688bc79a2fdf74dc641f4794b361664cae
4
+ data.tar.gz: fbe19583d0baf7db5eb5da488b994d354ea8832a
5
5
  SHA512:
6
- metadata.gz: 116aacdfab302a9ff712635bfc24068cea34a291d3b0c0308c8c2a6d4517eb95fd81d367a45157b7256829bcf851dd21fbfe697c1a554797e49677cf41e9f6d0
7
- data.tar.gz: 169660177ad51b1a710c48f0264161eb6337d333655c50614bee3c27db2d4f58ad8bcb8d8bcc6f74b69be40fb910fa925753019670e5b2fd7f0dac20c8e6b607
6
+ metadata.gz: 8e82b7264e9be9d0e7f91ee9698ddfe2d297be5cee68e55bc7bc0358906fd31f58b371c99301375ba1e1cb3f8f76edd7322a0dd707990c23e1484719e465fc6c
7
+ data.tar.gz: 3ca7f365d490054f252ef823238ca42a7bdd1f5315ec2d678580cd5e10cc3df4c1c0d7081f2e86d3691558cc63e1465ca4f4af1cc6ffdd49958c1e261587c5b5
data/.gitignore CHANGED
@@ -1,7 +1,9 @@
1
- pkg/*
2
- Gemfile.lock
3
- .rvmrc
4
- .idea/*
1
+ .bundle
5
2
  .gradle/
6
- tmp/
3
+ .idea/*
7
4
  .pairs
5
+ .rvmrc
6
+ Gemfile.lock
7
+ pkg/*
8
+ tmp/
9
+ *~
data/.travis.yml CHANGED
@@ -3,15 +3,11 @@ rvm:
3
3
  - 2.0
4
4
  - 2.1
5
5
  - 2.2
6
- - 2.3
6
+ - 2.3.0
7
7
  - jruby-19mode
8
8
  - jruby-1.7.23
9
9
  - jruby-9.0.4.0
10
10
 
11
- matrix:
12
- allow_failures:
13
- - rvm: 1.9.3
14
-
15
11
  env:
16
12
  - PATH=$PATH:$HOME/gradle/bin:$HOME/rebar:$HOME/go/bin GOPATH=$HOME/go
17
13
 
@@ -24,6 +20,7 @@ notifications:
24
20
  on_start: true
25
21
 
26
22
  before_install:
23
+ - gem update bundler
27
24
  - .travis/install_gradle.sh
28
25
  - .travis/install_rebar.sh
29
26
  - .travis/install_bower.sh
data/CHANGELOG.rdoc CHANGED
@@ -1,3 +1,9 @@
1
+ === 2.1.0.rc4 / 2016-01-27
2
+
3
+ * Features
4
+ * Add support for including maven/gradle GroupIds with `--gradle-include-groups`
5
+
6
+
1
7
  === 2.1.0.rc3 / 2016-01-22
2
8
 
3
9
  * Features
@@ -0,0 +1,11 @@
1
+ require_relative '../../support/feature_helper'
2
+
3
+ describe 'Composite project' do
4
+ let(:developer) { LicenseFinder::TestingDSL::User.new }
5
+
6
+ specify 'shows dependencies for all active projects' do
7
+ LicenseFinder::TestingDSL::BareGradleProject.create
8
+ developer.execute_command('license_finder report --gradle_include_groups')
9
+ expect(developer).to be_seeing('junit:junit, 4.11, "Common Public License Version 1.0"')
10
+ end
11
+ end
@@ -0,0 +1,26 @@
1
+ apply plugin: 'java'
2
+
3
+ sourceCompatibility = 1.5
4
+ version = '1.0'
5
+
6
+ repositories {
7
+ mavenCentral()
8
+ }
9
+
10
+ dependencies {
11
+ compile group: 'junit', name: 'junit', version: '4.11'
12
+ }
13
+
14
+ buildscript {
15
+ repositories {
16
+ maven {
17
+ url 'https://plugins.gradle.org/m2/'
18
+ }
19
+ }
20
+
21
+ dependencies {
22
+ classpath 'gradle.plugin.nl.javadude.gradle.plugins:license-gradle-plugin:0.12.1'
23
+ }
24
+ }
25
+
26
+ apply plugin: 'license'
@@ -145,6 +145,12 @@ module LicenseFinder
145
145
  end
146
146
  end
147
147
 
148
+ class BareGradleProject < Project
149
+ def add_dep
150
+ install_fixture('build.gradle')
151
+ end
152
+ end
153
+
148
154
  class GradleProject < Project
149
155
  def add_dep
150
156
  clone('single-module-gradle')
@@ -30,6 +30,7 @@ module LicenseFinder
30
30
  :decisions_file,
31
31
  :go_full_version,
32
32
  :gradle_command,
33
+ :gradle_include_groups,
33
34
  :rebar_command,
34
35
  :rebar_deps_dir,
35
36
  :save
@@ -21,6 +21,7 @@ module LicenseFinder
21
21
  class_option :columns, type: :array, desc: "For CSV reports, which columns to print. Pick from: #{CsvReport::AVAILABLE_COLUMNS}", default: %w[name version licenses]
22
22
  class_option :save, desc: "Save report to a file. Default: 'license_report.csv' in project root.", lazy_default: "license_report"
23
23
  class_option :go_full_version, desc: "Whether dependency version should include full version. Only meaningful if used with a Go project. Defaults to false."
24
+ class_option :gradle_include_groups, desc: "Whether dependency name should include group id. Only meaningful if used with a Java/gradle project. Defaults to false."
24
25
  class_option :gradle_command, desc: "Command to use when fetching gradle packages. Only meaningful if used with a Java/gradle project. Defaults to 'gradlew' / 'gradlew.bat' if the wrapper is present, otherwise to 'gradle'."
25
26
  class_option :rebar_command, desc: "Command to use when fetching rebar packages. Only meaningful if used with a Erlang/rebar project. Defaults to 'rebar'."
26
27
  class_option :rebar_deps_dir, desc: "Path to rebar dependencies directory. Only meaningful if used with a Erlang/rebar project. Defaults to 'deps'."
@@ -39,6 +39,10 @@ module LicenseFinder
39
39
  get(:go_full_version)
40
40
  end
41
41
 
42
+ def gradle_include_groups
43
+ get(:gradle_include_groups)
44
+ end
45
+
42
46
  def rebar_command
43
47
  get(:rebar_command) || 'rebar'
44
48
  end
@@ -66,6 +66,7 @@ module LicenseFinder
66
66
  ignore_groups: decisions.ignored_groups,
67
67
  go_full_version: config.go_full_version,
68
68
  gradle_command: config.gradle_command,
69
+ gradle_include_groups: config.gradle_include_groups,
69
70
  rebar_command: config.rebar_command,
70
71
  rebar_deps_dir: config.rebar_deps_dir,
71
72
  )
@@ -6,6 +6,7 @@ module LicenseFinder
6
6
  def initialize(options={})
7
7
  super
8
8
  @command = options[:gradle_command] || 'gradle'
9
+ @include_groups = options[:gradle_include_groups]
9
10
  end
10
11
 
11
12
  def current_packages
@@ -18,7 +19,7 @@ module LicenseFinder
18
19
  options = {'GroupTags' => {'dependencies' => 'dependency'}}
19
20
  contents = XmlSimple.xml_in(xml_file, options).fetch('dependency', [])
20
21
  contents.map do |dep|
21
- GradlePackage.new(dep, logger: logger)
22
+ GradlePackage.new(dep, logger: logger, include_groups: @include_groups)
22
23
  end
23
24
  end
24
25
 
@@ -2,11 +2,14 @@ module LicenseFinder
2
2
  class GradlePackage < Package
3
3
  def initialize(spec, options={})
4
4
  name = spec["name"]
5
- if name.scan(":").size == 2
6
- _, name, version = name.split(":")
5
+ if name.scan(":").size >= 1
6
+ group, name, version = name.split(":")
7
7
  else
8
8
  version = "unknown"
9
9
  end
10
+
11
+ name = options[:include_groups] ? "#{group}:#{name}" : name
12
+
10
13
  licenses = Array(spec["license"])
11
14
  .map { |l| l["name"] }
12
15
  .reject { |name| name == "No license found" }
@@ -1,3 +1,3 @@
1
1
  module LicenseFinder
2
- VERSION = "2.1.0.rc3"
2
+ VERSION = "2.1.0.rc4"
3
3
  end
@@ -25,7 +25,7 @@ Gem::Specification.new do |s|
25
25
  "Mike Dalessio"
26
26
  ]
27
27
 
28
- s.email = ["commoncode@pivotalabs.com"]
28
+ s.email = ["labs-commoncode@pivotal.io"]
29
29
  s.homepage = "https://github.com/pivotal/LicenseFinder"
30
30
  s.summary = "Audit the OSS licenses of your application's dependencies."
31
31
 
@@ -43,14 +43,14 @@ Gem::Specification.new do |s|
43
43
  s.add_dependency "httparty"
44
44
  s.add_dependency "xml-simple"
45
45
 
46
- s.add_development_dependency "rake"
47
- s.add_development_dependency "rspec-its"
48
- s.add_development_dependency "fakefs"
46
+ s.add_development_dependency "capybara", "~> 2.0.0"
47
+ s.add_development_dependency "cocoapods", "0.34.0" if LicenseFinder::Platform.darwin?
48
+ s.add_development_dependency "fakefs", "~> 0.6.7"
49
49
  s.add_development_dependency "pry"
50
+ s.add_development_dependency "rake"
50
51
  s.add_development_dependency "rspec", "~> 3"
51
- s.add_development_dependency "capybara", "~> 2.0.0"
52
+ s.add_development_dependency "rspec-its"
52
53
  s.add_development_dependency "webmock", "~> 1.13"
53
- s.add_development_dependency "cocoapods", "0.34.0" if LicenseFinder::Platform.darwin?
54
54
 
55
55
  # temporary to preserve ruby 1.9.3 support.
56
56
  s.add_development_dependency "mime-types", "< 3.0"
@@ -29,6 +29,7 @@ module LicenseFinder
29
29
  ignore_groups: Set.new,
30
30
  go_full_version: nil,
31
31
  gradle_command: configuration.gradle_command,
32
+ gradle_include_groups: nil,
32
33
  rebar_command: configuration.rebar_command,
33
34
  rebar_deps_dir: configuration.rebar_deps_dir
34
35
  }
@@ -40,6 +40,14 @@ module LicenseFinder
40
40
  end
41
41
  end
42
42
 
43
+ context 'when include_groups is set to true' do
44
+ subject { described_class.new({"name" => "a:b:c"}, include_groups: true) }
45
+
46
+ it 'includes the group id in the name' do
47
+ expect(subject.name).to eq("a:b")
48
+ end
49
+ end
50
+
43
51
  context "when there are no real licenses" do
44
52
  subject do
45
53
  described_class.new(
@@ -2,8 +2,10 @@ require 'spec_helper'
2
2
 
3
3
  module LicenseFinder
4
4
  describe Gradle do
5
- subject { Gradle.new(project_path: Pathname('/fake/path')) }
6
-
5
+ let(:options) { {} }
6
+
7
+ subject { Gradle.new(options.merge(project_path: Pathname('/fake/path'))) }
8
+
7
9
  let(:content) { [] }
8
10
 
9
11
  it_behaves_like 'a PackageManager'
@@ -42,6 +44,14 @@ module LicenseFinder
42
44
  it 'lists all dependencies' do
43
45
  expect(subject.current_packages.map(&:name)).to eq ['spring-aop', 'spring-core']
44
46
  end
47
+
48
+ context 'when gradle group ids option is enabled' do
49
+ let(:options) { { gradle_include_groups: true } }
50
+
51
+ it 'lists the dependencies with the group id' do
52
+ expect(subject.current_packages.map(&:name)).to eq ['org.springframework:spring-aop', 'org.springframework:spring-core']
53
+ end
54
+ end
45
55
  end
46
56
 
47
57
  context 'when multiple licenses exist' do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: license_finder
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.0.rc3
4
+ version: 2.1.0.rc4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jacob Maine
@@ -20,7 +20,7 @@ authors:
20
20
  autorequire:
21
21
  bindir: bin
22
22
  cert_chain: []
23
- date: 2016-01-22 00:00:00.000000000 Z
23
+ date: 2016-01-27 00:00:00.000000000 Z
24
24
  dependencies:
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: bundler
@@ -79,35 +79,35 @@ dependencies:
79
79
  - !ruby/object:Gem::Version
80
80
  version: '0'
81
81
  - !ruby/object:Gem::Dependency
82
- name: rake
82
+ name: capybara
83
83
  requirement: !ruby/object:Gem::Requirement
84
84
  requirements:
85
- - - ">="
85
+ - - "~>"
86
86
  - !ruby/object:Gem::Version
87
- version: '0'
87
+ version: 2.0.0
88
88
  type: :development
89
89
  prerelease: false
90
90
  version_requirements: !ruby/object:Gem::Requirement
91
91
  requirements:
92
- - - ">="
92
+ - - "~>"
93
93
  - !ruby/object:Gem::Version
94
- version: '0'
94
+ version: 2.0.0
95
95
  - !ruby/object:Gem::Dependency
96
- name: rspec-its
96
+ name: fakefs
97
97
  requirement: !ruby/object:Gem::Requirement
98
98
  requirements:
99
- - - ">="
99
+ - - "~>"
100
100
  - !ruby/object:Gem::Version
101
- version: '0'
101
+ version: 0.6.7
102
102
  type: :development
103
103
  prerelease: false
104
104
  version_requirements: !ruby/object:Gem::Requirement
105
105
  requirements:
106
- - - ">="
106
+ - - "~>"
107
107
  - !ruby/object:Gem::Version
108
- version: '0'
108
+ version: 0.6.7
109
109
  - !ruby/object:Gem::Dependency
110
- name: fakefs
110
+ name: pry
111
111
  requirement: !ruby/object:Gem::Requirement
112
112
  requirements:
113
113
  - - ">="
@@ -121,7 +121,7 @@ dependencies:
121
121
  - !ruby/object:Gem::Version
122
122
  version: '0'
123
123
  - !ruby/object:Gem::Dependency
124
- name: pry
124
+ name: rake
125
125
  requirement: !ruby/object:Gem::Requirement
126
126
  requirements:
127
127
  - - ">="
@@ -149,19 +149,19 @@ dependencies:
149
149
  - !ruby/object:Gem::Version
150
150
  version: '3'
151
151
  - !ruby/object:Gem::Dependency
152
- name: capybara
152
+ name: rspec-its
153
153
  requirement: !ruby/object:Gem::Requirement
154
154
  requirements:
155
- - - "~>"
155
+ - - ">="
156
156
  - !ruby/object:Gem::Version
157
- version: 2.0.0
157
+ version: '0'
158
158
  type: :development
159
159
  prerelease: false
160
160
  version_requirements: !ruby/object:Gem::Requirement
161
161
  requirements:
162
- - - "~>"
162
+ - - ">="
163
163
  - !ruby/object:Gem::Version
164
- version: 2.0.0
164
+ version: '0'
165
165
  - !ruby/object:Gem::Dependency
166
166
  name: webmock
167
167
  requirement: !ruby/object:Gem::Requirement
@@ -196,7 +196,7 @@ description: |2
196
196
  those licenses against a user-defined whitelist, and give you an
197
197
  actionable exception report.
198
198
  email:
199
- - commoncode@pivotalabs.com
199
+ - labs-commoncode@pivotal.io
200
200
  executables:
201
201
  - license_finder
202
202
  - license_finder_pip.py
@@ -243,8 +243,10 @@ files:
243
243
  - features/features/report/csv_spec.rb
244
244
  - features/features/report/diff_spec.rb
245
245
  - features/features/report/html_spec.rb
246
+ - features/features/report/java_groups_spec.rb
246
247
  - features/features/report/subproject_spec.rb
247
248
  - features/fixtures/Podfile
249
+ - features/fixtures/build.gradle
248
250
  - features/fixtures/file-based-libs-gradle/build.gradle
249
251
  - features/fixtures/file-based-libs-gradle/libs/data.json-0.2.3.jar
250
252
  - features/fixtures/gopath/src/github.com/pivotal/foo/Godeps/Godeps.json