From 17e671bb264352f5224f9762ef1c87302864d76c Mon Sep 17 00:00:00 2001 From: Yurii Serhiichuk Date: Sun, 3 Mar 2024 15:52:22 +0100 Subject: [PATCH 01/21] Add Gradle CI action --- .github/workflows/ci.yaml | 51 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 .github/workflows/ci.yaml diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml new file mode 100644 index 00000000..8618bf42 --- /dev/null +++ b/.github/workflows/ci.yaml @@ -0,0 +1,51 @@ +name: CI + +on: + push: + branches: + - "main" + pull_request: + workflow_dispatch: +concurrency: + group: + ${{ github.repository }}-${{ github.workflow }}-${{ github.event.number || github.head_ref || github.run_id || github.sha }} + cancel-in-progress: true +permissions: + contents: write + +jobs: + build: + strategy: + fail-fast: false + matrix: + java: [ 8, 11, 17 ] + os: [ ubuntu-latest ] + + runs-on: ${{ matrix.os }} + steps: + - uses: actions/checkout@v4 + - name: Set up JDK ${{ env.JAVA_VERSION }} + uses: actions/setup-java@v4 + with: + java-version: ${{ matrix.java }} + distribution: 'temurin' + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v3 + with: + add-job-summary-as-pr-comment: on-failure + dependency-graph: generate-and-submit + build-scan-publish: true + build-scan-terms-of-service-url: "https://gradle.com/terms-of-service" + build-scan-terms-of-service-agree: "yes" + - name: Grant execute permission for gradlew + run: chmod +x gradlew + - name: Run build with Gradle wrapper + run: ./gradlew build + - name: Upload build reports + uses: actions/upload-artifact@v3 + if: always() + with: + name: build-reports + path: build/reports/ + - name: Run checks + run: ./gradlew check jacocoTestReport From 9c422944af6eafb524f9b6fc0206622517c988b7 Mon Sep 17 00:00:00 2001 From: Yurii Serhiichuk Date: Sun, 3 Mar 2024 15:56:38 +0100 Subject: [PATCH 02/21] Print Gradle stacktrace and warnings --- .github/workflows/ci.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 8618bf42..50c6e612 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -40,7 +40,7 @@ jobs: - name: Grant execute permission for gradlew run: chmod +x gradlew - name: Run build with Gradle wrapper - run: ./gradlew build + run: ./gradlew build --stacktrace --warning-mode all - name: Upload build reports uses: actions/upload-artifact@v3 if: always() @@ -48,4 +48,4 @@ jobs: name: build-reports path: build/reports/ - name: Run checks - run: ./gradlew check jacocoTestReport + run: ./gradlew check test integrationTest jacocoTestReport --stacktrace --warning-mode all From 3cbf7b288d31639c385b8b98f5ddcd9cfe716293 Mon Sep 17 00:00:00 2001 From: Yurii Serhiichuk Date: Sun, 3 Mar 2024 16:07:58 +0100 Subject: [PATCH 03/21] Change build status to GH actions --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 96e9454e..08bd0863 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ **Looking for contributors**: *_It's boring to work alone_ - If you are interested in contributing to an open source project please open an issue to discuss your ideas or create a PR* -[![Build Status](https://travis-ci.org/neuhalje/bouncy-gpg.svg?branch=master)](https://travis-ci.org/neuhalje/bouncy-gpg) +[![Build Status](https://github.com/neuhalje/bouncy-gpg/actions/workflows/ci.yaml/badge.svg)](https://github.com/neuhalje/bouncy-gpg/actions/workflows/ci.yaml) [![codecov](https://codecov.io/gh/neuhalje/bouncy-gpg/branch/master/graph/badge.svg)](https://codecov.io/gh/neuhalje/bouncy-gpg) [![Codacy Badge](https://api.codacy.com/project/badge/Grade/86c099743f8b484c8da833495d7dc209)](https://www.codacy.com/app/neuhalje/bouncy-gpg?utm_source=github.com&utm_medium=referral&utm_content=neuhalje/bouncy-gpg&utm_campaign=Badge_Grade) [![license](https://img.shields.io/badge/license-APACHE%202.0-brightgreen.svg)](https://www.apache.org/licenses/LICENSE-2.0.html) From 575a77b0dc18eedc7bf1add86ede520b5fc18c2b Mon Sep 17 00:00:00 2001 From: Yurii Serhiichuk Date: Sun, 3 Mar 2024 16:10:21 +0100 Subject: [PATCH 04/21] Upgrade Gradle to v6.9.4 --- gradle/wrapper/gradle-wrapper.jar | Bin 55627 -> 59203 bytes gradle/wrapper/gradle-wrapper.properties | 4 +- gradlew | 282 ++++++++++++++--------- gradlew.bat | 43 ++-- 4 files changed, 198 insertions(+), 131 deletions(-) diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index d9b7505b1096bc428abaa017cb79c9d2da247111..e708b1c023ec8b20f512888fe07c5bd3ff77bb8f 100644 GIT binary patch delta 28480 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 LeI$v=`>X!}Sp70s delta 25059 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 \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG=`dirname "$PRG"`"/$link" - fi +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac done -SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" >/dev/null -APP_HOME="`pwd -P`" -cd "$SAVED" >/dev/null + +APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit APP_NAME="Gradle" -APP_BASE_NAME=`basename "$0"` +APP_BASE_NAME=${0##*/} # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS="" +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' # Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD="maximum" +MAX_FD=maximum warn () { echo "$*" -} +} >&2 die () { echo echo "$*" echo exit 1 -} +} >&2 # OS specific support (must be 'true' or 'false'). cygwin=false msys=false darwin=false nonstop=false -case "`uname`" in - CYGWIN* ) - cygwin=true - ;; - Darwin* ) - darwin=true - ;; - MINGW* ) - msys=true - ;; - NONSTOP* ) - nonstop=true - ;; +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; esac CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + # Determine the Java command to use to start the JVM. if [ -n "$JAVA_HOME" ] ; then if [ -x "$JAVA_HOME/jre/sh/java" ] ; then # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" + JAVACMD=$JAVA_HOME/jre/sh/java else - JAVACMD="$JAVA_HOME/bin/java" + JAVACMD=$JAVA_HOME/bin/java fi if [ ! -x "$JAVACMD" ] ; then die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME @@ -81,7 +132,7 @@ Please set the JAVA_HOME variable in your environment to match the location of your Java installation." fi else - JAVACMD="java" + JAVACMD=java which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. Please set the JAVA_HOME variable in your environment to match the @@ -89,84 +140,95 @@ location of your Java installation." fi # Increase the maximum file descriptors if we can. -if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then - MAX_FD_LIMIT=`ulimit -H -n` - if [ $? -eq 0 ] ; then - if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then - MAX_FD="$MAX_FD_LIMIT" - fi - ulimit -n $MAX_FD - if [ $? -ne 0 ] ; then - warn "Could not set maximum file descriptor limit: $MAX_FD" - fi - else - warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" - fi +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac fi -# For Darwin, add options to specify how the application appears in the dock -if $darwin; then - GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" -fi +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) -# For Cygwin, switch paths to Windows format before running java -if $cygwin ; then - APP_HOME=`cygpath --path --mixed "$APP_HOME"` - CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` - JAVACMD=`cygpath --unix "$JAVACMD"` - - # We build the pattern for arguments to be converted via cygpath - ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` - SEP="" - for dir in $ROOTDIRSRAW ; do - ROOTDIRS="$ROOTDIRS$SEP$dir" - SEP="|" - done - OURCYGPATTERN="(^($ROOTDIRS))" - # Add a user-defined pattern to the cygpath arguments - if [ "$GRADLE_CYGPATTERN" != "" ] ; then - OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" - fi # Now convert the arguments - kludge to limit ourselves to /bin/sh - i=0 - for arg in "$@" ; do - CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` - CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option - - if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition - eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` - else - eval `echo args$i`="\"$arg\"" + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) fi - i=$((i+1)) + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg done - case $i in - (0) set -- ;; - (1) set -- "$args0" ;; - (2) set -- "$args0" "$args1" ;; - (3) set -- "$args0" "$args1" "$args2" ;; - (4) set -- "$args0" "$args1" "$args2" "$args3" ;; - (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; - esac fi -# Escape application args -save () { - for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done - echo " " -} -APP_ARGS=$(save "$@") - -# Collect all arguments for the java command, following the shell quoting and substitution rules -eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" - -# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong -if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then - cd "$(dirname "$0")" -fi +# Collect all arguments for the java command; +# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of +# shell script including quotes and variable substitutions, so put them in +# double quotes to make sure that they get re-expanded; and +# * put everything else in single quotes, so that it's not re-expanded. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat index e95643d6..ac1b06f9 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -1,3 +1,19 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + @if "%DEBUG%" == "" @echo off @rem ########################################################################## @rem @@ -13,15 +29,18 @@ if "%DIRNAME%" == "" set DIRNAME=. set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS= +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" @rem Find java.exe if defined JAVA_HOME goto findJavaFromJavaHome set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto init +if "%ERRORLEVEL%" == "0" goto execute echo. echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. @@ -35,7 +54,7 @@ goto fail set JAVA_HOME=%JAVA_HOME:"=% set JAVA_EXE=%JAVA_HOME%/bin/java.exe -if exist "%JAVA_EXE%" goto init +if exist "%JAVA_EXE%" goto execute echo. echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% @@ -45,28 +64,14 @@ echo location of your Java installation. goto fail -:init -@rem Get command-line arguments, handling Windows variants - -if not "%OS%" == "Windows_NT" goto win9xME_args - -:win9xME_args -@rem Slurp the command line arguments. -set CMD_LINE_ARGS= -set _SKIP=2 - -:win9xME_args_slurp -if "x%~1" == "x" goto execute - -set CMD_LINE_ARGS=%* - :execute @rem Setup the command line set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + @rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* :end @rem End local scope for the variables with windows NT shell From b96913e24eaaae6f1161743072f5bc9442ed7dba Mon Sep 17 00:00:00 2001 From: Yurii Serhiichuk Date: Sun, 3 Mar 2024 16:19:56 +0100 Subject: [PATCH 05/21] Migrate from deprecated and outdated APIs --- bintray.gradle | 8 ++++---- build.gradle | 31 +++++++++++++++---------------- website.gradle | 17 ++++++++++------- 3 files changed, 29 insertions(+), 27 deletions(-) diff --git a/bintray.gradle b/bintray.gradle index 8f3baff3..219d3cf0 100644 --- a/bintray.gradle +++ b/bintray.gradle @@ -22,13 +22,13 @@ def pomConfig = { } } -task javadocJar(type: Jar) { - classifier = 'javadoc' +tasks.register('javadocJar', Jar) { + getArchiveClassifier().set("javadoc") from javadoc } -task sourcesJar(type: Jar) { - classifier = 'sources' +tasks.register('sourcesJar', Jar) { + getArchiveClassifier().set("sources") from sourceSets.main.allSource } diff --git a/build.gradle b/build.gradle index 6ad763b6..47e6f156 100644 --- a/build.gradle +++ b/build.gradle @@ -1,6 +1,6 @@ buildscript { repositories { - jcenter() + mavenCentral() } dependencies { classpath 'biz.aQute.bnd:biz.aQute.bnd.gradle:4.3.1' @@ -37,7 +37,7 @@ checkstyle { // maxWarnings = 0 } -tasks.withType(Checkstyle) { +tasks.withType(Checkstyle).configureEach { reports { xml.enabled true // html.destination rootProject.file("build/reports/checkstyle.html") @@ -47,7 +47,7 @@ tasks.withType(Checkstyle) { jacoco { toolVersion = "0.8.5" - reportsDir = file("${buildDir}/jacocoHtml") + getReportsDirectory().set(file("${buildDir}/jacocoHtml")) } jacocoTestReport { @@ -90,7 +90,7 @@ group = 'name.neuhalfen.projects.crypto.bouncycastle.openpgp' version = '2.3.0' repositories { - jcenter() + mavenCentral() } sourceSets { @@ -111,7 +111,7 @@ configurations { integrationTestRuntime.extendsFrom testRuntime } -task integrationTest(type: Test) { +tasks.register('integrationTest', Test) { description = 'Runs the integration tests.' group = LifecycleBasePlugin.VERIFICATION_GROUP testClassesDirs = sourceSets.integrationTest.output.classesDirs @@ -123,20 +123,19 @@ check.dependsOn integrationTest dependencies { - compile 'org.bouncycastle:bcprov-jdk15on:1.67' - compile 'org.bouncycastle:bcpg-jdk15on:1.67' + implementation 'org.bouncycastle:bcprov-jdk15on:1.67' + implementation 'org.bouncycastle:bcpg-jdk15on:1.67' - compile 'org.slf4j:slf4j-api:1.7.30' + implementation 'org.slf4j:slf4j-api:1.7.30' // @Nullable and friends are not needed at runtime - compile 'com.google.code.findbugs:jsr305:3.0.2' - - testCompile 'junit:junit:4.13' - testCompile 'org.hamcrest:hamcrest-all:1.3' - testCompile 'org.mockito:mockito-core:3.2.4' - testCompile 'org.concordion:concordion-api-documentation-extension:0.0.4' - testCompile 'ch.qos.logback:logback-classic:1.2.3' + implementation 'com.google.code.findbugs:jsr305:3.0.2' + testImplementation 'junit:junit:4.13' + testImplementation 'org.hamcrest:hamcrest-all:1.3' + testImplementation 'org.mockito:mockito-core:3.2.4' + testImplementation 'org.concordion:concordion-api-documentation-extension:0.0.4' + testImplementation 'ch.qos.logback:logback-classic:1.2.3' } @@ -164,7 +163,7 @@ if (hasProperty('bintray_Username')) { apply from: 'website.gradle' wrapper { - gradleVersion = '6.5' + gradleVersion = '6.9.4' } // Generate OSGI bundle metadata diff --git a/website.gradle b/website.gradle index 1642b6b7..0c73310a 100644 --- a/website.gradle +++ b/website.gradle @@ -4,7 +4,8 @@ import name.neuhalfen.concordion.transform.ConcordionHtmlToMarkdownTransformer // https://github.com/ajoberstar/gradle-git-publish -task prepareSpecsForCMS(type: Copy, dependsOn: ['prepareCmsBuildRoot', 'test']) { +tasks.register('prepareSpecsForCMS', Copy) { + setDependsOn(['prepareCmsBuildRoot', 'test']) description 'Transform the build output of concordion to include it in the CMS' from(fileTree("${specifications_prepareForCms_source}")) { @@ -16,24 +17,26 @@ task prepareSpecsForCMS(type: Copy, dependsOn: ['prepareCmsBuildRoot', 'test']) filter(ConcordionHtmlToMarkdownTransformer) } -task removeOldCMSBuild(type: Delete) { +tasks.register('removeOldCMSBuild', Delete) { delete "${specifications_cms_target}" delete "${cms_BuildRoot}" } -task prepareCmsBuildRoot(type: Copy, dependsOn: ['removeOldCMSBuild']) { +tasks.register('prepareCmsBuildRoot', Copy) { + dependsOn['removeOldCMSBuild'] from("${specifications_cms_cmsdRoot}") into "${cms_BuildRoot}" } - -task generateWebsite(type: Exec, dependsOn: ['prepareSpecsForCMS']) { +tasks.register('generateWebsite', Exec) { + dependsOn['prepareSpecsForCMS'] commandLine = [hugo, '--cleanDestinationDir', '--destination', "${specifications_cms_target}", '--enableGitInfo'] workingDir = file("${cms_BuildRoot}") } -task previewWebsite(type: Exec, dependsOn: ['generateWebsite']) { +tasks.register('previewWebsite', Exec) { + dependsOn['generateWebsite'] commandLine = [hugo, 'server', '--debug', '--watch', '--enableGitInfo'] workingDir = file("${cms_BuildRoot}") } @@ -62,4 +65,4 @@ gitPublish { commitMessage = 'Publishing github pages' // defaults to 'Generated by gradle-git-publish' } -task publishWebsite(dependsOn: ['generateWebsite', 'gitPublishPush']) +tasks.register('publishWebsite') { setDependsOn(['generateWebsite', 'gitPublishPush']) } From 7739125800407217eab5b73564a357d38856b483 Mon Sep 17 00:00:00 2001 From: Yurii Serhiichuk Date: Sun, 3 Mar 2024 16:25:48 +0100 Subject: [PATCH 06/21] Add jcenter repo back --- build.gradle | 2 ++ 1 file changed, 2 insertions(+) diff --git a/build.gradle b/build.gradle index 47e6f156..17ceab1e 100644 --- a/build.gradle +++ b/build.gradle @@ -1,6 +1,7 @@ buildscript { repositories { mavenCentral() + jcenter() } dependencies { classpath 'biz.aQute.bnd:biz.aQute.bnd.gradle:4.3.1' @@ -91,6 +92,7 @@ version = '2.3.0' repositories { mavenCentral() + jcenter() } sourceSets { From f113a5273d799c94cd3032467dad74dfe68ef88b Mon Sep 17 00:00:00 2001 From: Yurii Serhiichuk Date: Sun, 3 Mar 2024 16:33:55 +0100 Subject: [PATCH 07/21] Configure integration tests configs properly --- build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index 17ceab1e..6c43ba99 100644 --- a/build.gradle +++ b/build.gradle @@ -109,8 +109,8 @@ sourceSets { } configurations { - integrationTestCompile.extendsFrom testCompile - integrationTestRuntime.extendsFrom testRuntime + integrationTestImplementation.extendsFrom testImplementation + integrationTestRuntimeOnly.extendsFrom testRuntimeOnly } tasks.register('integrationTest', Test) { From 794f404bfd469ca659bba1013a73f4bbc8999eeb Mon Sep 17 00:00:00 2001 From: Yurii Serhiichuk Date: Sun, 3 Mar 2024 16:46:35 +0100 Subject: [PATCH 08/21] Drop unused plugins --- build.gradle | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/build.gradle b/build.gradle index 6c43ba99..fec5d942 100644 --- a/build.gradle +++ b/build.gradle @@ -9,7 +9,7 @@ buildscript { } plugins { - id 'java' + id 'java-library' id 'jacoco' id 'checkstyle' @@ -19,7 +19,6 @@ plugins { id 'org.ajoberstar.git-publish' version '0.3.0' // deploy to maven central - id 'maven' id 'maven-publish' id 'signing' id "com.jfrog.bintray" version "1.8.4" @@ -98,8 +97,7 @@ repositories { sourceSets { integrationTest { compileClasspath += sourceSets.main.output \ - + sourceSets.test.output \ - + configurations.testRuntime + + sourceSets.test.output runtimeClasspath += output + compileClasspath From eb2177c18701090ef66c948f168863b717a5a0a9 Mon Sep 17 00:00:00 2001 From: Yurii Serhiichuk Date: Sun, 3 Mar 2024 16:58:31 +0100 Subject: [PATCH 09/21] Move plugin version management to `settings.gradle` and fixate `biz.aQute.bnd.builder` plugin --- build.gradle | 10 ++++------ settings.gradle | 9 +++++++++ 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/build.gradle b/build.gradle index fec5d942..77a656b1 100644 --- a/build.gradle +++ b/build.gradle @@ -16,13 +16,14 @@ plugins { id 'pmd' // required for: website.gradle - id 'org.ajoberstar.git-publish' version '0.3.0' + id 'org.ajoberstar.git-publish' // deploy to maven central id 'maven-publish' id 'signing' - id "com.jfrog.bintray" version "1.8.4" - id "com.github.ben-manes.versions" version "0.27.0" + id "com.jfrog.bintray" + id "com.github.ben-manes.versions" + id "biz.aQute.bnd.builder" } javadoc { @@ -165,6 +166,3 @@ apply from: 'website.gradle' wrapper { gradleVersion = '6.9.4' } - -// Generate OSGI bundle metadata -apply plugin: 'biz.aQute.bnd.builder' diff --git a/settings.gradle b/settings.gradle index b9956211..6ae5fb0c 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1 +1,10 @@ +pluginManagement { + plugins { + id "biz.aQute.bnd.builder" version "6.4.0" + id "org.ajoberstar.git-publish" version '0.3.0' + id "com.github.ben-manes.versions" version "0.27.0" + id "com.jfrog.bintray" version "1.8.4" + } +} + rootProject.name = 'bouncy-gpg' From e16d1e8a43a5cd07eb1cadfd029ca19ea2e5ad05 Mon Sep 17 00:00:00 2001 From: Yurii Serhiichuk Date: Sun, 3 Mar 2024 17:03:51 +0100 Subject: [PATCH 10/21] Update plugin versions --- settings.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/settings.gradle b/settings.gradle index 6ae5fb0c..363ecab8 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,8 +1,8 @@ pluginManagement { plugins { id "biz.aQute.bnd.builder" version "6.4.0" - id "org.ajoberstar.git-publish" version '0.3.0' - id "com.github.ben-manes.versions" version "0.27.0" + id "org.ajoberstar.git-publish" version '3.0.1' + id "com.github.ben-manes.versions" version "0.42.0" id "com.jfrog.bintray" version "1.8.4" } } From 135c06b04fb20385e67775d2655e8b396ab569ca Mon Sep 17 00:00:00 2001 From: Yurii Serhiichuk Date: Sun, 3 Mar 2024 17:09:38 +0100 Subject: [PATCH 11/21] Migrate to Gradle 7.6.2 --- build.gradle | 13 +++++-------- gradle/wrapper/gradle-wrapper.jar | Bin 59203 -> 61624 bytes gradle/wrapper/gradle-wrapper.properties | 3 ++- gradlew | 18 ++++++++++++++---- gradlew.bat | 15 +++++++++------ 5 files changed, 30 insertions(+), 19 deletions(-) diff --git a/build.gradle b/build.gradle index 77a656b1..76c73fb4 100644 --- a/build.gradle +++ b/build.gradle @@ -3,9 +3,6 @@ buildscript { mavenCentral() jcenter() } - dependencies { - classpath 'biz.aQute.bnd:biz.aQute.bnd.gradle:4.3.1' - } } plugins { @@ -40,7 +37,7 @@ checkstyle { tasks.withType(Checkstyle).configureEach { reports { - xml.enabled true + xml.setRequired(true) // html.destination rootProject.file("build/reports/checkstyle.html") // html.stylesheet resources.text.fromFile('config/xsl/checkstyle-custom.xsl') } @@ -53,9 +50,9 @@ jacoco { jacocoTestReport { reports { - xml.enabled true - csv.enabled false - html.enabled true + xml.setRequired(true) + csv.setRequired(true) + html.setRequired(true) html.destination file("${buildDir}/jacocoHtml") } } @@ -164,5 +161,5 @@ if (hasProperty('bintray_Username')) { apply from: 'website.gradle' wrapper { - gradleVersion = '6.9.4' + gradleVersion = '7.6.2' } diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index e708b1c023ec8b20f512888fe07c5bd3ff77bb8f..afba109285af78dbd2a1d187e33ac4f87c76e392 100644 GIT binary patch delta 39359 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 delta 36880 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�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%0AV^qz&fiv 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 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 53b9e380..4e86b927 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.9.4-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.2-bin.zip +networkTimeout=10000 zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew index 1b6c7873..65dcd68d 100755 --- a/gradlew +++ b/gradlew @@ -55,7 +55,7 @@ # Darwin, MinGW, and NonStop. # # (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt # within the Gradle project. # # You can find Gradle at https://github.com/gradle/gradle/. @@ -80,10 +80,10 @@ do esac done -APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit - -APP_NAME="Gradle" +# This is normally unused +# shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} +APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' @@ -143,12 +143,16 @@ fi if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then case $MAX_FD in #( max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC3045 MAX_FD=$( ulimit -H -n ) || warn "Could not query maximum file descriptor limit" esac case $MAX_FD in #( '' | soft) :;; #( *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC3045 ulimit -n "$MAX_FD" || warn "Could not set maximum file descriptor limit to $MAX_FD" esac @@ -205,6 +209,12 @@ set -- \ org.gradle.wrapper.GradleWrapperMain \ "$@" +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + # Use "xargs" to parse quoted args. # # With -n1 it outputs one arg per line, with the quotes and backslashes removed. diff --git a/gradlew.bat b/gradlew.bat index ac1b06f9..6689b85b 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -14,7 +14,7 @@ @rem limitations under the License. @rem -@if "%DEBUG%" == "" @echo off +@if "%DEBUG%"=="" @echo off @rem ########################################################################## @rem @rem Gradle startup script for Windows @@ -25,7 +25,8 @@ if "%OS%"=="Windows_NT" setlocal set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% @@ -40,7 +41,7 @@ if defined JAVA_HOME goto findJavaFromJavaHome set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto execute +if %ERRORLEVEL% equ 0 goto execute echo. echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. @@ -75,13 +76,15 @@ set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar :end @rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd +if %ERRORLEVEL% equ 0 goto mainEnd :fail rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% :mainEnd if "%OS%"=="Windows_NT" endlocal From 6b4851e2284989818fba4cc9feed631f4c476e5e Mon Sep 17 00:00:00 2001 From: Yurii Serhiichuk Date: Sun, 3 Mar 2024 17:09:54 +0100 Subject: [PATCH 12/21] Add release item --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 34bb254f..eaaf382f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,7 @@ ## V 2.x.x (NEXT) +* Enh: Upgrade tooling and migrate to GitHub Actions. + ## V 2.3.0 Bugfix Release This releases fixes a security issue (#50) where encrypted, but not signed archives could be modified. From 4738fb978256bf0e49e0b6705fafeea9405ec5e3 Mon Sep 17 00:00:00 2001 From: Yurii Serhiichuk Date: Sun, 3 Mar 2024 17:14:34 +0100 Subject: [PATCH 13/21] Drop Java 17 and use MacOS and Windows for builds as well --- .github/workflows/ci.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 50c6e612..820fe595 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -18,8 +18,8 @@ jobs: strategy: fail-fast: false matrix: - java: [ 8, 11, 17 ] - os: [ ubuntu-latest ] + java: [ 8, 11 ] + os: [ ubuntu-22.04, macos-13, windows-2022 ] runs-on: ${{ matrix.os }} steps: From 365a030c0ca0ebc07191afa5be659e11bc111b10 Mon Sep 17 00:00:00 2001 From: Yurii Serhiichuk Date: Sun, 3 Mar 2024 17:41:53 +0100 Subject: [PATCH 14/21] Update toolng --- build.gradle | 10 ++++++++-- config/checkstyle/checkstyle.xml | 8 ++++---- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/build.gradle b/build.gradle index 76c73fb4..a05173e7 100644 --- a/build.gradle +++ b/build.gradle @@ -29,7 +29,7 @@ javadoc { } checkstyle { - toolVersion = "8.1" + toolVersion = "8.24" showViolations = false sourceSets = [project.sourceSets.main] // maxWarnings = 0 @@ -44,7 +44,7 @@ tasks.withType(Checkstyle).configureEach { } jacoco { - toolVersion = "0.8.5" + toolVersion = "0.8.11" getReportsDirectory().set(file("${buildDir}/jacocoHtml")) } @@ -107,6 +107,12 @@ sourceSets { configurations { integrationTestImplementation.extendsFrom testImplementation integrationTestRuntimeOnly.extendsFrom testRuntimeOnly + checkstyle { + // See https://github.com/gradle/gradle/issues/27035 + resolutionStrategy.capabilitiesResolution.withCapability("com.google.collections:google-collections") { + select("com.google.guava:guava:0") + } + } } tasks.register('integrationTest', Test) { diff --git a/config/checkstyle/checkstyle.xml b/config/checkstyle/checkstyle.xml index a983c44e..854fe455 100644 --- a/config/checkstyle/checkstyle.xml +++ b/config/checkstyle/checkstyle.xml @@ -27,6 +27,10 @@ + + + + @@ -39,10 +43,6 @@ - - - - From 4129794e0f2f3c01d218ff5cde8e5efc35be77cb Mon Sep 17 00:00:00 2001 From: Yurii Serhiichuk Date: Sun, 3 Mar 2024 17:42:09 +0100 Subject: [PATCH 15/21] Drop windows builds --- .github/workflows/ci.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 820fe595..b321220d 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -19,7 +19,7 @@ jobs: fail-fast: false matrix: java: [ 8, 11 ] - os: [ ubuntu-22.04, macos-13, windows-2022 ] + os: [ ubuntu-22.04, macos-13 ] runs-on: ${{ matrix.os }} steps: From ccc8debbfb9920c203e1815a614f3f6f638a5f90 Mon Sep 17 00:00:00 2001 From: Yurii Serhiichuk Date: Sun, 3 Mar 2024 17:42:51 +0100 Subject: [PATCH 16/21] Use latest upload-artifact version --- .github/workflows/ci.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index b321220d..917ae27b 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -42,7 +42,7 @@ jobs: - name: Run build with Gradle wrapper run: ./gradlew build --stacktrace --warning-mode all - name: Upload build reports - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 if: always() with: name: build-reports From 65166164d81b7a435845fe7d2eccd7259807ce9b Mon Sep 17 00:00:00 2001 From: Yurii Serhiichuk Date: Sun, 3 Mar 2024 17:46:05 +0100 Subject: [PATCH 17/21] Add os and Java version to build reports --- .github/workflows/ci.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 917ae27b..0163a5eb 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -24,7 +24,7 @@ jobs: runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 - - name: Set up JDK ${{ env.JAVA_VERSION }} + - name: Set up JDK ${{ matrix.java }} uses: actions/setup-java@v4 with: java-version: ${{ matrix.java }} @@ -45,7 +45,7 @@ jobs: uses: actions/upload-artifact@v4 if: always() with: - name: build-reports + name: build-reports-${{ matrix.os }}-${{ matrix.java }} path: build/reports/ - name: Run checks run: ./gradlew check test integrationTest jacocoTestReport --stacktrace --warning-mode all From 7c63474193304ee33437a779e2dcdf9085151699 Mon Sep 17 00:00:00 2001 From: Yurii Serhiichuk Date: Sun, 3 Mar 2024 17:47:18 +0100 Subject: [PATCH 18/21] Use OS and Java version in job name --- .github/workflows/ci.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 0163a5eb..d244594a 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -15,6 +15,7 @@ permissions: jobs: build: + name: Build on ${{ matrix.os }} with Java ${{ matrix.java }} strategy: fail-fast: false matrix: From e02a7750e09a9646687851dc559fe8ab775e26e9 Mon Sep 17 00:00:00 2001 From: Yurii Serhiichuk Date: Sun, 3 Mar 2024 17:50:04 +0100 Subject: [PATCH 19/21] Try building on Java 15 --- .github/workflows/ci.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index d244594a..e6d89072 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -19,7 +19,7 @@ jobs: strategy: fail-fast: false matrix: - java: [ 8, 11 ] + java: [ 8, 11, 15 ] os: [ ubuntu-22.04, macos-13 ] runs-on: ${{ matrix.os }} From b214aa3c23ef58c7196604f2e6da686b806f7ff7 Mon Sep 17 00:00:00 2001 From: Yurii Serhiichuk Date: Sun, 3 Mar 2024 17:50:30 +0100 Subject: [PATCH 20/21] Try building on other Java versions --- .github/workflows/ci.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index e6d89072..5401e556 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -19,7 +19,7 @@ jobs: strategy: fail-fast: false matrix: - java: [ 8, 11, 15 ] + java: [ 8, 11, 14, 15, 16 ] os: [ ubuntu-22.04, macos-13 ] runs-on: ${{ matrix.os }} From 8cc06197b71a71b8224c29a81a6ffd0ecdb9ae6c Mon Sep 17 00:00:00 2001 From: Yurii Serhiichuk Date: Sun, 3 Mar 2024 17:54:54 +0100 Subject: [PATCH 21/21] Drop non-buildable Java versions --- .github/workflows/ci.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 5401e556..d244594a 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -19,7 +19,7 @@ jobs: strategy: fail-fast: false matrix: - java: [ 8, 11, 14, 15, 16 ] + java: [ 8, 11 ] os: [ ubuntu-22.04, macos-13 ] runs-on: ${{ matrix.os }}