Skip to content

Commit 97a63ac

Browse files
committed
Upgrade to Gradle 7.6.2
1 parent 9711e2f commit 97a63ac

File tree

67 files changed

+605
-261
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

67 files changed

+605
-261
lines changed

build.gradle

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
plugins {
22
id 'java-library'
3-
id 'com.github.hierynomus.license' version '0.15.0' apply false
4-
id 'com.github.johnrengelman.shadow' version '4.0.3' apply false
3+
id 'com.github.hierynomus.license' version '0.16.2-37dde1f' apply false
4+
id 'com.github.johnrengelman.shadow' version '7.1.2' apply false
55
id 'com.github.alisiikh.scalastyle' version '3.5.0' apply false
6-
id 'me.champeau.gradle.jmh' version '0.4.8' apply false
6+
id 'me.champeau.jmh' version '0.7.3' apply false
77
id "ch.kk7.spawn" version "1.0.20180924200750" apply false
88
}
99

build.licenses.gradle

Lines changed: 83 additions & 107 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// All licenses that we accept, and their aliases
2-
def whitelist = [
2+
def allowList = [
33
[name: 'BSD-2-Clause', url: 'http://opensource.org/licenses/BSD-2-Clause', aliases: [
44
[name: 'BSD-style', url:'http://www.opensource.org/licenses/bsd-license.php'],
55
]],
@@ -48,120 +48,96 @@ def whitelist = [
4848
]]
4949
]
5050

