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