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.git
The following commit(s) were added to refs/heads/main by this push:
new 751ac2f2e3 Use sbt-apache-sonatype for Apache Nexus repo settings
751ac2f2e3 is described below
commit 751ac2f2e365dc0e01da6c8a95deb6486683f37e
Author: Matthew de Detrich <[email protected]>
AuthorDate: Sun Feb 12 14:14:49 2023 +0100
Use sbt-apache-sonatype for Apache Nexus repo settings
---
build.sbt | 35 +++-----------------------
project/AddMetaInfLicenseFiles.scala | 42 +++++++++++++++++++++++++++++++
project/MetaInfLicenseNoticeCopy.scala | 45 ----------------------------------
project/Publish.scala | 23 +++--------------
project/plugins.sbt | 1 +
5 files changed, 51 insertions(+), 95 deletions(-)
diff --git a/build.sbt b/build.sbt
index 125974dece..7816596ee5 100644
--- a/build.sbt
+++ b/build.sbt
@@ -4,6 +4,8 @@ ThisBuild / scalafixScalaBinaryVersion :=
scalaBinaryVersion.value
scalaVersion := Dependencies.allScalaVersions.head
+ThisBuild / apacheSonatypeProjectProfile := "pekko"
+
enablePlugins(
UnidocRoot,
UnidocWithPrValidation,
@@ -116,14 +118,12 @@ lazy val actor = pekkoModule("actor")
(Compile / scalaSource).value.getParentFile / s"scala-$ver"
})
.settings(VersionGenerator.settings)
- .settings(MetaInfLicenseNoticeCopy.settings)
.settings(serialversionRemoverPluginSettings)
.enablePlugins(BoilerplatePlugin)
lazy val actorTests = pekkoModule("actor-tests")
.dependsOn(testkit % "compile->compile;test->test", actor)
.settings(Dependencies.actorTests)
- .settings(MetaInfLicenseNoticeCopy.settings)
.enablePlugins(NoPublish)
.disablePlugins(MimaPlugin)
@@ -150,7 +150,6 @@ lazy val cluster = pekkoModule("cluster")
jackson % "test->test")
.settings(Dependencies.cluster)
.settings(AutomaticModuleName.settings("pekko.cluster"))
- .settings(MetaInfLicenseNoticeCopy.settings)
.settings(OSGi.cluster)
.settings(Protobuf.settings)
.settings(Test / parallelExecution := false)
@@ -165,7 +164,6 @@ lazy val clusterMetrics = pekkoModule("cluster-metrics")
.settings(OSGi.clusterMetrics)
.settings(Dependencies.clusterMetrics)
.settings(AutomaticModuleName.settings("pekko.cluster.metrics"))
- .settings(MetaInfLicenseNoticeCopy.settings)
.settings(Protobuf.settings)
.settings(SigarLoader.sigarSettings)
.settings(Test / parallelExecution := false)
@@ -185,7 +183,6 @@ lazy val clusterSharding = pekkoModule("cluster-sharding")
jackson % "test->test")
.settings(Dependencies.clusterSharding)
.settings(AutomaticModuleName.settings("pekko.cluster.sharding"))
- .settings(MetaInfLicenseNoticeCopy.settings)
.settings(OSGi.clusterSharding)
.settings(Protobuf.settings)
.configs(MultiJvm)
@@ -199,7 +196,6 @@ lazy val clusterTools = pekkoModule("cluster-tools")
jackson % "test->test")
.settings(Dependencies.clusterTools)
.settings(AutomaticModuleName.settings("pekko.cluster.tools"))
- .settings(MetaInfLicenseNoticeCopy.settings)
.settings(OSGi.clusterTools)
.settings(Protobuf.settings)
.configs(MultiJvm)
@@ -209,7 +205,6 @@ lazy val distributedData = pekkoModule("distributed-data")
.dependsOn(cluster % "compile->compile;test->test;multi-jvm->multi-jvm",
jackson % "test->test")
.settings(Dependencies.distributedData)
.settings(AutomaticModuleName.settings("pekko.cluster.ddata"))
- .settings(MetaInfLicenseNoticeCopy.settings)
.settings(OSGi.distributedData)
.settings(Protobuf.settings)
.configs(MultiJvm)
@@ -269,7 +264,6 @@ lazy val jackson = pekkoModule("serialization-jackson")
testkit % "test->test")
.settings(Dependencies.jackson)
.settings(AutomaticModuleName.settings("pekko.serialization.jackson"))
- .settings(MetaInfLicenseNoticeCopy.settings)
.settings(OSGi.jackson)
.settings(javacOptions += "-parameters")
.enablePlugins(ScaladocNoVerificationOfDiagrams)
@@ -279,14 +273,12 @@ lazy val multiNodeTestkit =
pekkoModule("multi-node-testkit")
.settings(Dependencies.multiNodeTestkit)
.settings(Protobuf.settings)
.settings(AutomaticModuleName.settings("pekko.remote.testkit"))
- .settings(MetaInfLicenseNoticeCopy.settings)
.settings(PekkoBuild.mayChangeSettings)
lazy val osgi = pekkoModule("osgi")
.dependsOn(actor)
.settings(Dependencies.osgi)
.settings(AutomaticModuleName.settings("pekko.osgi"))
- .settings(MetaInfLicenseNoticeCopy.settings)
.settings(OSGi.osgi)
.settings(Test / parallelExecution := false, crossScalaVersions -=
Dependencies.scala3Version)
@@ -294,7 +286,6 @@ lazy val persistence = pekkoModule("persistence")
.dependsOn(actor, stream, testkit % "test->test")
.settings(Dependencies.persistence)
.settings(AutomaticModuleName.settings("pekko.persistence"))
- .settings(MetaInfLicenseNoticeCopy.settings)
.settings(OSGi.persistence)
.settings(Protobuf.settings)
.settings(Test / fork := true)
@@ -308,7 +299,6 @@ lazy val persistenceQuery = pekkoModule("persistence-query")
streamTestkit % "test")
.settings(Dependencies.persistenceQuery)
.settings(AutomaticModuleName.settings("pekko.persistence.query"))
- .settings(MetaInfLicenseNoticeCopy.settings)
.settings(OSGi.persistenceQuery)
.settings(Protobuf.settings)
// To be able to import ContainerFormats.proto
@@ -320,7 +310,6 @@ lazy val persistenceShared =
pekkoModule("persistence-shared")
.dependsOn(persistence % "test->test", testkit % "test->test", remote %
"test")
.settings(Dependencies.persistenceShared)
.settings(AutomaticModuleName.settings("pekko.persistence.shared"))
- .settings(MetaInfLicenseNoticeCopy.settings)
.settings(Test / fork := true)
.enablePlugins(NoPublish)
.disablePlugins(MimaPlugin)
@@ -329,7 +318,6 @@ lazy val persistenceTck = pekkoModule("persistence-tck")
.dependsOn(persistence % "compile->compile;test->test", testkit %
"compile->compile;test->test")
.settings(Dependencies.persistenceTck)
.settings(AutomaticModuleName.settings("pekko.persistence.tck"))
- .settings(MetaInfLicenseNoticeCopy.settings)
// .settings(OSGi.persistenceTck) TODO: we do need to export this as OSGi
bundle too?
.settings(Test / fork := true)
.disablePlugins(MimaPlugin)
@@ -342,7 +330,6 @@ lazy val persistenceTestkit =
pekkoModule("persistence-testkit")
persistenceTck % "test")
.settings(Dependencies.persistenceTestKit)
.settings(AutomaticModuleName.settings("pekko.persistence.testkit"))
- .settings(MetaInfLicenseNoticeCopy.settings)
.disablePlugins(MimaPlugin)
lazy val persistenceTypedTests = pekkoModule("persistence-typed-tests")
@@ -361,7 +348,7 @@ lazy val persistenceTypedTests =
pekkoModule("persistence-typed-tests")
lazy val protobuf = pekkoModule("protobuf")
.settings(OSGi.protobuf)
.settings(AutomaticModuleName.settings("pekko.protobuf"))
- .settings(MetaInfLicenseNoticeCopy.protobufSettings)
+ .settings(AddMetaInfLicenseFiles.protobufSettings)
.enablePlugins(ScaladocNoVerificationOfDiagrams)
.disablePlugins(MimaPlugin)
.settings(autoScalaLibrary := false) // Pure java project
@@ -369,7 +356,7 @@ lazy val protobuf = pekkoModule("protobuf")
lazy val protobufV3 = pekkoModule("protobuf-v3")
.settings(OSGi.protobufV3)
.settings(AutomaticModuleName.settings("pekko.protobuf.v3"))
- .settings(MetaInfLicenseNoticeCopy.protobufSettings)
+ .settings(AddMetaInfLicenseFiles.protobufSettings)
.enablePlugins(ScaladocNoVerificationOfDiagrams)
.disablePlugins(MimaPlugin)
.settings(
@@ -400,7 +387,6 @@ lazy val pki =
.dependsOn(actor) // this dependency only exists for "@ApiMayChange"
.settings(Dependencies.pki)
.settings(AutomaticModuleName.settings("pekko.pki"))
- .settings(MetaInfLicenseNoticeCopy.settings)
.disablePlugins(MimaPlugin)
lazy val remote =
@@ -416,7 +402,6 @@ lazy val remote =
jackson % "test->test")
.settings(Dependencies.remote)
.settings(AutomaticModuleName.settings("pekko.remote"))
- .settings(MetaInfLicenseNoticeCopy.settings)
.settings(OSGi.remote)
.settings(Protobuf.settings)
.settings(Test / parallelExecution := false)
@@ -441,14 +426,12 @@ lazy val slf4j = pekkoModule("slf4j")
.dependsOn(actor, testkit % "test->test")
.settings(Dependencies.slf4j)
.settings(AutomaticModuleName.settings("pekko.slf4j"))
- .settings(MetaInfLicenseNoticeCopy.settings)
.settings(OSGi.slf4j)
lazy val stream = pekkoModule("stream")
.dependsOn(actor, protobufV3)
.settings(Dependencies.stream)
.settings(AutomaticModuleName.settings("pekko.stream"))
- .settings(MetaInfLicenseNoticeCopy.settings)
.settings(OSGi.stream)
.settings(Protobuf.settings)
.enablePlugins(BoilerplatePlugin, Jdk9)
@@ -457,7 +440,6 @@ lazy val streamTestkit = pekkoModule("stream-testkit")
.dependsOn(stream, testkit % "compile->compile;test->test")
.settings(Dependencies.streamTestkit)
.settings(AutomaticModuleName.settings("pekko.stream.testkit"))
- .settings(MetaInfLicenseNoticeCopy.settings)
.settings(OSGi.streamTestkit)
lazy val streamTests = pekkoModule("stream-tests")
@@ -483,14 +465,12 @@ lazy val testkit = pekkoModule("testkit")
.dependsOn(actor)
.settings(Dependencies.testkit)
.settings(AutomaticModuleName.settings("pekko.actor.testkit"))
- .settings(MetaInfLicenseNoticeCopy.settings)
.settings(OSGi.testkit)
.settings(initialCommands += "import org.apache.pekko.testkit._")
lazy val actorTyped = pekkoModule("actor-typed")
.dependsOn(actor, slf4j)
.settings(AutomaticModuleName.settings("pekko.actor.typed"))
- .settings(MetaInfLicenseNoticeCopy.settings)
.settings(Dependencies.actorTyped)
.settings(OSGi.actorTyped)
.settings(initialCommands :=
@@ -523,7 +503,6 @@ lazy val persistenceTyped = pekkoModule("persistence-typed")
.settings(javacOptions += "-parameters") // for Jackson
.settings(Dependencies.persistenceShared)
.settings(AutomaticModuleName.settings("pekko.persistence.typed"))
- .settings(MetaInfLicenseNoticeCopy.settings)
.settings(Protobuf.settings)
// To be able to import ContainerFormats.proto
.settings(Protobuf.importPath := Some(baseDirectory.value / ".." / "remote"
/ "src" / "main" / "protobuf"))
@@ -543,7 +522,6 @@ lazy val clusterTyped = pekkoModule("cluster-typed")
// To be able to import ContainerFormats.proto
.settings(Protobuf.importPath := Some(baseDirectory.value / ".." / "remote"
/ "src" / "main" / "protobuf"))
.settings(AutomaticModuleName.settings("pekko.cluster.typed"))
- .settings(MetaInfLicenseNoticeCopy.settings)
.settings(Protobuf.settings)
// To be able to import ContainerFormats.proto
.settings(Protobuf.importPath := Some(baseDirectory.value / ".." / "remote"
/ "src" / "main" / "protobuf"))
@@ -565,7 +543,6 @@ lazy val clusterShardingTyped =
pekkoModule("cluster-sharding-typed")
jackson % "test->test")
.settings(javacOptions += "-parameters") // for Jackson
.settings(AutomaticModuleName.settings("pekko.cluster.sharding.typed"))
- .settings(MetaInfLicenseNoticeCopy.settings)
// To be able to import ContainerFormats.proto
.settings(Protobuf.settings)
.settings(Protobuf.importPath := Some(baseDirectory.value / ".." / "remote"
/ "src" / "main" / "protobuf"))
@@ -580,13 +557,11 @@ lazy val streamTyped = pekkoModule("stream-typed")
actorTestkitTyped % "test->test",
actorTypedTests % "test->test")
.settings(AutomaticModuleName.settings("pekko.stream.typed"))
- .settings(MetaInfLicenseNoticeCopy.settings)
.enablePlugins(ScaladocNoVerificationOfDiagrams)
lazy val actorTestkitTyped = pekkoModule("actor-testkit-typed")
.dependsOn(actorTyped, slf4j, testkit % "compile->compile;test->test")
.settings(AutomaticModuleName.settings("pekko.actor.testkit.typed"))
- .settings(MetaInfLicenseNoticeCopy.settings)
.settings(Dependencies.actorTestkitTyped)
lazy val actorTypedTests = pekkoModule("actor-typed-tests")
@@ -599,14 +574,12 @@ lazy val discovery = pekkoModule("discovery")
.dependsOn(actor, testkit % "test->test", actorTests % "test->test")
.settings(Dependencies.discovery)
.settings(AutomaticModuleName.settings("pekko.discovery"))
- .settings(MetaInfLicenseNoticeCopy.settings)
.settings(OSGi.discovery)
lazy val coordination = pekkoModule("coordination")
.dependsOn(actor, testkit % "test->test", actorTests % "test->test")
.settings(Dependencies.coordination)
.settings(AutomaticModuleName.settings("pekko.coordination"))
- .settings(MetaInfLicenseNoticeCopy.settings)
.settings(OSGi.coordination)
lazy val billOfMaterials = Project("bill-of-materials",
file("bill-of-materials"))
diff --git a/project/AddMetaInfLicenseFiles.scala
b/project/AddMetaInfLicenseFiles.scala
new file mode 100644
index 0000000000..8f05678b54
--- /dev/null
+++ b/project/AddMetaInfLicenseFiles.scala
@@ -0,0 +1,42 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * license agreements; and to You under the Apache License, version 2.0:
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * This file is part of the Apache Pekko project, which was derived from Akka.
+ */
+
+import sbt.Keys._
+import sbt._
+import org.mdedetrich.apache.sonatype.SonatypeApachePlugin
+import org.mdedetrich.apache.sonatype.SonatypeApachePlugin.autoImport._
+
+/**
+ * Copies LICENSE and NOTICE files into jar META-INF dir
+ */
+object AddMetaInfLicenseFiles extends AutoPlugin {
+
+ private lazy val baseDir = LocalRootProject / baseDirectory
+
+ override lazy val projectSettings = Seq(
+ apacheSonatypeLicenseFile := baseDir.value / "legal" /
"StandardLicense.txt",
+ apacheSonatypeDisclaimerFile := Some(baseDir.value / "DISCLAIMER"))
+
+ /**
+ * Settings specific for Pekko protobuf subprojects which require a
different license file
+ * as well as an additional "COPYING.protobuf" file.
+ */
+ lazy val protobufSettings = Seq(
+ apacheSonatypeLicenseFile := baseDir.value / "LICENSE") ++
inConfig(Compile)(Seq(
+ resourceGenerators += {
+ Def.task {
+ List(
+ SonatypeApachePlugin.addFileToMetaInf(resourceManaged.value,
baseDir.value / "COPYING.protobuf"))
+ }
+ }))
+
+ override def trigger = allRequirements
+
+ override def requires = SonatypeApachePlugin
+}
diff --git a/project/MetaInfLicenseNoticeCopy.scala
b/project/MetaInfLicenseNoticeCopy.scala
deleted file mode 100644
index 6e37533375..0000000000
--- a/project/MetaInfLicenseNoticeCopy.scala
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * license agreements; and to You under the Apache License, version 2.0:
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * This file is part of the Apache Pekko project, which was derived from Akka.
- */
-
-import sbt.Keys._
-import sbt._
-
-/**
- * Copies LICENSE and NOTICE files into jar META-INF dir
- */
-object MetaInfLicenseNoticeCopy {
-
- private val baseDir = LocalRootProject / baseDirectory
- private val standardLicenseFile = Def.task[File](baseDir.value / "legal" /
"StandardLicense.txt")
- private val protobufApacheLicenseFile = Def.task[File](baseDir.value /
"LICENSE")
- private val protobufGoogleLicenseFile = Def.task[File](baseDir.value /
"COPYING.protobuf")
- private val noticeFile = Def.task[File](baseDir.value / "NOTICE")
- private val disclaimerFile = Def.task[File](baseDir.value / "DISCLAIMER")
-
- val settings: Seq[Setting[_]] = inConfig(Compile)(
- Seq(
- resourceGenerators += copyFileToMetaInf(resourceManaged,
standardLicenseFile, "LICENSE"),
- resourceGenerators += copyFileToMetaInf(resourceManaged, noticeFile,
"NOTICE"),
- resourceGenerators += copyFileToMetaInf(resourceManaged, disclaimerFile,
"DISCLAIMER")))
-
- val protobufSettings: Seq[Setting[_]] = inConfig(Compile)(
- Seq(
- resourceGenerators += copyFileToMetaInf(resourceManaged,
protobufApacheLicenseFile, "LICENSE"),
- resourceGenerators += copyFileToMetaInf(resourceManaged,
protobufGoogleLicenseFile, "COPYING.protobuf"),
- resourceGenerators += copyFileToMetaInf(resourceManaged, noticeFile,
"NOTICE"),
- resourceGenerators += copyFileToMetaInf(resourceManaged, disclaimerFile,
"DISCLAIMER")))
-
- private def copyFileToMetaInf(dir: SettingKey[File], fromFile:
Def.Initialize[Task[File]],
- fileName: String) = Def.task[Seq[File]] {
- val toFile = resourceManaged.value / "META-INF" / fileName
- IO.copyFile(fromFile.value, toFile)
- Seq(toFile)
- }
-
-}
diff --git a/project/Publish.scala b/project/Publish.scala
index 8c6029b8d6..5edea1d3d8 100644
--- a/project/Publish.scala
+++ b/project/Publish.scala
@@ -16,38 +16,23 @@ package org.apache.pekko
import sbt._
import sbt.Keys._
import
com.lightbend.sbt.publishrsync.PublishRsyncPlugin.autoImport.publishRsyncHost
-import xerial.sbt.Sonatype.autoImport._
+import org.mdedetrich.apache.sonatype.SonatypeApachePlugin
object Publish extends AutoPlugin {
override def trigger = allRequirements
- private val apacheBaseRepo = "repository.apache.org"
-
override lazy val projectSettings = Seq(
publishRsyncHost := "[email protected]",
- credentials ++= apacheNexusCredentials,
- organizationName := "Apache Software Foundation",
- organizationHomepage := Some(url("https://www.apache.org")),
- sonatypeCredentialHost := apacheBaseRepo,
- sonatypeProfileName := "org.apache.pekko",
startYear := Some(2022),
developers := List(
Developer(
"pekko-contributors",
"Apache Pekko Contributors",
"[email protected]",
- url("https://github.com/apache/incubator-pekko/graphs/contributors"))),
- publishMavenStyle := true,
- pomIncludeRepository := (_ => false))
-
- private def apacheNexusCredentials: Seq[Credentials] =
- (sys.env.get("NEXUS_USER"), sys.env.get("NEXUS_PW")) match {
- case (Some(user), Some(password)) =>
- Seq(Credentials("Sonatype Nexus Repository Manager", apacheBaseRepo,
user, password))
- case _ =>
- Seq.empty
- }
+ url("https://github.com/apache/incubator-pekko/graphs/contributors"))))
+
+ override def requires = SonatypeApachePlugin
}
/**
diff --git a/project/plugins.sbt b/project/plugins.sbt
index eeef79a0af..fd43610df5 100644
--- a/project/plugins.sbt
+++ b/project/plugins.sbt
@@ -23,6 +23,7 @@ addSbtPlugin("net.bzzt" % "sbt-reproducible-builds" % "0.30")
addSbtPlugin("com.github.sbt" % "sbt-ci-release" % "1.5.10")
addSbtPlugin("com.lightbend.sbt" % "sbt-publish-rsync" % "0.2")
addSbtPlugin("com.github.pjfanning" % "sbt-source-dist" % "0.1.2")
+addSbtPlugin("org.mdedetrich" % "sbt-apache-sonatype" % "0.1.0")
addSbtPlugin("com.github.reibitto" % "sbt-welcome" % "0.2.2")
// allow access to snapshots for pekko-sbt-paradox
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]