51-
52-
subprojects {
53-
apply plugin: 'base'
54-
apply plugin: "com.github.hierynomus.license"
55-
56-
// License header checking and insertion
57-
license {
58-
header = rootProject.file("etc/licenses/headers/NOTICE-header.txt")
59-
// what comment style to use
60-
mapping {
61-
scala = 'SLASHSTAR_STYLE'
51+
// Adapted from https://github.com/neo4j/graph-data-science/blob/2.13/gradle/licensing.gradle
52+
subprojects { proj ->
53+
plugins.withType(JavaLibraryPlugin) {
54+
proj.apply plugin: 'com.github.hierynomus.license'
55+
// License header checking and insertion
56+
license {
57+
header = rootProject.file("etc/licenses/headers/NOTICE-header.txt")
58+
// what comment style to use
59+
mapping {
60+
java = 'SLASHSTAR_STYLE'
61+
}
62+
// /issues/145
63+
// exclude 'test/resources/**'
64+
// exclude 'main/resources/**'
65+
include '**/*.java'
66+
include '**/*.scala'
6267
}
63-
// https://github.com/hierynomus/license-gradle-plugin/issues/145
64-
// exclude 'test/resources/**'
65-
// exclude 'main/resources/**'
66-
include '**/*.scala'
67-
include '**/*.java'
68-
}
69-
70-
tasks.check.dependsOn tasks.license
71-
72-
// Dependency license reporting
73-
downloadLicenses {
74-
75-
dependencyConfiguration = 'compile'
76-
77-
aliases = whitelist.collectEntries { lic ->
78-
def actual = license(lic.name, lic.url)
79-
def alternatives = lic.aliases.collect { it.url ? license(it.name, it.url) : it.name }
80-
[(actual): alternatives]
68+
tasks.check.dependsOn tasks.license
69+
70+
// Dependency license reporting
71+
downloadLicenses {
72+
dependencyConfiguration = 'runtimeClasspath'
73+
aliases = allowList.collectEntries { lic ->
74+
def actual = license(lic.name, lic.url)
75+
def alternatives = lic.aliases.collect { it.url ? license(it.name, it.url) : it.name }
76+
[(actual): alternatives]
77+
}
8178
}
82-
}
83-
84-
tasks.downloadLicenses.outputs.upToDateWhen { false }
85-
86-
tasks.downloadLicenses.ext.licencesJson = { ->
87-
def jsonDir = tasks.downloadLicenses.jsonDestination
88-
def jsonFile = file("$jsonDir/license-dependency.json")
89-
new groovy.json.JsonSlurper().parseText(jsonFile.text)
90-
}
91-
92-
// Dependency license validation
93-
task validateLicenses {
94-
group 'license'
95-
description 'Checks dependency licenses against a whitelist'
96-
dependsOn tasks.downloadLicenses
9779

98-
doLast {
99-
File errFile = file("$tasks.downloadLicenses.jsonDestination/license-errors.txt")
100-
errFile.text = ""
101-
102-
tasks.downloadLicenses.licencesJson().licences
103-
.findAll { lic -> !whitelist.any { lic.name == it.name } }
104-
.sort { lic -> lic.name }
105-
.each { lic -> logger.error("The license '$lic.name' is not in the license whitelist. Details: ${lic.toMapString()}") }
106-
.each { lic -> errFile << '\n' << lic.toMapString() }
107-
.each { lic -> throw new GradleException("The license '$lic.name' is not in the license whitelist") }
80+
tasks.downloadLicenses.ext.licenseToDependencyJson = { ->
81+
def jsonDir = tasks.downloadLicenses.jsonDestination
82+
def jsonFile = file("$jsonDir/license-dependency.json")
83+
new groovy.json.JsonSlurper().parseText(jsonFile.text)
10884
}
109-
}
110-
111-
tasks.check.dependsOn tasks.validateLicenses
112-
113-
// Compound dependency licenses files
114-
task generateLicensesFiles {
115-
description 'Generates dependency license report files'
116-
dependsOn tasks.downloadLicenses
11785

118-
ext.licensesFile = file("$tasks.downloadLicenses.jsonDestination/LICENSES.txt")
119-
ext.noticeFile = file("$tasks.downloadLicenses.jsonDestination/NOTICE.txt")
120-
121-
outputs.file(ext.licensesFile)
122-
outputs.file(ext.noticeFile)
123-
124-
doLast {
125-
licensesFile.createNewFile()
126-
licensesFile.text = rootProject.file("etc/licenses/headers/LICENSES-header.txt").text
86+
tasks.downloadLicenses.ext.dependencyToLicenseJson = { ->
87+
def jsonDir = tasks.downloadLicenses.jsonDestination
88+
def jsonFile = file("$jsonDir/dependency-license.json")
89+
new groovy.json.JsonSlurper().parseText(jsonFile.text)
90+
}
12791

128-
tasks.downloadLicenses.licencesJson().licences.sort { it.name }.each {
129-
licensesFile << '\n\n'
130-
licensesFile << "------------------------------------------------------------------------------\n"
131-
licensesFile << "$it.name\n"
132-
it.dependencies.sort { it }.each { licensesFile << " $it\n" }
133-
licensesFile << "------------------------------------------------------------------------------\n"
134-
licensesFile << '\n'
135-
licensesFile << rootProject.file("etc/licenses/text/$it.name").text
92+
// Dependency license validation
93+
tasks.register("validateLicenses") {
94+
group 'license'
95+
description 'Checks dependency licenses against an allowlist'
96+
dependsOn tasks.downloadLicenses
97+
doLast {
98+
def allowListedNames = allowList.collect { it.name }
99+
tasks.downloadLicenses.dependencyToLicenseJson().dependencies
100+
.findAll { dep -> allowListedNames.intersect(dep.licenses.collect { it.name }).isEmpty() }
101+
.each { dep -> logger.error("In project ${proj.name}: Could not find an allowed license for dependency '$dep.name'. Details: ${dep.toMapString()}") }
102+
.each { dep -> throw new GradleException("The dependency '$dep.name' has no allowed license") }
136103
}
137-
138-
noticeFile.createNewFile()
139-
noticeFile.text = rootProject.file("etc/licenses/headers/NOTICE-header.txt").text
140-
noticeFile << '\n\n'
141-
noticeFile << "Third-party licenses\n"
142-
noticeFile << "--------------------\n"
143-
144-
tasks.downloadLicenses.licencesJson().licences.sort { it.name }.each {
145-
noticeFile << '\n'
146-
noticeFile << "$it.name\n"
147-
it.dependencies.sort { it }.each { noticeFile << " $it\n" }
104+
}
105+
tasks.check.dependsOn tasks.validateLicenses
106+
107+
// Compound dependency licenses files
108+
tasks.register("generateLicensesFiles") {
109+
description 'Generates dependency license report files'
110+
dependsOn tasks.downloadLicenses, tasks.validateLicenses
111+
ext.licensesFile = file("$tasks.downloadLicenses.jsonDestination/LICENSES.txt")
112+
ext.noticeFile = file("$tasks.downloadLicenses.jsonDestination/NOTICE.txt")
113+
outputs.file(ext.licensesFile)
114+
outputs.file(ext.noticeFile)
115+
doLast {
116+
licensesFile.createNewFile()
117+
licensesFile.text = rootProject.file("etc/licenses/headers/LICENSES-header.txt").text
118+
tasks.downloadLicenses.licenseToDependencyJson().licences
119+
.findAll { lic -> allowList.any { lic.name == it.name } }
120+
.sort { it.name }.each {
121+
licensesFile << '\n\n'
122+
licensesFile << "------------------------------------------------------------------------------\n"
123+
licensesFile << "$it.name\n"
124+
it.dependencies.sort { it }.each { licensesFile << " $it\n" }
125+
licensesFile << "------------------------------------------------------------------------------\n"
126+
licensesFile << '\n'
127+
licensesFile << rootProject.file("etc/licenses/text/$it.name").text
128+
}
129+
noticeFile.createNewFile()
130+
noticeFile.text = rootProject.file("etc/licenses/headers/NOTICE-header.txt").text
131+
noticeFile << '\n\n'
132+
noticeFile << "Third-party licenses\n"
133+
noticeFile << "--------------------\n"
134+
tasks.downloadLicenses.licenseToDependencyJson().licences.sort { it.name }.each {
135+
noticeFile << '\n'
136+
noticeFile << "$it.name\n"
137+
it.dependencies.sort { it }.each { noticeFile << " $it\n" }
138+
}
148139
}
149140
}
141+
tasks.check.dependsOn tasks.generateLicensesFiles
150142
}
151-
152-
tasks.check.dependsOn tasks.generateLicensesFiles
153-
}
154-
155-
// Disable dependency license validation on test and documentation projects
156-
['okapi-tck',
157-
'okapi-testing',
158-
'okapi-neo4j-io-testing',
159-
'morpheus-examples',
160-
'morpheus-tck',
161-
'morpheus-testing',
162-
'morpheus-jmh',
163-
'documentation',
164-
].each {
165-
project(it).tasks.validateLicenses.enabled = false
166-
project(it).tasks.generateLicensesFiles.enabled = false
167143
}

dependencies/README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
# Local-hosted dependencies
2+
3+
This directory is a host for dependencies, local to the source code.
4+
Stolen from https://github.com/neo4j/graph-data-science/tree/2.13/dependencies.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
3+
<modelVersion>4.0.0</modelVersion>
4+
<groupId>com.github.hierynomus.license-base</groupId>
5+
<artifactId>com.github.hierynomus.license-base.gradle.plugin</artifactId>
6+
<version>0.16.2-37dde1f</version>
7+
<packaging>pom</packaging>
8+
<dependencies>
9+
<dependency>
10+
<groupId>com.hierynomus.gradle.plugins</groupId>
11+
<artifactId>license-gradle-plugin</artifactId>
12+
<version>0.16.2-37dde1f</version>
13+
</dependency>
14+
</dependencies>
15+
</project>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
d4ac4b5c7429ee2acc0155d0d2e29c81
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
11b5ef0db3fe1b3c4d22590242cab12654d3f2a8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
a01495772d42cf6fcbaab47e313b360f892d306d1671274ddf060b8f825737aa
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
e42e00d23b3456d81c690e9dc509ec2bd937a3db91f07a53b24522ab066e07f50ab19eb0ac49886cccdb1a7005eb5fadd15941d221ab1b926a8754ef1b92af42
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<metadata>
3+
<groupId>com.github.hierynomus.license-base</groupId>
4+
<artifactId>com.github.hierynomus.license-base.gradle.plugin</artifactId>
5+
<versioning>
6+
<latest>0.16.2-37dde1f</latest>
7+
<release>0.16.2-37dde1f</release>
8+
<versions>
9+
<version>0.16.2-37dde1f</version>
10+
</versions>
11+
<lastUpdated>20220128142712</lastUpdated>
12+
</versioning>
13+
</metadata>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
c7429d6b094ad372861120ecfa76d88f

0 commit comments

Comments
 (0)