diff --git a/.github/workflows/auto-check_cpp_files.yml b/.github/workflows/auto-check_cpp_files.yml index 068b12f4d..f80403e53 100644 --- a/.github/workflows/auto-check_cpp_files.yml +++ b/.github/workflows/auto-check_cpp_files.yml @@ -1,8 +1,9 @@ -name: Serialization Compatibility Test +name: Auto C++ Serialization Compatibility Test on: + pull_request: push: - branches: [ master, main ] + branches: [ 7.0.X ] workflow_dispatch: jobs: diff --git a/.github/workflows/auto-jdk-matrix.yml b/.github/workflows/auto-jdk-matrix.yml index f8220bbe2..873ce59f6 100644 --- a/.github/workflows/auto-jdk-matrix.yml +++ b/.github/workflows/auto-jdk-matrix.yml @@ -1,67 +1,67 @@ -name: DataSketches-Java Auto JDK Matrix Test & Install +name: Auto JDK Matrix Test, Install on: - pull_request: - push: - branches: [ master, main ] - workflow_dispatch: + pull_request: + push: + branches: [ 7.0.X ] + workflow_dispatch: env: - MAVEN_OPTS: -Xmx4g -Xms1g + MAVEN_OPTS: -Xmx4g -Xms1g jobs: - build: - name: Build, Test, Install - runs-on: ubuntu-latest + build: + name: Build, Test, Install + runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - jdk: [ 17 ] + strategy: + fail-fast: false + matrix: + jdk: [ 17 ] - env: - JDK_VERSION: ${{ matrix.jdk }} + env: + JDK_VERSION: ${{ matrix.jdk }} - steps: - - name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )" - uses: actions/checkout@v4 - with: - persist-credentials: false + steps: + - name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )" + uses: actions/checkout@v4 + with: + persist-credentials: false - - name: Print Current workflow - run: > - cat .github/workflows/auto-jdk-matrix.yml + - name: Print Current workflow + run: > + cat .github/workflows/auto-jdk-matrix.yml - - name: Cache local Maven repository - uses: actions/cache@v4 - with: - path: ~/.m2/repository - key: build-${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} - restore-keys: build-${{ runner.os }}-maven- + - name: Cache local Maven repository + uses: actions/cache@v4 + with: + path: ~/.m2/repository + key: build-${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} + restore-keys: build-${{ runner.os }}-maven- - - name: Install Matrix JDK - uses: actions/setup-java@v4 - with: - java-version: ${{ matrix.jdk }} - distribution: 'temurin' - java-package: jdk - architecture: x64 + - name: Install Matrix JDK + uses: actions/setup-java@v4 + with: + java-version: ${{ matrix.jdk }} + distribution: 'temurin' + java-package: jdk + architecture: x64 - - name: Echo Java Version - run: > - java -version + - name: Echo Java Version + run: > + java -version - - name: Test - run: > - mvn clean test -B - -Dmaven.javadoc.skip=true - -Dgpg.skip=true + - name: Test + run: > + mvn clean test -B + -Dmaven.javadoc.skip=true + -Dgpg.skip=true - - name: Install - run: > - mvn clean install -B - -DskipTests=true - -Dgpg.skip=true + - name: Install + run: > + mvn clean install -B + -DskipTests=true + -Dgpg.skip=true # Architecture options: x86, x64, armv7, aarch64, ppc64le # setup-java@v4 has a "with cache" option diff --git a/.github/workflows/auto-os-matrix.yml b/.github/workflows/auto-os-matrix.yml index d9f5bc4c5..473211f67 100644 --- a/.github/workflows/auto-os-matrix.yml +++ b/.github/workflows/auto-os-matrix.yml @@ -1,77 +1,77 @@ -name: DataSketches-Java Auto OS Matrix Test & Install +name: Auto OS Matrix Test, Install on: - pull_request: - push: - branches: [ master, main ] - workflow_dispatch: + pull_request: + push: + branches: [ 7.0.X ] + workflow_dispatch: env: - MAVEN_OPTS: -Xmx1g -Xms1g + MAVEN_OPTS: -Xmx1g -Xms1g jobs: - build: - name: Build, Test, Install + build: + name: Build, Test, Install - strategy: - fail-fast: false + strategy: + fail-fast: false - matrix: - jdk: [ 17 ] - os: [ windows-latest, ubuntu-latest, macos-latest ] - include: - - os: windows-latest - skip_javadoc: "`-Dmaven`.javadoc`.skip=true" - skip_gpg: "`-Dgpg`.skip=true" - - os: ubuntu-latest - skip_javadoc: -Dmaven.javadoc.skip=true - skip_gpg: -Dgpg.skip=true - - os: macos-latest - skip_javadoc: -Dmaven.javadoc.skip=true - skip_gpg: -Dgpg.skip=true + matrix: + jdk: [ 17 ] + os: [ windows-latest, ubuntu-latest, macos-latest ] + include: + - os: windows-latest + skip_javadoc: "`-Dmaven`.javadoc`.skip=true" + skip_gpg: "`-Dgpg`.skip=true" + - os: ubuntu-latest + skip_javadoc: -Dmaven.javadoc.skip=true + skip_gpg: -Dgpg.skip=true + - os: macos-latest + skip_javadoc: -Dmaven.javadoc.skip=true + skip_gpg: -Dgpg.skip=true - runs-on: ${{matrix.os}} + runs-on: ${{matrix.os}} - env: - JDK_VERSION: ${{ matrix.jdk }} + env: + JDK_VERSION: ${{ matrix.jdk }} - steps: - - name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )" - uses: actions/checkout@v4 - with: - persist-credentials: false + steps: + - name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )" + uses: actions/checkout@v4 + with: + persist-credentials: false - - name: Cache local Maven repository - uses: actions/cache@v4 - with: - path: ~/.m2/repository - key: build-${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} - restore-keys: build-${{ runner.os }}-maven- + - name: Cache local Maven repository + uses: actions/cache@v4 + with: + path: ~/.m2/repository + key: build-${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} + restore-keys: build-${{ runner.os }}-maven- - - name: Install Matrix JDK - uses: actions/setup-java@v4 - with: - java-version: ${{ matrix.jdk }} - distribution: 'temurin' - java-package: jdk - architecture: x64 + - name: Install Matrix JDK + uses: actions/setup-java@v4 + with: + java-version: ${{ matrix.jdk }} + distribution: 'temurin' + java-package: jdk + architecture: x64 - - name: Echo Java Version - run: > - java -version + - name: Echo Java Version + run: > + java -version - - name: Test - run: > - mvn clean test - ${{matrix.os.skip_javadoc}} - ${{matrix.os.skip_gpg}} + - name: Test + run: > + mvn clean test + ${{matrix.os.skip_javadoc}} + ${{matrix.os.skip_gpg}} - - name: Install - run: > - mvn clean install -B - ${{matrix.os.skip_javadoc}} - -D skipTests=true - ${{matrix.os.skip_gpg}} + - name: Install + run: > + mvn clean install -B + ${{matrix.os.skip_javadoc}} + -D skipTests=true + ${{matrix.os.skip_gpg}} # Architecture options: x86, x64, armv7, aarch64, ppc64le # setup-java@v4 has a "with cache" option diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml new file mode 100644 index 000000000..427faa7cd --- /dev/null +++ b/.github/workflows/codeql-analysis.yml @@ -0,0 +1,78 @@ +name: "CodeQL" + +on: + push: + branches: + - '7.0.X' + - 'main' + pull_request_target: + types: + - opened + branches: + - '7.0.X' + - 'main' + workflow_dispatch: + +jobs: + analyze: + name: Analyze + runs-on: ubuntu-latest + permissions: + actions: read + contents: read + security-events: write + + strategy: + fail-fast: false + matrix: + language: [ 'java' ] + # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ] + # Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + # Initializes the CodeQL tools for scanning. + - name: Initialize CodeQL + uses: github/codeql-action/init@v3 + with: + languages: ${{ matrix.language }} + # If you wish to specify custom queries, you can do so here or in a config file. + # By default, queries listed here will override any specified in a config file. + # Prefix the list here with "+" to use these queries and those in the config file. + + # Details on CodeQL's query packs refer to : https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs + queries: +security-and-quality + + + # Autobuild attempts to build any compiled languages (C/C++, C#, Go, or Java). + # If this step fails, then you should remove it and run the build manually (see below) + + # -name: Autobuild + # uses: github/codeql-action/autobuild@v3 + + # Command-line programs to run using the OS shell. + # See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun + + # If the Autobuild fails above, remove it and uncomment the following three lines. + # modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance. + + # - run: | + # echo "Run, Build Application using script" + # ./location_of_script_within_repo/buildscript.sh + + # Note: Autobuild fails thus the following manual build + - name: Manual Build With Java 17 + uses: actions/setup-java@v4 + with: + java-version: '17' + distribution: 'temurin' + + - name: Java Compile + run: mvn clean compile + + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@v3 + with: + category: "/language:${{matrix.language}}" diff --git a/.github/workflows/manual-codeql-analysis.yml b/.github/workflows/manual-codeql-analysis.yml deleted file mode 100644 index 1b94d13a3..000000000 --- a/.github/workflows/manual-codeql-analysis.yml +++ /dev/null @@ -1,57 +0,0 @@ -name: "CodeQL" - -on: - workflow_dispatch: - -jobs: - analyze: - name: Analyze - runs-on: ubuntu-latest - permissions: - actions: read - contents: read - security-events: write - - strategy: - fail-fast: false - matrix: - language: [ 'java' ] - # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ] - # Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support - - steps: - - name: Checkout repository - uses: actions/checkout@v4 - - # Initializes the CodeQL tools for scanning. - - name: Initialize CodeQL - uses: github/codeql-action/init@v4 - with: - languages: ${{ matrix.language }} - # If you wish to specify custom queries, you can do so here or in a config file. - # By default, queries listed here will override any specified in a config file. - # Prefix the list here with "+" to use these queries and those in the config file. - - # Details on CodeQL's query packs refer to : https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs - queries: +security-and-quality - - - # Autobuild attempts to build any compiled languages (C/C++, C#, Go, or Java). - # If this step fails, then you should remove it and run the build manually (see below) - - name: Autobuild - uses: github/codeql-action/autobuild@v4 - - # Command-line programs to run using the OS shell. - # See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun - - # If the Autobuild fails above, remove it and uncomment the following three lines. - # modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance. - - # - run: | - # echo "Run, Build Application using script" - # ./location_of_script_within_repo/buildscript.sh - - - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v4 - with: - category: "/language:${{matrix.language}}" diff --git a/.github/workflows/manual-javadoc.yml b/.github/workflows/manual-javadoc.yml index e65824e7e..f1cd56e75 100644 --- a/.github/workflows/manual-javadoc.yml +++ b/.github/workflows/manual-javadoc.yml @@ -1,6 +1,9 @@ -name: JavaDoc +name: Publish JavaDoc on: + pull_request: + push: + branches: [ 7.0.X ] workflow_dispatch: jobs: @@ -22,7 +25,7 @@ jobs: - name: Print Current workflow run: > - cat .github/workflows/manual-javadoc.yml + cat .github/workflows/manual-javadoc.yml - name: Generate JavaDoc run: mvn clean javadoc:javadoc diff --git a/tools/CloverConfig.txt b/tools/CloverConfig.txt deleted file mode 100644 index 845fede8c..000000000 --- a/tools/CloverConfig.txt +++ /dev/null @@ -1,50 +0,0 @@ -# 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. - -Clover Config for Eclipse: - -At Project Level Properties: -Clover: - Instrumentation: - Initstring: Default value - Output Folder: ...project output dir(s) - Flush Policy: At JVM shutdown ... - Misc: Fully qualify ... , Instrument and compile at statement level - Contexts: - Check: assert statements - Add Custom Coverage Context Filter: - private-constructor: also see link below - Method - (.* )?private +[a-zA-Z0-9_$]+ *\( *\).* - Source Files - Only look ... - [check] src/main/java[includes=**/*.java][excludes=] - [check] src/test/java[includes=**/*.java][excludes=] - Test Classes - Assume all source in the specified folders are tests or test utility classes - [check] src/test/java - -At Clover "down-triangle" menu: - Columns: - Element - % TOTAL Coverage - Uncovered Elements: Custom: %UncoveredElements * TotalElements / 100 - Total Elements - - - -http://alexruizlog.blogspot.com/2009/04/how-to-make-clover-ignore-private_21.html \ No newline at end of file diff --git a/tools/SketchesCheckstyle.xml b/tools/SketchesCheckstyle.xml index 184a05ad3..53726a2c1 100644 --- a/tools/SketchesCheckstyle.xml +++ b/tools/SketchesCheckstyle.xml @@ -49,10 +49,12 @@ under the License. + - + + @@ -67,6 +69,7 @@ under the License. + @@ -80,13 +83,6 @@ under the License. - - @@ -230,7 +226,8 @@ under the License. - + + diff --git a/tools/suppressions.xml b/tools/suppressions.xml deleted file mode 100644 index 91b8833c4..000000000 --- a/tools/suppressions.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - \ No newline at end of file