You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@datasketches.apache.org by wl...@apache.org on 2022/11/03 17:12:12 UTC
[datasketches-memory] 02/02: Fixing git build
This is an automated email from the ASF dual-hosted git repository.
wlauer pushed a commit to branch refactorInterfaces
in repository https://gitbox.apache.org/repos/asf/datasketches-memory.git
commit a7f129d3aa831f8bf2c7f2391d3d0a97ad85cf09
Author: Will Lauer <wl...@yahooinc.com>
AuthorDate: Thu Nov 3 12:11:04 2022 -0500
Fixing git build
---
.github/workflows/maven.yml | 22 ----
tools/scripts/package-multi-release-jar.sh | 189 ----------------------------
tools/scripts/package-single-release-jar.sh | 146 ---------------------
tools/scripts/test-jar.sh | 96 --------------
4 files changed, 453 deletions(-)
diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml
index 22fc03f..89af810 100644
--- a/.github/workflows/maven.yml
+++ b/.github/workflows/maven.yml
@@ -54,22 +54,6 @@ jobs:
impl: hotspot
targets: 'JAVA11_HOME'
- - name: Install JDK 12
- uses: AdoptOpenJDK/install-jdk@v1
- with:
- version: '12'
- architecture: x64
- impl: hotspot
- targets: 'JAVA12_HOME'
-
- - name: Install JDK 13
- uses: AdoptOpenJDK/install-jdk@v1
- with:
- version: '13'
- architecture: x64
- impl: hotspot
- targets: 'JAVA13_HOME'
-
- name: Install Matrix JDK
uses: AdoptOpenJDK/install-jdk@v1
with:
@@ -103,12 +87,6 @@ jobs:
-Dgpg.skip=true
--toolchains .github/workflows/.toolchains.xml
- # The GitTag for CI purposes is irrelevant
- - name: Custom build script
- run: |
- ./tools/scripts/package-single-release-jar.sh $JAVA_HOME x.y.z .
- shell: bash
-
- name: Test & Report
if: ${{ matrix.jdk == 8 && success() }}
run: >
diff --git a/tools/scripts/package-multi-release-jar.sh b/tools/scripts/package-multi-release-jar.sh
deleted file mode 100755
index 57b423e..0000000
--- a/tools/scripts/package-multi-release-jar.sh
+++ /dev/null
@@ -1,189 +0,0 @@
-#!/bin/bash -e
-
-# 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.
-
-# This is a general bash script to build a datasketches-memory-X.jar
-# with multi-release functionality. The sources, test-sources, tests and
-# javadoc jars are also included in the output.
-# It does use git and also uses the script get-git-properties.sh.
-#
-# NOTE: This script assumes that `mvn package` has been run prior to invocation.
-# By default, it is called from the maven exec-plugin.
-
-# Required Input Parameters:
-# \$1 = absolute path of JDK home directory
-# \$2 = Git Version Tag for this deployment
-# Example tag for SNAPSHOT : 1.0.0-SNAPSHOT
-# Example tag for Release Candidate: 1.0.0-RC1
-# Example tag for Release : 1.0.0
-# \$3 = absolute path of project.basedir
-# For example: $ <this script>.sh $JAVA_HOME 2.1.0 .
-
-if [ -z "$1" ]; then echo "Missing JDK home"; exit 1; fi
-if [ -z "$2" ]; then echo "Missing Git Tag"; exit 1; fi
-if [ -z "$3" ]; then echo "Missing project.basedir"; exit 1; fi
-
-#### Extract JDKHome, Version and ProjectBaseDir from input parameters ####
-JDKHome=$1
-GitTag=$2
-ProjectBaseDir=$3 #this must be an absolute path
-
-#### Setup absolute directory references ####
-ProjectArtifactId="datasketches-memory"
-ScriptsDir=${ProjectBaseDir}/tools/scripts/
-
-#### Initialise path dependent variables ####
-OutputDir=target
-OutputMrJar=${OutputDir}/datasketches-memory-${GitTag}.jar
-OutputTests=${OutputDir}/datasketches-memory-${GitTag}-tests.jar
-OutputJavaDoc=${OutputDir}/datasketches-memory-${GitTag}-javadoc.jar
-OutputSources=${OutputDir}/datasketches-memory-${GitTag}-sources.jar
-OutputTestSources=${OutputDir}/datasketches-memory-${GitTag}-test-sources.jar
-
-ArchiveDir=${OutputDir}/archive-tmp
-PackageSources=${ArchiveDir}/sources
-PackageTestSources=${ArchiveDir}/test-sources
-PackageTests=${ArchiveDir}/tests
-PackageJavaDoc=${ArchiveDir}/javadoc
-PackageMrJar=${ArchiveDir}/jar
-
-#### Move to project directory ####
-cd ${ProjectBaseDir}
-
-#### Use JAVA_HOME to set required executables ####
-if [[ -n "$JDKHome" ]] && [[ -x "${JDKHome}/bin/jar" ]]; then Jar_="${JDKHome}/bin/jar"; else echo "No jar version could be found."; exit 1; fi
-
-MemoryJava8Classes=datasketches-memory-java8/target/classes
-MemoryJava8TestClasses=datasketches-memory-java8/target/test-classes
-MemoryJava8Sources=datasketches-memory-java8/src/main/java
-MemoryJava8TestSources=datasketches-memory-java8/src/test/java
-MemoryJava8Docs=datasketches-memory-java8/target/apidocs/
-MemoryJava11Classes=datasketches-memory-java11/target/classes
-MemoryJava11Sources=datasketches-memory-java11/src/main/java
-MemoryJava8Docs=datasketches-memory-java8/target/apidocs/
-MavenArchiver=target/maven-archiver
-
-if ! [[ -x "${MemoryJava8Classes}" ]]; then echo "No compiled classes - run mvn package first."; exit 1; fi
-if ! [[ -x "${MemoryJava8TestClasses}" ]]; then echo "No compiled test classes - run mvn package first."; exit 1; fi
-if ! [[ -x "${MemoryJava11Classes}" ]]; then echo "No compiled classes - run mvn package first."; exit 1; fi
-if ! [[ -x "${MemoryJava8Docs}" ]]; then echo "No javadocs - run mvn package first."; exit 1; fi
-if ! [[ -x "${MavenArchiver}" ]]; then echo "No maven archiver - run mvn package first."; exit 1; fi
-
-#### Cleanup and setup output directories ####
-echo
-if [ -d "$OutputDir" ]; then rm -f $OutputDir/*.jar; fi
-if [ -d "$ArchiveDir" ]; then rm -r $ArchiveDir; fi
-
-mkdir -p $PackageSources
-mkdir -p $PackageTestSources
-mkdir -p $PackageTests
-mkdir -p $PackageJavaDoc
-mkdir -p $PackageMrJar
-
-#### JAR Metadata function
-prepare_jar () {
- JarBase=$1
- JarMeta=${JarBase}/META-INF
- JarMaven=${JarMeta}/maven/org.apache.datasketches/datasketches-memory
-
- mkdir -p ${JarMeta}/versions/11
- mkdir -p ${JarMaven}
-
- #### Generate DEPENDENCIES ####
- cat >> ${JarMeta}/DEPENDENCIES<< EOF
-// ------------------------------------------------------------------
-// Transitive dependencies of this project determined from the
-// maven pom organized by organization.
-// ------------------------------------------------------------------
-EOF
-
- #### Copy LICENSE and NOTICE ####
- cp LICENSE $JarMeta
- cp NOTICE $JarMeta
-
- #### Copy pom.properties
- cp ${MavenArchiver}/pom.properties $JarMaven
- cp pom.xml $JarMaven
-
-}
-
-#### Generate MANIFEST.MF ####
-cat >> ${ArchiveDir}/MANIFEST.MF<< EOF
-Manifest-Version: 1.0
-Created-By: Apache Datasketches Memory package-mr-jar.sh
-Multi-Release: true
-EOF
-#### Generate git.properties file ####
-echo "$($ScriptsDir/get-git-properties.sh $ProjectBaseDir $ProjectArtifactId $GitTag)" >> ${ArchiveDir}/MANIFEST.MF
-
-###########################
-#### MULTI-RELEASE JAR ####
-###########################
-prepare_jar $PackageMrJar
-#### Copy java 8 compiled classes to target/jar
-rsync -q -a -I --filter="- .*" ${MemoryJava8Classes}/org $PackageMrJar
-#### Copy java 11 compiled classes to target/jar/META-INF/versions/11
-rsync -q -a -I --filter="- .*" ${MemoryJava11Classes}/org ${PackageMrJar}/META-INF/versions/11
-cp ${MemoryJava11Classes}/module-info.class ${PackageMrJar}/META-INF/versions/11
-
-${Jar_} cfm $OutputMrJar ${ArchiveDir}/MANIFEST.MF -C $PackageMrJar .
-echo "Created multi-release jar ${OutputMrJar}"
-
-###########################
-#### TESTS JAR ####
-###########################
-prepare_jar $PackageTests
-#### Copy java 8 compiled test classes to target/jar
-rsync -q -a -I --filter="- .*" ${MemoryJava8TestClasses}/org $PackageTests
-
-${Jar_} cfm $OutputTests ${ArchiveDir}/MANIFEST.MF -C $PackageTests .
-echo "Created tests jar ${OutputTests}"
-
-###########################
-#### SOURCES JAR ####
-###########################
-prepare_jar $PackageSources
-#### Copy java 8 source files to target/sources
-rsync -q -a -I --filter="- .*" ${MemoryJava8Sources}/org $PackageSources
-#### Copy java 11 source files to target/sources/META-INF/versions/11
-rsync -q -a -I --filter="- .*" ${MemoryJava11Sources}/org ${PackageSources}/META-INF/versions/11
-cp ${MemoryJava11Sources}/module-info.java ${PackageSources}/META-INF/versions/11
-
-${Jar_} cfm $OutputSources ${ArchiveDir}/MANIFEST.MF -C $PackageSources .
-echo "Created sources jar ${OutputSources}"
-
-###########################
-#### TEST SOURCES JAR ####
-###########################
-prepare_jar $PackageTestSources
-#### Copy java 8 test source files to target/test-sources
-rsync -q -a -I --filter="- .*" ${MemoryJava8TestSources}/org $PackageTestSources
-
-${Jar_} cfm $OutputTestSources ${ArchiveDir}/MANIFEST.MF -C $PackageTestSources .
-echo "Created test sources jar ${OutputTestSources}"
-
-###########################
-#### JAVADOC JAR ####
-###########################
-prepare_jar $PackageJavaDoc
-
-rsync -q -a -I --filter="- .*" ${MemoryJava8Docs} $PackageJavaDoc
-${Jar_} cfm $OutputJavaDoc ${ArchiveDir}/MANIFEST.MF -C $PackageJavaDoc .
-echo "Created javadoc jar ${OutputJavaDoc}"
-
-echo "$($ScriptsDir/test-jar.sh $JDKHome $GitTag $OutputMrJar $ProjectBaseDir)"
diff --git a/tools/scripts/package-single-release-jar.sh b/tools/scripts/package-single-release-jar.sh
deleted file mode 100755
index e58ff57..0000000
--- a/tools/scripts/package-single-release-jar.sh
+++ /dev/null
@@ -1,146 +0,0 @@
-#!/bin/bash -e
-
-# 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.
-
-# This is a general bash script to build a JDK version-specific
-# datasketches-memory-X.jar without multi-release functionality.
-# This is intended to be used for developers compiling from source
-# who do not wish to install several versions of the JDK on their
-# machine.
-# The script does not assume a POM file and does not use Maven.
-# It does use git and also uses the script get-git-properties.sh and
-# test-jar.sh scripts.
-
-# Required Input Parameters:
-# \$1 = absolute path of JDK home directory
-# \$2 = Git Version Tag for this deployment
-# Example tag for SNAPSHOT : 1.0.0-SNAPSHOT
-# Example tag for Release Candidate: 1.0.0-RC1
-# Example tag for Release : 1.0.0
-# \$3 = absolute path of project.basedir
-# For example: $ <this script>.sh $JAVA_HOME 2.1.0 .
-
-if [ -z "$1" ]; then echo "Missing JDK home"; exit 1; fi
-if [ -z "$2" ]; then echo "Missing Git Tag"; exit 1; fi
-if [ -z "$3" ]; then echo "Missing project.basedir"; exit 1; fi
-
-#### Extract JDKHome, Version and ProjectBaseDir from input parameters ####
-JDKHome=$1
-GitTag=$2
-ProjectBaseDir=$3 #this must be an absolute path
-
-#### Setup absolute directory references ####
-ProjectArtifactId="memory"
-ScriptsDir=${ProjectBaseDir}/tools/scripts/
-MemoryMapFile=$ScriptsDir/assets/LoremIpsum.txt
-
-#### Initialise path dependent variables ####
-OutputDir=target
-OutputJar=${OutputDir}/org.apache.datasketches.memory-${GitTag}.jar
-
-PackageDir=${OutputDir}/archive-tmp
-PackageSrc=${PackageDir}/src
-PackageTests=${PackageDir}/test-classes
-PackageContents=${PackageDir}/contents
-PackageMeta=${PackageContents}/META-INF
-PackageManifest=${PackageMeta}/MANIFEST.MF
-
-MemoryJava8Src=datasketches-memory-java8/src/main/java
-MemoryJava11Src=datasketches-memory-java11/src/main/java
-
-#### Move to project directory ####
-cd ${ProjectBaseDir}
-
-#### Use JAVA_HOME to set required executables ####
-if [[ -n "$JDKHome" ]] && [[ -x "${JDKHome}/bin/java" ]]; then Java_="${JDKHome}/bin/java"; else echo "No java version could be found."; exit 1; fi
-if [[ -n "$JDKHome" ]] && [[ -x "${JDKHome}/bin/javac" ]]; then Javac_="${JDKHome}/bin/javac"; else echo "No javac version could be found."; exit 1; fi
-if [[ -n "$JDKHome" ]] && [[ -x "${JDKHome}/bin/jar" ]]; then Jar_="${JDKHome}/bin/jar"; else echo "No jar version could be found."; exit 1; fi
-
-#### Parse java -version into major version number ####
-if [[ "$Java_" ]]; then
- # This expression extracts the correct major version of the Java runtime.
- # For older runtime versions, such as 1.8, the leading '1.' is removed.
- # Adapted from this answer on StackOverflow:
- # https://stackoverflow.com/questions/7334754/correct-way-to-check-java-version-from-bash-script/56243046#56243046
- JavaVersion=$("$Java_" -version 2>&1 | head -1 | cut -d'"' -f2 | sed '/^1\./s///' | cut -d'.' -f1)
-else
- echo "No version information could be determined from installed JDK."; exit 1;
-fi
-
-# Exit if Java version too low (< 8) or too high (> 13)
-if [[ $JavaVersion -lt 8 || $JavaVersion -gt 13 ]]; then
- echo "Java version not supported: " $JavaVersion; exit 1;
-fi
-
-#### Cleanup and setup output directories ####
-echo
-if [ -d "$OutputDir" ]; then rm -r $OutputDir; fi
-mkdir -p $PackageSrc
-mkdir -p $PackageTests
-mkdir -p $PackageMeta
-
-#### Copy LICENSE and NOTICE ####
-cp LICENSE $PackageMeta
-cp NOTICE $PackageMeta
-
-#### Generate MANIFEST.MF ####
-cat >> ${PackageManifest}<< EOF
-Manifest-Version: 1.0
-Created-By: Apache Datasketches Memory package-single-release-jar.sh
-Multi-Release: false
-EOF
-
-#### Generate git.properties file ####
-echo "$($ScriptsDir/get-git-properties.sh $ProjectBaseDir $ProjectArtifactId $GitTag)" >> $PackageManifest
-
-#### Copy source tree to target/src
-rsync -a -I $MemoryJava8Src $PackageSrc
-
-if [[ $JavaVersion -gt 10 ]]; then
- #### Copy java 11 src trees to target/src, overwriting replacements
- rsync -a -I $MemoryJava11Src $PackageSrc
-fi
-
-#### Compile ####
-echo "--- CLEAN & COMPILE ---"
-echo
-echo "Compiling with JDK version $JavaVersion..."
-if [[ $JavaVersion -lt 9 ]]; then
- ${Javac_} -d $PackageContents $(find $PackageSrc -name '*.java')
-else
- # Compile with JPMS exports
- ${Javac_} \
- --add-exports java.base/jdk.internal.ref=org.apache.datasketches.memory \
- --add-exports java.base/sun.nio.ch=org.apache.datasketches.memory \
- -d $PackageContents $(find $PackageSrc -name '*.java')
-fi
-echo
-echo "--- JARS ---"
-echo
-echo "Building JAR from ${PackageContents}..."
-${Jar_} cfm $OutputJar ${PackageManifest} -C $PackageContents .
-echo
-echo "Successfully built ${OutputJar}"
-
-# Uncomment this section to display JAR contents
-# echo "--- JAR CONTENTS ---"
-# echo
-# ${Jar_} tf ${OutputJar}
-# echo
-
-echo "$($ScriptsDir/test-jar.sh $JDKHome $GitTag $OutputJar $ProjectBaseDir)"
diff --git a/tools/scripts/test-jar.sh b/tools/scripts/test-jar.sh
deleted file mode 100755
index a565073..0000000
--- a/tools/scripts/test-jar.sh
+++ /dev/null
@@ -1,96 +0,0 @@
-#!/bin/bash -e
-
-# 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.
-
-# This is a general bash script to test a datasketches-memory-X.jar.
-# This is intended to be used for C/I matrix testing or for quick
-# verification of the output from the assembly process.
-
-# Required Input Parameters:
-# \$1 = absolute path of JDK home directory
-# \$2 = Git Version Tag for this deployment
-# Example tag for SNAPSHOT : 1.0.0-SNAPSHOT
-# Example tag for Release Candidate: 1.0.0-RC1
-# Example tag for Release : 1.0.0
-# \$3 = absolute path of datasketches-memory-X.jar
-# \$4 = absolute path of project.basedir
-# For example: $ <this script>.sh $JAVA_HOME 2.1.0 target/datasketches-memory-X.jar .
-
-#### Extract JDKHome, Version, TestJar and ProjectBaseDir from input parameters ####
-JDKHome=$1
-GitTag=$2
-TestJar=$3
-ProjectBaseDir=$4
-
-#### Setup absolute directory references ####
-ProjectArtifactId="memory"
-ScriptsDir=${ProjectBaseDir}/tools/scripts/
-MemoryMapFile=$ScriptsDir/assets/LoremIpsum.txt
-
-#### Initialise path dependent variables ####
-PackageChecks=target/archive-tmp/checks
-
-#### Move to project directory ####
-cd ${ProjectBaseDir}
-
-#### Use JAVA_HOME to set required executables ####
-if [[ -n "$JDKHome" ]] && [[ -x "${JDKHome}/bin/java" ]]; then Java_="${JDKHome}/bin/java"; else echo "No java version could be found."; exit 1; fi
-if [[ -n "$JDKHome" ]] && [[ -x "${JDKHome}/bin/javac" ]]; then Javac_="${JDKHome}/bin/javac"; else echo "No javac version could be found."; exit 1; fi
-if [[ -n "$JDKHome" ]] && [[ -x "${JDKHome}/bin/jar" ]]; then Jar_="${JDKHome}/bin/jar"; else echo "No jar version could be found."; exit 1; fi
-
-#### Parse java -version into major version number ####
-if [[ "$Java_" ]]; then
- # This expression extracts the correct major version of the Java runtime.
- # For older runtime versions, such as 1.8, the leading '1.' is removed.
- # Adapted from this answer on StackOverflow:
- # https://stackoverflow.com/questions/7334754/correct-way-to-check-java-version-from-bash-script/56243046#56243046
- JavaVersion=$("$Java_" -version 2>&1 | head -1 | cut -d'"' -f2 | sed '/^1\./s///' | cut -d'.' -f1)
-else
- echo "No version information could be determined from installed JDK."; exit 1;
-fi
-
-# Exit if Java version too low (< 8) or too high (> 13)
-if [[ $JavaVersion -lt 8 || $JavaVersion -gt 13 ]]; then
- echo "Java version not supported: " $JavaVersion; exit 1;
-fi
-
-#### Cleanup and setup output directories ####
-echo
-if [ -d "$PackageChecks" ]; then rm -r $PackageChecks; fi
-mkdir -p $PackageChecks
-
-echo "--- RUN JAR CHECKS ---"
-echo
-if [[ $JavaVersion -eq 8 ]]; then
- ${Javac_} -cp $TestJar -d $PackageChecks $(find ${ScriptsDir/assets} -name '*.java')
- ${Java_} -cp $PackageChecks:$TestJar org.apache.datasketches.memory.tools.scripts.CheckMemoryJar $MemoryMapFile
-else
- ${Javac_} \
- --add-modules org.apache.datasketches.memory \
- -p "$TestJar" -d $PackageChecks $(find ${ScriptsDir/assets} -name '*.java')
-
- ${Java_} \
- --add-modules org.apache.datasketches.memory \
- --add-exports java.base/jdk.internal.misc=org.apache.datasketches.memory \
- --add-exports java.base/jdk.internal.ref=org.apache.datasketches.memory \
- --add-opens java.base/java.nio=org.apache.datasketches.memory \
- --add-opens java.base/sun.nio.ch=org.apache.datasketches.memory \
- -p $TestJar -cp $PackageChecks org.apache.datasketches.memory.tools.scripts.CheckMemoryJar $MemoryMapFile
-fi
-echo
-echo "Successfully checked ${TestJar}"
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@datasketches.apache.org
For additional commands, e-mail: commits-help@datasketches.apache.org