This is an automated email from the ASF dual-hosted git repository.
mdedetrich pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-pekko-grpc.git
The following commit(s) were added to refs/heads/main by this push:
new 3f094f71 Add sbt-license-report
3f094f71 is described below
commit 3f094f71c5ff572196854c1113a4267cea8ec615
Author: Matthew de Detrich <[email protected]>
AuthorDate: Tue Aug 8 17:06:32 2023 +0200
Add sbt-license-report
---
build.sbt | 9 +++++++-
docs/src/main/paradox/index.md | 1 +
project/LicenseReport.scala | 48 ++++++++++++++++++++++++++++++++++++++++++
project/plugins.sbt | 1 +
scripts/link-validator.conf | 39 +++++++++++++++++++++++++++++++++-
5 files changed, 96 insertions(+), 2 deletions(-)
diff --git a/build.sbt b/build.sbt
index 5ef584f6..68226a56 100644
--- a/build.sbt
+++ b/build.sbt
@@ -229,7 +229,14 @@ lazy val docs = Project(id = "docs", base = file("docs"))
"scaladoc.org.apache.pekko.grpc.base_url" -> s"/${(Preprocess /
siteSubdirName).value}/",
"javadoc.org.apache.pekko.grpc.base_url" -> "" // @apidoc links to
Scaladoc
),
- apidocRootPackage := "org.apache.pekko")
+ apidocRootPackage := "org.apache.pekko",
+ Compile / paradoxMarkdownToHtml / sourceGenerators += Def.taskDyn {
+ val targetFile = (Compile / paradox / sourceManaged).value /
"license-report.md"
+
+ (LocalRootProject / dumpLicenseReportAggregate).map { dir =>
+ IO.copy(List(dir / "pekko-grpc-root-licenses.md" -> targetFile)).toList
+ }
+ }.taskValue)
.settings(
crossScalaVersions := Dependencies.Versions.CrossScalaForLib,
scalaVersion := Dependencies.Versions.CrossScalaForLib.head)
diff --git a/docs/src/main/paradox/index.md b/docs/src/main/paradox/index.md
index 2210e0a7..a92e93e4 100644
--- a/docs/src/main/paradox/index.md
+++ b/docs/src/main/paradox/index.md
@@ -16,5 +16,6 @@
* [Deployment](deploy.md)
* [Troubleshooting](troubleshooting.md)
* [Release Notes](release-notes/index.md)
+ * [License Report](license-report.md)
@@@
diff --git a/project/LicenseReport.scala b/project/LicenseReport.scala
new file mode 100644
index 00000000..16d213f5
--- /dev/null
+++ b/project/LicenseReport.scala
@@ -0,0 +1,48 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import sbt._
+import sbtlicensereport.SbtLicenseReport
+import sbtlicensereport.SbtLicenseReport.autoImportImpl._
+import sbtlicensereport.license.{ DepModuleInfo, LicenseInfo, MarkDown }
+
+object LicenseReport extends AutoPlugin {
+
+ override lazy val projectSettings = Seq(
+ licenseReportTypes := Seq(MarkDown),
+ licenseReportMakeHeader := (language => language.header1("License
Report")),
+ licenseConfigurations := Set("compile", "test", "provided"),
+ licenseDepExclusions := {
+ case DepModuleInfo("org.apache.pekko", _, _) => true // Inter pekko
project dependencies are pointless
+ case DepModuleInfo(_, "scala-library", _) => true // Scala library is
part of Scala language
+ case DepModuleInfo(_, "scala-reflect", _) => true // Scala reflect is
part of Scala language
+ },
+ licenseOverrides := {
+ case dep: DepModuleInfo if dep.organization.startsWith("javax") =>
LicenseInfo.CDDL_GPL
+ },
+ licenseReportColumns := Seq(
+ Column.Category,
+ Column.License,
+ Column.Dependency,
+ Column.OriginatingArtifactName,
+ Column.Configuration))
+
+ override def requires = plugins.JvmPlugin && SbtLicenseReport
+
+ override def trigger = allRequirements
+
+}
diff --git a/project/plugins.sbt b/project/plugins.sbt
index 0ad45c00..2c049f31 100644
--- a/project/plugins.sbt
+++ b/project/plugins.sbt
@@ -27,6 +27,7 @@ addSbtPlugin("pl.project13.scala" % "sbt-jmh" % "0.4.3")
addSbtPlugin("com.dwijnand" % "sbt-dynver" % "4.1.1")
addSbtPlugin("org.mdedetrich" % "sbt-apache-sonatype" % "0.1.10")
addSbtPlugin("com.github.pjfanning" % "sbt-source-dist" % "0.1.10")
+addSbtPlugin("com.github.sbt" % "sbt-license-report" % "1.6.1")
// allow access to snapshots for pekko-sbt-paradox
resolvers += Resolver.ApacheMavenSnapshotsRepo
diff --git a/scripts/link-validator.conf b/scripts/link-validator.conf
index f3cb659a..52d2a97d 100644
--- a/scripts/link-validator.conf
+++ b/scripts/link-validator.conf
@@ -24,7 +24,44 @@ site-link-validator {
"https://mvnrepository.com/artifact/"
# we haven't yet set up the gradle plugin on plugins.gradle.org
"https://plugins.gradle.org/plugin/org.apache.pekko.grpc.gradle"
+ # Github links generated by sbt-license-report
+ "http://pholser.github.com/jopt-simple"
+ "https://github.com/googleapis/java-iam/proto-google-common-protos"
+ "https://github.com/netty/netty-tcnative/netty-tcnative-boringssl-static"
+ # Other links generated by sbt-license-report
+ "http://lmax-exchange.github.com/disruptor"
+ # Occasionally returns a 500 Internal Server Error
+ "http://code.google.com/"
]
- non-https-whitelist = []
+ non-https-whitelist = [
+ # license report
+ "http://aopalliance.sourceforge.net",
+ "http://asm.ow2.io/",
+ "http://code.google.com/p/",
+ "http://commons.apache.org/proper/",
+ "http://findbugs.sourceforge.net/",
+ "http://fusesource.github.io/jansi",
+ "http://hc.apache.org/",
+ "http://hdrhistogram.github.io/HdrHistogram/",
+ "http://jcp.org/en/jsr/detail?id=250",
+ "http://junit.org",
+ "http://lmax-exchange.github.com/disruptor",
+ "http://openjdk.java.net/legal/gplv2+ce.html",
+ "http://opensource.org/licenses/",
+ "http://www.opensource.org/licenses/",
+ "http://parboiled.org",
+ "http://pholser.github.com/jopt-simple",
+ "http://source.android.com/",
+ "http://www.apache.org/licenses",
+ "http://www.eclipse.org/legal/",
+ "http://www.gnu.org/licenses/",
+ "http://www.jcraft.com/jsch/",
+ "http://www.reactive-streams.org/",
+ "http://www.scala-lang.org/",
+ "http://www.scala-sbt.org",
+ "http://www.scalatest.org",
+ "http://www.slf4j.org",
+ "http://creativecommons.org/"
+ ]
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]