You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by be...@apache.org on 2025/06/16 11:58:57 UTC

(cassandra-analytics) branch trunk updated: CASSANALYTICS-22: Release scripts (#113)

This is an automated email from the ASF dual-hosted git repository.

bernardobotella pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/cassandra-analytics.git


The following commit(s) were added to refs/heads/trunk by this push:
     new bb66e570 CASSANALYTICS-22: Release scripts (#113)
bb66e570 is described below

commit bb66e570d869097001dd3061d36819d31f5ec718
Author: Bernardo Botella <bb...@users.noreply.github.com>
AuthorDate: Mon Jun 16 13:58:53 2025 +0200

    CASSANALYTICS-22: Release scripts (#113)
    
    Patch by Bernardo Botella, reviewed by Francisco Guerrero for CASSANALYTICS-22
---
 analytics-sidecar-vertx-client-shaded/build.gradle |  2 +
 build.gradle                                       | 39 ++++++++++
 cassandra-analytics-cdc-codec/build.gradle         | 16 +---
 cassandra-analytics-cdc-sidecar/build.gradle       | 13 +---
 cassandra-analytics-cdc/build.gradle               | 13 +---
 cassandra-analytics-common/build.gradle            | 16 +---
 cassandra-analytics-core/build.gradle              | 13 +---
 cassandra-analytics-spark-converter/build.gradle   | 13 +---
 cassandra-bridge/build.gradle                      | 13 +---
 gradle.properties                                  |  6 +-
 gradle/common/publishing.gradle                    | 88 ++++++++++++++++++++++
 11 files changed, 144 insertions(+), 88 deletions(-)

diff --git a/analytics-sidecar-vertx-client-shaded/build.gradle b/analytics-sidecar-vertx-client-shaded/build.gradle
index 77262327..3a2fe518 100644
--- a/analytics-sidecar-vertx-client-shaded/build.gradle
+++ b/analytics-sidecar-vertx-client-shaded/build.gradle
@@ -39,6 +39,8 @@ version project.version
 
 sourceCompatibility = 1.8
 
+apply from: "$rootDir/gradle/common/publishing.gradle"
+
 configurations {
     all*.exclude(group: 'ch.qos.logback')
 }
diff --git a/build.gradle b/build.gradle
index b4da87e5..730b4d0d 100644
--- a/build.gradle
+++ b/build.gradle
@@ -27,6 +27,8 @@ plugins {
   id 'java-library'
   id 'com.github.johnrengelman.shadow' version '8.1.1'
 
+  id 'distribution'
+
   // Release Audit Tool (RAT) plugin for checking project licenses
   id("org.nosphere.apache.rat") version "0.8.1"
 }
@@ -254,6 +256,43 @@ subprojects {
   }
 }
 
+distributions {
+  main {
+    distributionBaseName = 'apache-cassandra-analytics'
+    contents {
+      from 'LICENSE.txt'
+      setDuplicatesStrategy(DuplicatesStrategy.INCLUDE)
+    }
+  }
+  // Packages the sources as a tarball for distribution
+  sources {
+    distributionBaseName = 'apache-cassandra-analytics'
+    distributionClassifier = 'src'
+    contents {
+      from '.'
+      include '**/*.*'
+      exclude '**.gradle/**'
+      exclude '**.idea/**'
+      exclude 'bin/**'
+      exclude 'dependencies/**'
+      exclude '**lib/**'
+      exclude '**logs/**'
+      exclude '**/build/**'
+      exclude '**/out/**'
+      exclude '**/target/**'
+    }
+  }
+}
+
+tasks.named('distTar').configure {
+  compression = Compression.GZIP
+  archiveExtension = "tar.gz"
+}
+
+tasks.named('sourcesDistTar').configure {
+  compression = Compression.GZIP
+  archiveExtension = "tar.gz"
+}
 
 ext {
   // A common method to handle loading gradle properties with a default when
diff --git a/cassandra-analytics-cdc-codec/build.gradle b/cassandra-analytics-cdc-codec/build.gradle
index 63944d0b..7fc395df 100644
--- a/cassandra-analytics-cdc-codec/build.gradle
+++ b/cassandra-analytics-cdc-codec/build.gradle
@@ -24,21 +24,7 @@ plugins {
     id('maven-publish')
 }
 
-java {
-    withJavadocJar()
-    withSourcesJar()
-}
-
-publishing {
-    publications {
-        maven(MavenPublication) {
-            from components.java
-            groupId project.group
-            artifactId "${archivesBaseName}"
-            version System.getenv("CODE_VERSION") ?: "${version}"
-        }
-    }
-}
+apply from: "$rootDir/gradle/common/publishing.gradle"
 
 dependencies {
     api(project(':cassandra-bridge'))
diff --git a/cassandra-analytics-cdc-sidecar/build.gradle b/cassandra-analytics-cdc-sidecar/build.gradle
index 69bef0d9..dfe51c29 100644
--- a/cassandra-analytics-cdc-sidecar/build.gradle
+++ b/cassandra-analytics-cdc-sidecar/build.gradle
@@ -24,6 +24,8 @@ plugins {
     id('maven-publish')
 }
 
+apply from: "$rootDir/gradle/common/publishing.gradle"
+
 configurations {
     all*.exclude(group: 'org.slf4j', module: 'slf4j-log4j12')
     all*.exclude(group: 'log4j', module: 'log4j')
@@ -34,17 +36,6 @@ java {
     withSourcesJar()
 }
 
-publishing {
-    publications {
-        maven(MavenPublication) {
-            from components.java
-            groupId project.group
-            artifactId "${archivesBaseName}"
-            version System.getenv("CODE_VERSION") ?: "${version}"
-        }
-    }
-}
-
 configurations {
     fourzero {
         description = 'Cassandra 4.0 dependency'
diff --git a/cassandra-analytics-cdc/build.gradle b/cassandra-analytics-cdc/build.gradle
index 8bd9f3db..2ca875dc 100644
--- a/cassandra-analytics-cdc/build.gradle
+++ b/cassandra-analytics-cdc/build.gradle
@@ -24,22 +24,13 @@ plugins {
     id('maven-publish')
 }
 
+apply from: "$rootDir/gradle/common/publishing.gradle"
+
 configurations {
     all*.exclude(group: 'org.slf4j', module: 'slf4j-log4j12')
     all*.exclude(group: 'log4j', module: 'log4j')
 }
 
-publishing {
-    publications {
-        maven(MavenPublication) {
-            from components.java
-            groupId project.group
-            artifactId "${archivesBaseName}"
-            version System.getenv("CODE_VERSION") ?: "${version}"
-        }
-    }
-}
-
 configurations {
     fourzero {
         description = 'Cassandra 4.0 dependency'
diff --git a/cassandra-analytics-common/build.gradle b/cassandra-analytics-common/build.gradle
index f350e3c5..13320396 100644
--- a/cassandra-analytics-common/build.gradle
+++ b/cassandra-analytics-common/build.gradle
@@ -24,21 +24,7 @@ plugins {
     id('maven-publish')
 }
 
-java {
-    withJavadocJar()
-    withSourcesJar()
-}
-
-publishing {
-    publications {
-        maven(MavenPublication) {
-            from components.java
-            groupId project.group
-            artifactId "${archivesBaseName}"
-            version System.getenv("CODE_VERSION") ?: "${version}"
-        }
-    }
-}
+apply from: "$rootDir/gradle/common/publishing.gradle"
 
 dependencies {
     implementation("org.slf4j:slf4j-api:${slf4jApiVersion}")
diff --git a/cassandra-analytics-core/build.gradle b/cassandra-analytics-core/build.gradle
index 74edb9b2..fb1724db 100644
--- a/cassandra-analytics-core/build.gradle
+++ b/cassandra-analytics-core/build.gradle
@@ -25,6 +25,8 @@ plugins {
     id('maven-publish')
 }
 
+apply from: "$rootDir/gradle/common/publishing.gradle"
+
 java {
     withJavadocJar()
     withSourcesJar()
@@ -35,17 +37,6 @@ java {
     }
 }
 
-publishing {
-    publications {
-        maven(MavenPublication) {
-            from components.java
-            groupId project.group
-            artifactId "${archivesBaseName}"
-            version System.getenv("CODE_VERSION") ?: "${version}"
-        }
-    }
-}
-
 configurations {
     fourzero {
         description = 'Cassandra 4.0 dependency'
diff --git a/cassandra-analytics-spark-converter/build.gradle b/cassandra-analytics-spark-converter/build.gradle
index cf4ca383..73c2290f 100644
--- a/cassandra-analytics-spark-converter/build.gradle
+++ b/cassandra-analytics-spark-converter/build.gradle
@@ -22,22 +22,13 @@ plugins {
     id('maven-publish')
 }
 
+apply from: "$rootDir/gradle/common/publishing.gradle"
+
 configurations {
     all*.exclude(group: 'org.slf4j', module: 'slf4j-log4j12')
     all*.exclude(group: 'log4j', module: 'log4j')
 }
 
-publishing {
-    publications {
-        maven(MavenPublication) {
-            from components.java
-            groupId project.group
-            artifactId "${archivesBaseName}"
-            version System.getenv("CODE_VERSION") ?: "${version}"
-        }
-    }
-}
-
 dependencies {
     compileOnly project(":cassandra-analytics-common")
     compileOnly(group: "${sparkGroupId}", name: "spark-core_${scalaMajorVersion}", version: "${project.rootProject.sparkVersion}")
diff --git a/cassandra-bridge/build.gradle b/cassandra-bridge/build.gradle
index f1acf7e2..7b3895f9 100644
--- a/cassandra-bridge/build.gradle
+++ b/cassandra-bridge/build.gradle
@@ -26,22 +26,13 @@ plugins {
     id 'maven-publish'
 }
 
+apply from: "$rootDir/gradle/common/publishing.gradle"
+
 java {
     withJavadocJar()
     withSourcesJar()
 }
 
-publishing {
-    publications {
-        maven(MavenPublication) {
-            from components.java
-            groupId project.group
-            artifactId "${archivesBaseName}"
-            version System.getenv("CODE_VERSION") ?: "${version}"
-        }
-    }
-}
-
 dependencies {
     api(project(':cassandra-analytics-common'))
 
diff --git a/gradle.properties b/gradle.properties
index 749e6e15..6e57b9ec 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -15,10 +15,10 @@
 # specific language governing permissions and limitations
 # under the License.
 
-group=org.apache.cassandra.spark
-version=1.0.0
+group=org.apache.cassandra
+version=0.1.0
 snapshot=true
-description=Apache Cassandra Spark Analytics
+description=Apache Cassandra Analytics
 
 analyticsJDKLevel=11
 cassandra40Version=4.0.17
diff --git a/gradle/common/publishing.gradle b/gradle/common/publishing.gradle
new file mode 100644
index 00000000..b37ddcbd
--- /dev/null
+++ b/gradle/common/publishing.gradle
@@ -0,0 +1,88 @@
+/*
+ * 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.
+ */
+
+apply plugin: 'maven-publish'
+apply plugin: 'signing'
+
+ext {
+    mavenRepositoryUrl = propertyWithDefault("maven.repository.url", "")
+    // These properties can be set in ~/.gradle/gradle.properties file,
+    // though it would be open text. They can also be set on the cli via
+    // -Pmaven.username and -Pmaven.password
+    mavenUsername = propertyWithDefault("maven.username", "")
+    mavenPassword = propertyWithDefault("maven.password", "")
+}
+
+java {
+    withJavadocJar()
+    withSourcesJar()
+}
+
+publishing {
+    publications {
+        maven(MavenPublication) {
+            from components.java
+            groupId rootProject.group
+            artifactId "${archivesBaseName}"
+            version System.getenv("CODE_VERSION") ?: "${project.version}"
+
+            if (mavenRepositoryUrl != "") {
+                pom {
+                    url = "https://cassandra.apache.org/"
+                    licenses {
+                        license {
+                            name = "The Apache License, Version 2.0"
+                            url = "https://www.apache.org/licenses/LICENSE-2.0.txt"
+                            distribution = "repo"
+                        }
+                    }
+                }
+            }
+        }
+    }
+
+    if (mavenRepositoryUrl != "") {
+        repositories {
+            maven {
+                url = mavenRepositoryUrl
+                if (mavenUsername != "" && mavenPassword != "") {
+                    credentials {
+                        username = mavenUsername
+                        password = mavenPassword
+                    }
+                }
+            }
+        }
+    }
+}
+
+signing {
+    required { shouldSign }
+    if (shouldSign) {
+        // Use gpg-agent to sign
+        useGpgCmd()
+    }
+
+    sign publishing.publications
+}
+
+javadoc {
+    if (JavaVersion.current().isJava9Compatible()) {
+        options.addBooleanOption('html5', true)
+    }
+}


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org