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]

Reply via email to