From 91ca55878dc70e7063be027e7a811f9d4fb090e1 Mon Sep 17 00:00:00 2001 From: Sam Gammon Date: Mon, 11 Mar 2024 22:24:15 -0700 Subject: [PATCH 01/15] feat(jpms): add `module-info.java` descriptors MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - feat(jpms): add `module-info.java` to `api` - chore: adjust builds where needed to release as MRJAR artifacts - chore: adjust BND tools to not interfere with MRJAR classes - chore: upgrade gradle → `7.6.4` - chore: apply updates to groovy dsl for publishing with gradle v7 Signed-off-by: Sam Gammon --- api/build.gradle | 60 ++++- api/src/main/java9/module-info.java | 10 + build.gradle | 69 +++--- gradle/wrapper/gradle-wrapper.jar | Bin 56177 -> 61624 bytes gradle/wrapper/gradle-wrapper.properties | 3 +- gradlew | 292 ++++++++++++++--------- gradlew.bat | 56 +++-- tck-flow/build.gradle | 10 + tck/build.gradle | 2 +- 9 files changed, 325 insertions(+), 177 deletions(-) create mode 100644 api/src/main/java9/module-info.java diff --git a/api/build.gradle b/api/build.gradle index c953a381..71180922 100644 --- a/api/build.gradle +++ b/api/build.gradle @@ -1,8 +1,8 @@ description = "reactive-streams" -def jdkFlow = false +def isJdk9OrGreater = false try { Class.forName("java.util.concurrent.Flow") - jdkFlow = true + isJdk9OrGreater = true } catch (ClassNotFoundException cnfe) { } @@ -10,23 +10,65 @@ try { sourceSets { main { java { - if (jdkFlow) - srcDirs = ['src/main/java', 'src/main/java9'] - else - srcDirs = ['src/main/java'] + srcDirs = ['src/main/java'] } } + if (isJdk9OrGreater) java9 { + java { + srcDirs = ['src/main/java', 'src/main/java9'] + } + } +} + +configurations { + mrjarArtifact } jar { + if (isJdk9OrGreater) into('META-INF/versions/9') { + from(sourceSets.java9.output) { + include '**/FlowAdapters*' + include '**/module-info.class' + } + } + bnd ('Bundle-Name': 'reactive-streams-jvm', 'Bundle-Vendor': 'Reactive Streams SIG', 'Bundle-Description': 'Reactive Streams API', 'Bundle-DocURL': 'http://reactive-streams.org', 'Bundle-Version': project.version, - 'Export-Package': 'org.reactivestreams.*', - 'Automatic-Module-Name': 'org.reactivestreams', - 'Bundle-SymbolicName': 'org.reactivestreams.reactive-streams' + 'Export-Package': 'org.reactivestreams.*,!META-INF.*', + 'Multi-Release': true, + 'Bundle-SymbolicName': 'org.reactivestreams.reactive-streams', + '-fixupmessages': '^Classes found in the wrong directory: .*' ) } +artifacts { mrjarArtifact jar } + +compileJava { + group = "build" + description = "Compile Java 1.6 classes" +} + +if (isJdk9OrGreater) { + compileJava9Java { + group = "build" + description = "Compile Java 9 classes for MR JAR" + + sourceCompatibility = 9 + targetCompatibility = 9 + } + + tasks.register('validateModularJar', Exec) { + dependsOn jar + inputs.file jar.outputs.files.asPath + + executable = "jar" + args = ['--describe-module', '--file', jar.outputs.files.asPath] + } + + tasks.check { + finalizedBy validateModularJar + } +} \ No newline at end of file diff --git a/api/src/main/java9/module-info.java b/api/src/main/java9/module-info.java new file mode 100644 index 00000000..9cafd456 --- /dev/null +++ b/api/src/main/java9/module-info.java @@ -0,0 +1,10 @@ +/*************************************************** + * Licensed under MIT No Attribution (SPDX: MIT-0) * + ***************************************************/ + +/** + * Reactive Streams + */ +module org.reactivestreams { + exports org.reactivestreams; +} diff --git a/build.gradle b/build.gradle index 5930f1b5..c656d2c3 100644 --- a/build.gradle +++ b/build.gradle @@ -11,6 +11,12 @@ buildscript { } } +def sonatypeRepo = 'https://oss.sonatype.org/service/local/staging/deploy/maven2/' +def sonatypeSnapshots = 'https://oss.sonatype.org/content/repositories/snapshots/' + +def distributionRepository = properties["distributionRepository"] ?: sonatypeRepo +def snapshotsRepository = properties["snapshotsRepository"] ?: sonatypeSnapshots + subprojects { apply plugin: "java-library" apply plugin: 'biz.aQute.bnd.builder' @@ -18,8 +24,10 @@ subprojects { group = "org.reactivestreams" version = "1.0.4" - sourceCompatibility = 1.6 - targetCompatibility = 1.6 + tasks.compileJava { + sourceCompatibility = 1.6 + targetCompatibility = 1.6 + } tasks.withType(JavaCompile) { configure(options) { @@ -53,14 +61,15 @@ subprojects { "reactive-streams-tck", "reactive-streams-tck-flow", "reactive-streams-examples"]) { - apply plugin: "maven" apply plugin: "signing" + apply plugin: "publishing" apply plugin: "maven-publish" signing { sign configurations.archives - required { gradle.taskGraph.hasTask(uploadArchives) } + required { gradle.taskGraph.hasTask("publish") } } + task sourcesJar(type: Jar) { classifier "sources" from sourceSets.main.allSource @@ -79,6 +88,30 @@ subprojects { } repositories { mavenLocal() + + gradle.taskGraph.whenReady { taskGraph -> + if (taskGraph.hasTask("publish")) { + def userProp = "sonatypeOssUsername" + def passwordProp = "sonatypeOssPassword" + def user = project.properties[userProp] + def password = project.properties[passwordProp] + + if ((user == null || password == null) && distributionRepository == sonatypeRepo) { + throw new InvalidUserDataException( + "Cannot perform $uploadArchives.path due to missing credentials.\n" + + "Run with command line args `-P$userProp=«username» -P$passwordProp=«password»` or add these properties to $gradle.gradleUserHomeDir/gradle.properties.\n") + } + + repository(url: distributionRepository) { + authentication(userName: user, password: password) + } + if (sonatypeSnapshots != "") { + snapshotRepository(url: snapshotsRepository) { + authentication(userName: user, password: password) + } + } + } + } } } @@ -86,34 +119,6 @@ subprojects { archives sourcesJar, javadocJar } - uploadArchives { - repositories { - mavenDeployer { - gradle.taskGraph.whenReady { taskGraph -> - if (taskGraph.hasTask(uploadArchives)) { - def userProp = "sonatypeOssUsername" - def passwordProp = "sonatypeOssPassword" - def user = project.properties[userProp] - def password = project.properties[passwordProp] - - if (user == null || password == null) { - throw new InvalidUserDataException( - "Cannot perform $uploadArchives.path due to missing credentials.\n" + - "Run with command line args `-P$userProp=«username» -P$passwordProp=«password»` or add these properties to $gradle.gradleUserHomeDir/gradle.properties.\n") - } - - repository(url: "https://oss.sonatype.org/service/local/staging/deploy/maven2/") { - authentication(userName: user, password: password) - } - snapshotRepository(url: "https://oss.sonatype.org/content/repositories/snapshots/") { - authentication(userName: user, password: password) - } - } - } - } - } - } - tasks.withType(Upload) { repositories.withType(MavenResolver) { it.beforeDeployment { signing.signPom(it) } diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 94336fcae912db8a11d55634156fa011f4686124..afba109285af78dbd2a1d187e33ac4f87c76e392 100644 GIT binary patch delta 53461 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

B$0S=!0DR$!S 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 Gr+)!&EDf*# delta 48346 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 QCg?{WB%JU7!h(VQKclU18vp \(.*\)$'` - 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_NAME="Gradle" -APP_BASE_NAME=`basename "$0"` +# 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="" +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,105 @@ 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*) + # 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 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")" +# 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 \ + "$@" + +# 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. +# +# 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..6689b85b 100755 --- a/gradlew.bat +++ b/gradlew.bat @@ -1,4 +1,20 @@ -@if "%DEBUG%" == "" @echo off +@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 @rem Gradle startup script for Windows @@ -9,19 +25,23 @@ 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% +@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% equ 0 goto execute echo. echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. @@ -35,7 +55,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,38 +65,26 @@ 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 -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 diff --git a/tck-flow/build.gradle b/tck-flow/build.gradle index 2dd1d409..9fd8a150 100644 --- a/tck-flow/build.gradle +++ b/tck-flow/build.gradle @@ -1,5 +1,7 @@ description = 'reactive-streams-tck-flow' + dependencies { + api project(path: ':reactive-streams', configuration: 'mrjarArtifact') api project(':reactive-streams-tck') implementation project(':reactive-streams-examples') } @@ -16,4 +18,12 @@ jar { ) } +compileJava { + options.release = 9 +} + +compileTestJava { + options.release = 9 +} + test.useTestNG() diff --git a/tck/build.gradle b/tck/build.gradle index b5424c9f..18dbdbfc 100644 --- a/tck/build.gradle +++ b/tck/build.gradle @@ -1,7 +1,7 @@ description = 'reactive-streams-tck' dependencies { api group: 'org.testng', name: 'testng', version:'7.3.0' - api project(':reactive-streams') + api project(path: ':reactive-streams', configuration: 'mrjarArtifact') implementation project(':reactive-streams-examples') } From ea9b8b21a5053cc8888fba7cbb683feb42ac3837 Mon Sep 17 00:00:00 2001 From: Sam Gammon Date: Tue, 12 Mar 2024 18:16:07 -0700 Subject: [PATCH 02/15] =?UTF-8?q?chore:=20upgrade=20gradle=20=E2=86=92=20`?= =?UTF-8?q?8.6`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Sam Gammon --- gradle/wrapper/gradle-wrapper.jar | Bin 61624 -> 43462 bytes gradle/wrapper/gradle-wrapper.properties | 3 ++- gradlew | 29 +++++++++++++---------- gradlew.bat | 20 ++++++++-------- 4 files changed, 29 insertions(+), 23 deletions(-) diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index afba109285af78dbd2a1d187e33ac4f87c76e392..d64cd4917707c1f8861d8cb53dd15194d4248596 100644 GIT binary patch literal 43462 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 literal 61624 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�Zy z^6AJh1X3pXq!CBB#`$5K8SM`A8- zu91@KW`jScvm}!^xaOr;l$}&)!qA=c4=tjb*AM^d9ZpDQjv*NDBXOUm9fM235A&Im zWb|jcBV^{}f>q*lY$s)A{g3K~i*dC}iz|ddMG+h2%gJJkYA%43!xj8A# zx}S=RPcxSSrC^je-O9-uG*4zN`%yO%D|8Y(M!;etj}#5<%)tweodG864mERu+wUwi zqO?7XNoGj5REy(>@FR?cmjdtzHh0Uyxc{bl7pq)x$iETy-gSOl4<=ay@B=!9(wjJhfW}ymgfT)tNU6b0S)wq zMeKw$AI+3w&@(KkXo2zZi+rD-;<`>S;(xh}N&A!yleW!DXaff`xq(&MU0v$=thsf{ zg(^n}x}gz%(ZMmnHv?lM149>hnCRcQl$2k+_R4YyxfW?lIfN`D`XCfH^dukp(N-@j zMOjDZSdpW2Zto4Xiwh$>MX#mx)#OxcM|qz7llutxlZ_J1E-I`Y&pzh)RfL03EK;d5 zsT1+B_S@MLCz)zQys)rDnV4a5!lT8<#kf<49)lNk;@0XW#dWoeCWlSU+e{zMyS1wNXB%6Un^?S8n~Jr%mk_^NT02xU zcTMjr6I|wbWAcf|&V@-_UA*XcHhl7mB~=D;T8nHdVRQX{LQT~{H7`n|hq82!6^^Qw zk3=bdrx(+2sKb?>S1*r#`#OK-jkDlW+^JkfcM1$YFJ9fi*s(8+3Ci?UHN7bY? zh4N;Ruf^YWl3Qug_Tt8ssOAr0u~l&@T3xKa)~WpBgpn}4a($+RfpKJts{-~X3lBbV zc}00$dp*~Rd#{MEJ)=}o%Ba+MxXj)G#S95An)W3pi<`?g$LYqs4y$@&P;h2dic|#Y zLG)4ki^^AYUpsZAtoN-`*PqRPm+BW{Sv93rQm8yHt2BO(SDmGJrDwCJ{h{LXJS+K? zT1`EUhgnKGwTy3CHN7c~OstGDJK;&0nUisI+TC|(NNeXbcpIy&DJ~-gy%PgMJwLdo zM-N=_#u(Fd`$DV<|BjAmhg*xPy8UhsziP>UzRJia${pQz)OyY|sn2Gsb@F5HMbeG4MJ)A6 zip8_D9EG_-mY)rt>E9tGKb6fE<=v;PY4-MR6_G!&r%+)@O^Sbo&N-QmW{8WLEyL}XI25|Lqcq;31FtfOg)YjO+kPkZx<1Xmr5EtjPCpi(FSH)6*cL~Wd3u@NkeeRsqV;PX~8DoAyr~*@QZEkWN8=j68 zK#oirFgtzpre!U$S(>lCULpEEsv^+Ew$A>6ZcsaAzLnn&J!{=Ke|!u)B`dFIl( z?vlF5euE?z5|cU)OPbl|@}Y3*ZkOOxEGXmrJOU-KoLFT{TuqWvZCG2==*;<06n)skW(dvAJ*9=S9v^7qHS$`Dl`eJ81@Mlj~ z%Bo)zV6lv$?7RyQZk6arskVWO0fvBrre8Jb*1R-cnz|i~~_ZLzp^Z zdUn~P6=9O$!Q)VJRz{VIA?$9b0acoc>g7?zFWpmZ`LCh`ie2bgsRy+C*Kf9A&<|h` zsZ76F{`l!LU2>tQjr$3#kYM{%d`Isn`WyaKUjrDwRSP0!kYpX9^R#RX!bjqmXkl!N zs))gf1ol~L3Xef4B?`<1GD_lBnuW{~+??9GRAgt)(@DZTFH|4Pb1o4CG6_f6rtEL@s<5ctjNIRvCMi=l?B-P+D8i*$H^-jz8Z{US(1{-DrHKNdc1xhp*${Nt%oj8oK2`gW#Eln z_W0bDj>|ck)XEBq1P`QeJDFebd}11SLV)K$4t+l=Q{P6MQl7?TD{C;U&*dbLVA^+O|OPt6jn6n7E<+DFOlud1?|k`TpU64 z;$jlu4;R1(yvFk@WgytV_g~pmB`+$<$!chFsmh@uY-a&yhCdS66WdAK#PQ(!wie!> za^US|K-U#D3pwGEmZaAO5FGbBetWB&z!hL(Y#21lO< z==S{#=CQN3-q!B>xq*jTqmfoF$8F`mZFNt^eYl~ZfNo4ZesiHf6ckDWcr$E=Jljnf2>9=rB~7>G4$a`w_O`ZQ>r=(b4ho+AfwCzm=D{`` zxKUQ313J(GXdjVXY;es$Y=PrSl(Ox@gV<_27CbzWPkyI|JZNrZP?!DnC<2`dh3H?f zl1?xeTOery;+#Pp_VzDOo33PR@(U$^hXMHgO(zGQ-u@f@FXqv(zXpH6P(7H2 z_BZ4J^&wCtEkGBMvvP8VYq*&1nE&7&Q|V%yoCd7S0*oDU|z z;;3i(25RC0#+>LbI=E&a?3fNgAO*FscLLGy4pEgQ+a;py{$7t;FDno1Gd|q8GdaBptjT1bT9H=(4$xg(a^;9al$zc!KrKq zG}eBa?`J81tSKCNupu9b9huAk)ms5{`wf}KcL*v~D`#g=p`T=682*7N*bv<$7ceyg zru~&l5j+Ib4uzYE6ZEf@!Y__6tN~QHfa>f%`(*+Ln!mQ$PpZE)QXFUfR5qAR(m^-e zcFWmK8Hh44whl@1*Qy9}vM%I+s+5DNeg8-*21Yz2%g21|mWF5LAD))kxG9Vie$C1GCQds%bZ6Ads?$z`tU5 z?SB|JXQy=zH6(LHy8kTU;v!ohrDI+JF=6#HPj6L z|5+8_zB(ti&9ez=A-s>L*YYw(a_ang3D#00_4+d%7%~TH_MtMMYJ%-CwE6y#;b4P%poCH0gPXelM>tU415{2?ON$z{cn`ie z;z0Pn#V|%CK#d2vM=<>0K!X2{4v7kl8m4a#Iw|o$Xq2FRsCcNs@b>U-CLN5oKQtaH z9%}rWJv`>@KjQr!%?1_vJW5cJJ?QzIKS3Yd$56fS_t3Dxe#5^OH@lP3zkTvii-zhZ zy$4p>cp%t5huZ&gnnqa?_nIo@#~ChARYp9>ReiBVku_RyDJ v9f-cOr*eQp04g-<;pZOo<=#I*?>`DvQ^o}A^zD`USu`GEG&HBt?O*=~soeXc diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index c7d437bb..a80b22ce 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.4-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-bin.zip networkTimeout=10000 +validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew index 65dcd68d..1aa94a42 100755 --- a/gradlew +++ b/gradlew @@ -83,10 +83,8 @@ done # 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"' +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum @@ -133,10 +131,13 @@ location of your Java installation." fi else 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. + if ! command -v java >/dev/null 2>&1 + then + 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 location of your Java installation." + fi fi # Increase the maximum file descriptors if we can. @@ -144,7 +145,7 @@ 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 + # shellcheck disable=SC2039,SC3045 MAX_FD=$( ulimit -H -n ) || warn "Could not query maximum file descriptor limit" esac @@ -152,7 +153,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then '' | soft) :;; #( *) # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC3045 + # shellcheck disable=SC2039,SC3045 ulimit -n "$MAX_FD" || warn "Could not set maximum file descriptor limit to $MAX_FD" esac @@ -197,11 +198,15 @@ if "$cygwin" || "$msys" ; then done 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. + +# 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"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. set -- \ "-Dorg.gradle.appname=$APP_BASE_NAME" \ diff --git a/gradlew.bat b/gradlew.bat index 6689b85b..7101f8e4 100755 --- a/gradlew.bat +++ b/gradlew.bat @@ -43,11 +43,11 @@ set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 if %ERRORLEVEL% equ 0 goto execute -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail @@ -57,11 +57,11 @@ set JAVA_EXE=%JAVA_HOME%/bin/java.exe if exist "%JAVA_EXE%" goto execute -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail From 0105e7d23e317ac8dbec9f05c3cb3c6415112ab4 Mon Sep 17 00:00:00 2001 From: Sam Gammon Date: Tue, 12 Mar 2024 18:16:19 -0700 Subject: [PATCH 03/15] chore: add jdk 21 to ci Signed-off-by: Sam Gammon --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0198d133..a30e77d4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - java: [ '8', '11' ] + java: [ '8', '11', '21' ] steps: - uses: actions/checkout@v2 - name: Set up JDK From d7bbd9d556e655e4c44ec1847a81d362cc27f373 Mon Sep 17 00:00:00 2001 From: Sam Gammon Date: Tue, 12 Mar 2024 18:20:21 -0700 Subject: [PATCH 04/15] chore: build refactors + cleanup for gradle `8.x` - chore: use gradle toolchains instead of enforcing build jdk - chore: update bnd plugin Signed-off-by: Sam Gammon --- api/build.gradle | 52 +++++++++++++++++-------------------------- build.gradle | 25 ++++++++++----------- examples/build.gradle | 6 +++-- settings.gradle | 34 +++++++++------------------- tck-flow/build.gradle | 20 +++++++++-------- tck/build.gradle | 37 ++++++++++++++++++++++-------- 6 files changed, 86 insertions(+), 88 deletions(-) diff --git a/api/build.gradle b/api/build.gradle index 71180922..12e9dee9 100644 --- a/api/build.gradle +++ b/api/build.gradle @@ -1,11 +1,4 @@ description = "reactive-streams" -def isJdk9OrGreater = false -try { - Class.forName("java.util.concurrent.Flow") - isJdk9OrGreater = true -} catch (ClassNotFoundException cnfe) { - -} sourceSets { main { @@ -13,7 +6,7 @@ sourceSets { srcDirs = ['src/main/java'] } } - if (isJdk9OrGreater) java9 { + java9 { java { srcDirs = ['src/main/java', 'src/main/java9'] } @@ -25,14 +18,15 @@ configurations { } jar { - if (isJdk9OrGreater) into('META-INF/versions/9') { + into('META-INF/versions/9') { from(sourceSets.java9.output) { include '**/FlowAdapters*' include '**/module-info.class' } } - bnd ('Bundle-Name': 'reactive-streams-jvm', + bundle { + bnd('Bundle-Name': 'reactive-streams-jvm', 'Bundle-Vendor': 'Reactive Streams SIG', 'Bundle-Description': 'Reactive Streams API', 'Bundle-DocURL': 'http://reactive-streams.org', @@ -41,34 +35,28 @@ jar { 'Multi-Release': true, 'Bundle-SymbolicName': 'org.reactivestreams.reactive-streams', '-fixupmessages': '^Classes found in the wrong directory: .*' - ) + ) + } } artifacts { mrjarArtifact jar } -compileJava { +compileJava9Java { group = "build" - description = "Compile Java 1.6 classes" -} - -if (isJdk9OrGreater) { - compileJava9Java { - group = "build" - description = "Compile Java 9 classes for MR JAR" + description = "Compile Java 9 classes for MR JAR" - sourceCompatibility = 9 - targetCompatibility = 9 - } + sourceCompatibility = 9 + targetCompatibility = 9 +} - tasks.register('validateModularJar', Exec) { - dependsOn jar - inputs.file jar.outputs.files.asPath +tasks.register('validateModularJar', Exec) { + dependsOn jar + inputs.file jar.outputs.files.asPath - executable = "jar" - args = ['--describe-module', '--file', jar.outputs.files.asPath] - } + executable = "jar" + args = ['--describe-module', '--file', jar.outputs.files.asPath] +} - tasks.check { - finalizedBy validateModularJar - } -} \ No newline at end of file +tasks.check { + finalizedBy validateModularJar +} diff --git a/build.gradle b/build.gradle index c656d2c3..e06e776a 100644 --- a/build.gradle +++ b/build.gradle @@ -1,14 +1,5 @@ -buildscript { - repositories { - jcenter() - mavenCentral() - maven { - url "https://plugins.gradle.org/m2/" - } - } - dependencies { - classpath "biz.aQute.bnd:biz.aQute.bnd.gradle:4.3.1" - } +plugins { + id "biz.aQute.bnd.builder" version "7.0.0" apply false } def sonatypeRepo = 'https://oss.sonatype.org/service/local/staging/deploy/maven2/' @@ -17,6 +8,9 @@ def sonatypeSnapshots = 'https://oss.sonatype.org/content/repositories/snapshots def distributionRepository = properties["distributionRepository"] ?: sonatypeRepo def snapshotsRepository = properties["snapshotsRepository"] ?: sonatypeSnapshots +def baselineToolchain = properties["javaBaseline"] ?: '11' +def javaMaximumTarget = properties["javaTarget"] ?: '21' + subprojects { apply plugin: "java-library" apply plugin: 'biz.aQute.bnd.builder' @@ -25,8 +19,13 @@ subprojects { version = "1.0.4" tasks.compileJava { + group = "build" + description = "Compile Java 1.6 classes" sourceCompatibility = 1.6 targetCompatibility = 1.6 + javaCompiler = javaToolchains.compilerFor { + languageVersion = JavaLanguageVersion.of(baselineToolchain) + } } tasks.withType(JavaCompile) { @@ -71,12 +70,12 @@ subprojects { } task sourcesJar(type: Jar) { - classifier "sources" + archiveClassifier = "sources" from sourceSets.main.allSource } task javadocJar(type: Jar) { - classifier "javadoc" + archiveClassifier = "javadoc" from javadoc } diff --git a/examples/build.gradle b/examples/build.gradle index ec4ee871..5b04b5b2 100644 --- a/examples/build.gradle +++ b/examples/build.gradle @@ -5,7 +5,8 @@ dependencies { } jar { - bnd ('Bundle-Name': 'reactive-streams-jvm', + bundle { + bnd('Bundle-Name': 'reactive-streams-jvm', 'Bundle-Vendor': 'Reactive Streams SIG', 'Bundle-Description': 'Reactive Streams Examples', 'Bundle-DocURL': 'http://reactive-streams.org', @@ -13,7 +14,8 @@ jar { 'Export-Package': 'org.reactivestreams.example.*', 'Automatic-Module-Name': 'org.reactivestreams.examples', 'Bundle-SymbolicName': 'org.reactivestreams.examples' - ) + ) + } } test.useTestNG() diff --git a/settings.gradle b/settings.gradle index 866ecf93..b6cefcd7 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,33 +1,21 @@ -rootProject.name = 'reactive-streams' +pluginManagement { + repositories { + gradlePluginPortal() + } +} -def jdkFlow = false +plugins { + id "org.gradle.toolchains.foojay-resolver-convention" version "0.8.0" +} -final def ANSI_RESET = "\u001B[0m" -final def ANSI_RED = "\u001B[31m" -final def ANSI_GREEN = "\u001B[32m" -final def ANSI_YELLOW = "\u001B[33m" +rootProject.name = 'reactive-streams' -try { - Class.forName("java.util.concurrent.Flow") - jdkFlow = true - println(ANSI_GREEN + " INFO: ------------------ JDK9 classes detected ---------------------------------" + ANSI_RESET) - println(ANSI_GREEN + " INFO: Java 9 Flow API found; Including [tck-flow] & FlowAdapters in build. " + ANSI_RESET) - println(ANSI_GREEN + " INFO: --------------------------------------------------------------------------" + ANSI_RESET) -} catch (Throwable ex) { - // Flow API not available - println(ANSI_RED + "WARNING: -------------------- JDK9 classes NOT detected -----------------------------" + ANSI_RESET) - println(ANSI_RED + "WARNING: Java 9 Flow API not found; Not including [tck-flow] & FlowAdapters in build." + ANSI_RESET) - println(ANSI_RED + "WARNING: In order to execute the complete test-suite run the build using JDK9+. " + ANSI_RESET) - println(ANSI_RED + "WARNING: ----------------------------------------------------------------------------" + ANSI_RESET) -} +def jdkFlow = false include ':reactive-streams' include ':reactive-streams-tck' include ':reactive-streams-examples' - -if (jdkFlow) { - include ':reactive-streams-tck-flow' -} +include ':reactive-streams-tck-flow' project(':reactive-streams').projectDir = "$rootDir/api" as File project(':reactive-streams-tck').projectDir = "$rootDir/tck" as File diff --git a/tck-flow/build.gradle b/tck-flow/build.gradle index 9fd8a150..27d3ea07 100644 --- a/tck-flow/build.gradle +++ b/tck-flow/build.gradle @@ -7,15 +7,17 @@ dependencies { } jar { - bnd ('Bundle-Name': 'reactive-streams-jvm', - 'Bundle-Vendor': 'Reactive Streams SIG', - 'Bundle-Description': 'Reactive Streams TCK Flow', - 'Bundle-DocURL': 'http://reactive-streams.org', - 'Bundle-Version': project.version, - 'Export-Package': 'org.reactivestreams.tck.flow.*', - 'Automatic-Module-Name': 'org.reactivestreams.tckflow', - 'Bundle-SymbolicName': 'org.reactivestreams.tckflow' - ) + bundle { + bnd ('Bundle-Name': 'reactive-streams-jvm', + 'Bundle-Vendor': 'Reactive Streams SIG', + 'Bundle-Description': 'Reactive Streams TCK Flow', + 'Bundle-DocURL': 'http://reactive-streams.org', + 'Bundle-Version': project.version, + 'Export-Package': 'org.reactivestreams.tck.flow.*', + 'Automatic-Module-Name': 'org.reactivestreams.tckflow', + 'Bundle-SymbolicName': 'org.reactivestreams.tckflow' + ) + } } compileJava { diff --git a/tck/build.gradle b/tck/build.gradle index 18dbdbfc..1eb0e2dd 100644 --- a/tck/build.gradle +++ b/tck/build.gradle @@ -6,15 +6,34 @@ dependencies { } jar { - bnd ('Bundle-Name': 'reactive-streams-jvm', - 'Bundle-Vendor': 'Reactive Streams SIG', - 'Bundle-Description': 'Reactive Streams TCK', - 'Bundle-DocURL': 'http://reactive-streams.org', - 'Bundle-Version': project.version, - 'Export-Package': 'org.reactivestreams.tck.*', - 'Automatic-Module-Name': 'org.reactivestreams.tck', - 'Bundle-SymbolicName': 'org.reactivestreams.tck' - ) + bundle { + bnd ('Bundle-Name': 'reactive-streams-jvm', + 'Bundle-Vendor': 'Reactive Streams SIG', + 'Bundle-Description': 'Reactive Streams TCK', + 'Bundle-DocURL': 'http://reactive-streams.org', + 'Bundle-Version': project.version, + 'Export-Package': 'org.reactivestreams.tck.*', + 'Automatic-Module-Name': 'org.reactivestreams.tck', + 'Bundle-SymbolicName': 'org.reactivestreams.tck' + ) + } +} + +compileTestJava { + sourceCompatibility = 6 + targetCompatibility = 6 + + javaCompiler = javaToolchains.compilerFor { + // Always compile the TCK baseline tests on JDK 11. + languageVersion = JavaLanguageVersion.of(11) + } +} + +test { + javaLauncher = javaToolchains.launcherFor { + // Always run the TCK baseline tests on JDK 11. + languageVersion = JavaLanguageVersion.of(11) + } } test.useTestNG() From 1ca8d5b18990f38ece5a70be36169310aabfdbcf Mon Sep 17 00:00:00 2001 From: Sam Gammon Date: Tue, 12 Mar 2024 18:20:42 -0700 Subject: [PATCH 05/15] chore: enable gradle dependency locking Signed-off-by: Sam Gammon --- build.gradle | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/build.gradle b/build.gradle index e06e776a..347ea52e 100644 --- a/build.gradle +++ b/build.gradle @@ -18,6 +18,10 @@ subprojects { group = "org.reactivestreams" version = "1.0.4" + dependencyLocking { + lockAllConfigurations() + } + tasks.compileJava { group = "build" description = "Compile Java 1.6 classes" From c02546ce6e957110e0e2a7df0903415bb0fc94e2 Mon Sep 17 00:00:00 2001 From: Sam Gammon Date: Tue, 12 Mar 2024 18:21:08 -0700 Subject: [PATCH 06/15] chore: generate lockfiles Signed-off-by: Sam Gammon --- api/gradle.lockfile | 4 ++++ examples/gradle.lockfile | 20 ++++++++++++++++++++ reactive-streams-tck-flow/gradle.lockfile | 4 ++++ tck/gradle.lockfile | 20 ++++++++++++++++++++ 4 files changed, 48 insertions(+) create mode 100644 api/gradle.lockfile create mode 100644 examples/gradle.lockfile create mode 100644 reactive-streams-tck-flow/gradle.lockfile create mode 100644 tck/gradle.lockfile diff --git a/api/gradle.lockfile b/api/gradle.lockfile new file mode 100644 index 00000000..802de85f --- /dev/null +++ b/api/gradle.lockfile @@ -0,0 +1,4 @@ +# This is a Gradle generated file for dependency locking. +# Manual edits can break the build and are not advised. +# This file is expected to be part of source control. +empty=annotationProcessor,baseline,compileClasspath,java9AnnotationProcessor,java9CompileClasspath,java9RuntimeClasspath,mrjarArtifact,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath diff --git a/examples/gradle.lockfile b/examples/gradle.lockfile new file mode 100644 index 00000000..5bd8afe0 --- /dev/null +++ b/examples/gradle.lockfile @@ -0,0 +1,20 @@ +# This is a Gradle generated file for dependency locking. +# Manual edits can break the build and are not advised. +# This file is expected to be part of source control. +aopalliance:aopalliance:1.0=testCompileClasspath,testRuntimeClasspath +com.beust:jcommander:1.78=testCompileClasspath,testRuntimeClasspath +com.google.code.findbugs:jsr305:3.0.2=testCompileClasspath,testRuntimeClasspath +com.google.errorprone:error_prone_annotations:2.1.3=testCompileClasspath,testRuntimeClasspath +com.google.guava:guava:25.1-android=testCompileClasspath,testRuntimeClasspath +com.google.inject:guice:4.2.2=testCompileClasspath,testRuntimeClasspath +com.google.j2objc:j2objc-annotations:1.1=testCompileClasspath,testRuntimeClasspath +javax.inject:javax.inject:1=testCompileClasspath,testRuntimeClasspath +junit:junit:4.12=testCompileClasspath,testRuntimeClasspath +org.apache.ant:ant-launcher:1.10.3=testCompileClasspath,testRuntimeClasspath +org.apache.ant:ant:1.10.3=testCompileClasspath,testRuntimeClasspath +org.checkerframework:checker-compat-qual:2.0.0=testCompileClasspath,testRuntimeClasspath +org.codehaus.mojo:animal-sniffer-annotations:1.14=testCompileClasspath,testRuntimeClasspath +org.hamcrest:hamcrest-core:1.3=testCompileClasspath,testRuntimeClasspath +org.testng:testng:7.3.0=testCompileClasspath,testRuntimeClasspath +org.yaml:snakeyaml:1.21=testCompileClasspath,testRuntimeClasspath +empty=annotationProcessor,baseline,compileClasspath,runtimeClasspath,testAnnotationProcessor diff --git a/reactive-streams-tck-flow/gradle.lockfile b/reactive-streams-tck-flow/gradle.lockfile new file mode 100644 index 00000000..e02380ea --- /dev/null +++ b/reactive-streams-tck-flow/gradle.lockfile @@ -0,0 +1,4 @@ +# This is a Gradle generated file for dependency locking. +# Manual edits can break the build and are not advised. +# This file is expected to be part of source control. +empty=annotationProcessor,baseline,compileClasspath,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath diff --git a/tck/gradle.lockfile b/tck/gradle.lockfile new file mode 100644 index 00000000..2b1a5702 --- /dev/null +++ b/tck/gradle.lockfile @@ -0,0 +1,20 @@ +# This is a Gradle generated file for dependency locking. +# Manual edits can break the build and are not advised. +# This file is expected to be part of source control. +aopalliance:aopalliance:1.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +com.beust:jcommander:1.78=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +com.google.code.findbugs:jsr305:3.0.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +com.google.errorprone:error_prone_annotations:2.1.3=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +com.google.guava:guava:25.1-android=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +com.google.inject:guice:4.2.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +com.google.j2objc:j2objc-annotations:1.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +javax.inject:javax.inject:1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +junit:junit:4.12=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +org.apache.ant:ant-launcher:1.10.3=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +org.apache.ant:ant:1.10.3=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +org.checkerframework:checker-compat-qual:2.0.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +org.codehaus.mojo:animal-sniffer-annotations:1.14=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +org.hamcrest:hamcrest-core:1.3=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +org.testng:testng:7.3.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +org.yaml:snakeyaml:1.21=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +empty=annotationProcessor,baseline,testAnnotationProcessor From 0d83b75e76fb56985b32d8986cbb335131db4fc9 Mon Sep 17 00:00:00 2001 From: Sam Gammon Date: Tue, 12 Mar 2024 18:21:17 -0700 Subject: [PATCH 07/15] chore: generate dependency verification metadata Signed-off-by: Sam Gammon --- gradle/verification-keyring.gpg | Bin 0 -> 28509 bytes gradle/verification-keyring.keys | 813 +++++++++++++++++++++++++++++++ gradle/verification-metadata.xml | 150 ++++++ 3 files changed, 963 insertions(+) create mode 100644 gradle/verification-keyring.gpg create mode 100644 gradle/verification-keyring.keys create mode 100644 gradle/verification-metadata.xml diff --git a/gradle/verification-keyring.gpg b/gradle/verification-keyring.gpg new file mode 100644 index 0000000000000000000000000000000000000000..b7a872ab21741ccd450a62eceb2732267719b541 GIT binary patch literal 28509 zcmaHTb97yA*X_xPZQFJltFfI%jcwZv8#gu@+qP}HaT+^~Z}P+UzT=MX-u#oZadyU7 zd#?GcIoEoU0`e1#2Zclq84NH3!(XcO$zyu~h|MRgSAcwCsXuHX>!d%U*U%?}32HG# zFuyjny9)Gw+#7DZa*wWA_-eT>pjG@@ORjhE*6!7P|8i7Z(5YGLiI&`8KpTDNzOKuT z?1jOpmCTe}){3coA4ww2O_ydL)foWoB*Bp#8S8(^A_~Ucc7|Y^I*16!-d{+`tez}M%!*7HTbYwJ)QC&&{_vg$=;FD+0DkkK`LcV{6lLI5 z%jS+qAw8#mHc5I5P`CN_h>f4n3WBrw3ZQlfMpZ5%C&bKP*O?d=W_cT%q?e0>FAn%_l- zDUJCsm8$L>Ir?LCeM&R#vJotcpM#04`szWdxsF~b-CMmo)Hbxbo=TeXyP#!`WWthz z1Kyj9ml6lv14n;Lbz773Cwud8+QbM$z;P*d@fL2~SOa8lxHuR}(DV?v87(OQ6dd%G z&z!;rzM#AyJ{9bwr?Cx6j}`(F{lSFdn4;vyuO2tZna@4H7P<^U3s9L4>Xg8FsIS2k z+MuZ~iC@we<7bDq!8sBio=S|~l_!a6+oN|%c+LiCrxUD5hm>n{nX#W!o*q(Lozanm zZ2wSa;4bv+Ekx;Ie4(jJu=IL zMA1MC9X>VnE_&@(boyT@?_rm(Hbnt}0@PBEnr@vu_x-BNGujG-Bh}Z>8y|!D<){g( zRff;`8I$j=u}79WA5)A@dW69asn!F_-3nV3N!o!B@|$%FT6zs-EM)I&`9aI|10_qv zcT#x@iUP|!drJTT0lYODb6xnI@V^6cVa^0hfFymtRjs@DJ>lDV{?7$l$aOtm}7!7|(45Ft0 z?1;P+7rh%4P$J%_;|x=}4y0as0b&D?K>#3iv?{jNL?XsER>tl`RE~!F4(?92*3?A2 zP7FqWofI_Gw{g-pV6ZWE;{Oi935E&+1dxCOKVk^P1%-fxhJpkILZCwdp;;O zb4)_wMZDHUWC~k4iwBQ-isZgR+Bj!3Zn3|Z&L&J$VMFU=`k;BItDwLEXl=WY!R9hj ztD$7#lyvXR;wmhU2U!Zh5+x1}F)l)r;fI+0(of52r$f|YCZIzB3|vqg`<IQI>h4cLPS^2SO|;1nDiXw=N0>n>r0E5!z(22bygk;V3{B(sL|aT#oR3=?s?QNOrp}$2~g^&|H)?WTh4i)Ydp<4Ae%+`8;MXQZ⋘&z2Z`LM~ak7TRVkF(KOdj6HX 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 Ov3{O?2j@W5X#IcJGYx+L literal 0 HcmV?d00001 diff --git a/gradle/verification-keyring.keys b/gradle/verification-keyring.keys new file mode 100644 index 00000000..046b2f7a --- /dev/null +++ b/gradle/verification-keyring.keys @@ -0,0 +1,813 @@ +pub A2115AE15F6B8B72 +sub 6366592024774157 +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: BCPG v1.68 + +mQGiBDsSIk4RBADSCj6rUjV64tYCGT1DYKYR7GthyWpNdGHSYLbETBcDatAe1dzQ +5NsCgfrlybfyeY+y1lxr3T9bqf6zJWDw/718wff96qmmv1qzexSYtmIrj+h53V82 +EXwWOFuYMJisuxdT940iQzosm3GOv4MJdEg3oI2SgfEyRQQ6vO4Ob5rHDwCg5taZ +nrHOrXx2dIGHxpxRZ0SUl30D/jmtttFjYOQ3LBMriikz5mh2sK3ZnoSRF4o5O0zW +Ve6e2SFXOEjVjImKsH6KCbdQNelrAdgiyOoXClyQKsQ27pncbdWo6bO0E3POJZVm +XaeW7iudHVr63rU5PViXObIQrdQl0D59j5brKj4vdlTyUw8kaHPvbKPDEOwvZq4Y +LJQ5BACA1YilTeXRJqwFsNlpcxCHwlULD4QUVP496prQWf1B7Z6g0KvLGrQsO0Vn +Jcn+fEqukysTJixSXCPebosltd4RalJIupVYkp4w6MJ7biaDAlLuNhDcI/AiXTmV +dXUedVXIaM8I3Ne23gucwbAyc0Hvb+3cSAKRhl/azFQhuHBvlrkBDQQ7EiJUEAQA +zVKWS8QrkysydbTJu2/14wIbz2Coi93aAGelwCwXSxf50JpYdY3Lkcvd0FqT8bcE +nz43MCSx8vlKubQtUpx9WMGIb4ixtShLJ4lAa6FJldhychz/dnxSNyz5N8W6sby4 +dTVxac0rloxjAOurGanhG7TMtgfDi0cEEoXRyAVoKyMAAwUD/j1pJm4Npq2mlJoE +7MK3vAhgKwYHFflmJusmqvSAtRuFdT15pbMJrA5bAK+lA3SVOOhhWTCItlphSR2q +xJCAcBTeOMqUi5ohFcCkSRNvwmDtH+80B3BehlEsEKNk8Z3moa2ch7Oxnb6XEXH5 +tGJ5Qvx9Qid6ZfBaXx7bc8yKyCb4iGUEGBECAAYFAjsSIlQAKQkQohFa4V9ri3IW +IQTOgHWiUVR77iSbwVGiEVrhX2uLcgdlR1BHAAEBDTIAoJ3NtpI/E345LVOruElF +KrnduWWXAJ9Adm9Mz4yoxrosHSkp5BWzXBUt4A== +=AtDT +-----END PGP PUBLIC KEY BLOCK----- + +pub A6ADFC93EF34893E +uid Tom Denley (scarytom) + +sub 9C4C23E6FFE405BD +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: BCPG v1.68 + +mQENBE+xZxIBCACzKctn4ez8xOC0pGThhAwjYWGkzcwK4HNaC1usHThBFz3/t8JN +OqUXRixLyi5wELN6GHlsGVUQS3IfB4JtuhScsieSB8PTree68/knMq6JI08mJqZr +9nFrAB4eDW0UMbSL9kPmclUm/yN+qcCZBrsVn0q6CWb/Kcd8EEXEu6sGILzOGqGe +d433t5O+tGXWL2TjAz+Scsk2Hf4zcuDeQcxELAMnVaVgKuGuEZvibrjsdIvJDGI+ +0BzWIu8ZP8ldBl4SVtzGpEVzLvDUo3mOqBeTkj3rP7xLtFDN/3AFtowbLfL7L2Pg +SMcTnKK+jfFHRfbHP1Ih3rQ4ilLzhCnY/QIZABEBAAG0K1RvbSBEZW5sZXkgKHNj +YXJ5dG9tKSA8dC5kZW5sZXlAY2FudGFiLm5ldD6JATgEEwECACIFAk+xZxICGwMG +CwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEKat/JPvNIk+ysEH/iY5dP/4ERAQ +8YC1j1XoYmMxW219uzxZfwI0ltLtPjGQlZbwlFvwjZk0nDJ6O1iZSeZQm804uRup +gUZe3wqOp7a7z5zHab93QD/nA7O9QmLf2RC7Y0mW0EvD0tfbCzt6JJkAaxKTDA+T +jFoukUZx2KJr0XToE6kwAnKmCgyFkzb2SUqfsBRNRBJBa6XG/1mAtDJJSM1XLChV +Sa9nLwYjZzIcebtmtQ1vVqovO74ixxEzonLlNZi7tkc3GS23yntf5tAH0bQ9bM68 +TB9RHpLvjGgHUJtghFQN/Ny+//q1EsjRGn6Pa20cUPxnMS+WguOYIQx5jTb9ZHA0 +WBcu/V4UL8W5AQ0ET7FnEgEIAM3i3e1sjwrx2PN8XYMPQWG+/YTtw1BYDl2+iYE+ +LaZvtq1hpbgeCLgEVwXrCJ4spLP1rFXogWqKrkJ0LRjlpdKhKBvyH1ex4grh3cWN +/bIDJcJ7JA4I/Bhqhlh8hYycS9pGFeS+MR3aFIsii+vadrwYYvuVYGeWvdZhB7mJ +KYevj5Ms0OpYTfZd95Pzo4o//lNpDnrG7Xd3tgTNU/fkpw6rFB/2Ib1Qlk+Kz1z6 +JNsp+tOPGGCBrzwfwglcikTuqS+xyRgC9cHh5eCol11uSoWPKcQR2Ar8Eo56nxv/ +UApdu15iJ7R8cA5guKeeS4jt0CGCPs2PhuggDxI73Xvl4zsAEQEAAYkBHwQYAQIA +CQUCT7FnEgIbDAAKCRCmrfyT7zSJPuylB/9iwtIQeexMWBmQNdDe0md8HLulDfcu +jPtklrvYHtXMJQFaGA0Vafq0oT9MhBfb1YCP79uF0qgswSxINYCOJx4nTPIP9BOd +TwqfGo7ul27REgNq4lIUW0GkMgZAUA2ft/vc0u/I0PqnhKCi4Pq79hLIx7eiX2yS +fXfYfLXRVzbMWKMoi7lWXseQqbM0RvCA54J1qAi6Ew+JyoYGQ7OvXdL5Eh5Tkm2c +pIADyqCkp/aFDe5lqZiU1zS2fU6mpOf/o0co+GoYkieIxxibDCmt3BioLgmyzpGU +sMNwh4pAIQUGkcxd4spC0KIWdDEvq/QJEEIhZlI/ojefaZkRseFrtl3X +=rYGl +-----END PGP PUBLIC KEY BLOCK----- + +pub AC5EC74981F9CDA6 +sub 5D9FFE7B8E3DEA8B +sub 501B5ADEF57CE6A3 +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: BCPG v1.68 + +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 +=BVIu +-----END PGP PUBLIC KEY BLOCK----- + +pub B0F3710FA64900E7 +uid ?amonn McManus + +sub 7892707E9657EBD4 +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: BCPG v1.68 + +mQENBFdbSfIBCACrFI0ai/abnV2U2Wa9QQZwGk3Fegc8laiuTKc0GoYdyptd83/H +hD5S61ppdkOugBjVTHdgda3xJ7zBZdnwjZvV/TyayQltbh6hU+BMlEolzXLgyvY7 +cAzKE+iKWbLLwfhRn1iuC7s5l1NLPsh44IUt3xDaFXNQrPO5OnRz8bqsGFVawxmu +2bPqIjkhxEiYpxwaZZbDkgBR6rbBth6A7QOadQcj/9wNdekoM9dyg+olOUmnLrtA +nMBhrvvbm2fZxTps3SZHlLV7+iSu71B5SqU/kT54/49n8vxrQiGvzp9K+t7c7EP2 +w4Ax1nYpRkCxYdHOX3YBdayUiP9ZaYH/YHtLABEBAAG0I8NhbW9ubiBNY01hbnVz +IDxlYW1vbm5AbWNtYW51cy5uZXQ+iQE3BBMBCgAhBQJXW0nyAhsDBQsJCAcDBRUK +CQgLBRYCAwEAAh4BAheAAAoJELDzcQ+mSQDnRqcH/Am3OQSYYBFrtOT3Zrf2NEma +ojd48oWZ5xODFmqSs5ksd3op9qakbqkxITzq7BP6CkFbi2NEWYVbPp+jiSiGr02L +yNA9ipiMBDyVZ7CXTBYqCQZ/3yQKOFN38U8R1SnoH1gDq/YdxDkSkWZEWQlXj4T9 +QR/fXWObN/oIdVDNONL99nqU0+xSvsE+toVHTH7upY7RcdDdnBEarKrifYjbCvpU +0yiOgB1WOj91z/BrfpBFyJ6/qW2/qJun1Ja1bdpKPm0ZbTCupYOALJhf8dcznNDn +gVCEB6L1+s693SuU2ZzFkdykpU/8WxlhjJcSqTpp8BIlwlFyOmZC7jrxArr2Jk65 +AQ0EV1tJ8gEIAJVavNan4WxxlwLwvnBj3/wcEWqN+kfMHENMSjmRWOYSmC332hhG +LmTDi++BPWt2OOvHUusJV8dZP5D9yUBRFsKozIpyXyS76C5VYGMY8WZ6kyqn/mLC +iwmnkOJ24kXLaaHPsQjv6i5f2KliDVhAGUHmNMJgH8o/GL7zZ03Mb8ZlKFZobp0d +n+/lxoOtQSzR+cBz8NvMBkOKD8r4PJA6BxCR1HVEHsq4xSnjr/UZOYvh+Kaxfnop +7Rn9in5MoY2rCY+PV59Xbx4grqNpjupyHEf1MHodJRj85JiClnLZk7dNJ/kr+zgg +wbsd12/GHkBt/pxuWhe0eFcAOJmvqC3c4pUAEQEAAYkBHwQYAQoACQUCV1tJ8gIb +DAAKCRCw83EPpkkA54FACACFZB2Tk96FQkr8+WHOz93CJs4UD88PosLaKmiXKP68 +arjH3y5jhNLBzqteZo0Crfw75DYWIZChdf5uLGKCWXBEytF4uoHOy9Lv/3emoSee +nluFVcNjL7CIOQDRmqw1t/LjnsLbgvlwHix5f7I6Txu/J0HKJbq0XpoTqCzFK6sx +EPHH3gZto+XfHk85haKd73SOM4edkmJx+jDXES1wb3K3SpYibt+uPVfLYXWxK7xA +aztESTIqZ9RnYHzd/7z6DO4z//lfB7IVAqvM8ga7Qj58ObeqZxx2iVit5WUZ4cE3 +0crNGyXH/HKlAp+B9EvENnwr++TI1CGYthPLFHFc831L +=MZeq +-----END PGP PUBLIC KEY BLOCK----- + +pub B16698A4ADF4D638 +sub 32784D4F004B405B +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: BCPG v1.68 + +mQENBFM1v9ABCADD0KoXq2ZKlUHeIVovQy3gFmW9oFAaraV48ouv8cYvqdf+s91H +NyqeyNPT/ihFeNqZJUAMyPdwN5xrWD6gxMrOCR7BFhA5kLmAKz4HfFCQ05ViyQdI +/HVNFvTdF8LNnuF+a5aNgg+jjLvFwzkyMFkuiPGuUDFnqEGxC+z9J8t40tpOTOIw +tPjSzkDN41AJDpUK/simKC5F0Im78nUbwMalE5z2IsZRWpYZyIhN1HhEdDvaDIh7 +3vENjH7enAjWh0iGRu+GTP/fayZnX0uhmausCCwMMhsr489e63ZOaJrqeC//wWrX +dtEJjcmvRmJ2hwLmgwMP4zSNKsnLGzP0sh69ABEBAAG5AQ0EUzW/0AEIAO62SMbq +gIzEFQEHlxNN5pZHd7msqDESILFYFkI1mxlkD0twFWMbk4nMH2VXhiuT3ulqKBOU +UUNQrO7egtfbGsgVv4bWbUHfeZkfvoWDlmbrvi1YLlR/ZxzGpCNc8e3aOcN3XKHl +BwfUaco6pcTBvLpKPA/TAjkTOtK4A5Azv1CSwpzSJf2bVVbrn7mi/rw78SmZAV2/ +rtiOU5a9S+3fzswLk1PO/z//d4VoCcL2s2WueVO1Q99kejkE55l3lYwEiBzVuAA9 +8Q0a5wg84vRGFZQWLIw8c20On2+dZcTLZc61ZjnsI1LSnLUUyQ/fzHQ+BynQF9l4 +3ZCPKFIl125MGikAEQEAAYkBHwQYAQIACQUCUzW/0AIbDAAKCRCxZpikrfTWOJel +B/9vDc3G/mrIHB1P/zl0Fdl5wQzaSVc9JB/ce0018ptplL711af0ZDvWqmZkJNkY +u0lHgnniaXB0l3GGUPIa/TZzVgFSRPj65FWTMkBbNnhGIwV5IVOPcSKSyDYn9/nQ +PpmWl5fDj8xiv6kKYxA4hjjRbRGuUXiI2dnyFHuFpacf/Af/Mc0U/CDDuz5a1jS4 +SYuYM/HFVL93POZzwLUR/+GDuVJFnm12rmjGnJVgR0rWcJKJt6vCsBPVfIamfl6v +G+N4TWQ9euj8Rd4hjsYPOwDfgVIUGIhpTUJ+fz046fkz9MWnX7RJh6hqLAXT7Hbc +0FTFsKYAbLJbm3Q+rU9jTdM8 +=mDDW +-----END PGP PUBLIC KEY BLOCK----- + +pub BF935C771A8474F8 +uid Nick Glorioso + +sub 5A3D35A6757384DA +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: BCPG v1.68 + +mQINBFfFy6gBEADTj66jLcvIYF4tNUoAL4wyKn0UTEUO3ERr+xt3iCswUGuyCWYk +PHRN3fRkJO8XqkDO/mjWArYt4PKZme6whYb8WJr++pAil1LJXFHo1AEoX0I0vHNZ +j9srEKiMg63aQXczekmcLcbTeJurDrCWMR9i3qRxrjya0W6pI4ykaHDh6vQ8k/C2 +wkxIE4OcjIZy4D8+e2Cf7qDmUzdqJfZwbMB/y2RtwwWvOOzFSlrxw0zZ3nfQ+tnB +LwGxugz2peiF5c8gRcV50EXOJQYxEMdsStkxLymIFaJO9hheW7/zJrTRbWBNHvJI +gE7wJ0SP/9mJojDPiPH/GCfoUkcl4p42ZwZRYAzs7frHA/rmyuyqM02VqXvVsgZk +QNI5iAuxfTNICHmj3sv3yifQ0OrAI5x2ja9PcvVXmZvTd3Ocf8Rd4mMylGlBBx9g +kzuxl6AB8eQu+75rSTgGPKfSeDKyxyOSTkhbJj7uX4nf8thzwhVz6zI5aypyYYDL +5FWeX7b7GPytKoeN5UiDcWgLuzwjN/wlN/IntHWDWkvUCEJ/JpN6FG5AUY+RQkvS +FrFQLTkGTLQaP8GHo+47Weve+CApUrvTr58NXHBYh8FxXG/cpgAOYt3xy+Z4niuh +kpcriHwO2xwd4RL0pFhCuaxvgZlgtbJsCv3yLZ5czoUgy2i4u91ZaGflhwARAQAB +tCNOaWNrIEdsb3Jpb3NvIDxnbG9yaW9zb0Bnb29nbGUuY29tPrkCDQRXxcuoARAA +8aGH9nTVCNgwCzLZk1Z8JJ6XHDi/OIhZWJBt89PAw8d+3OgwYtJbPK2WSAcP0lMS +UzNhINskgarevr/2YoaUKqANLqTghL6rCgdYt1itAVj0YQBOc6mr9oaeqHSEYKGl +ow3rOdlxRXNHF+tdU96DNJdnSrlB6//f8nJ3ug5VFPHB8IlM3P60bvpJ/fa7ybno +fPN2YGR7Da6tYyjT7DHajU+RaLfmEJ6bOyC6EHbiGgjA7vTzucqtiaxLbnpasxAu +U623FdVGiAAG8Eu8ROO0l54ybx/+ZVeEjJEHtSKjiNNxyrjUdJPREwFi6B2I6x6n +fQNd3X6uikIAnseabBa8Gr9NXq0qvBd2Wctow59PW1TC68MJb3gTpXhYeTazdnfw +7yavn/wwS9/IAET777t37LhCyR2jJSx5PeR7lECDWzSDLM+BC3rII4XOo0EBLYVu +yUA0XmS0u/5jLh6hQkM412o3b3fA48NxRmX5XV9r+PXfkEA9CLu5DJNIFMRL6FIP +gixSKg483zICBAbU+vcSYLZ5F+Sg1mGdhV7sEULkqjrJpUa69Heg3Qxe9TRu9mR1 +9i68YF6FiYJuK2mLQDr0Kyt+TDB3V1kjr9nztZuYcWK6l+UNX/3QEUlxozrl2/2f +o8c7dBu4dNn+Dq8WENCVn4xW356UobmD97xDW4KFilkAEQEAAYkCHwQYAQIACQUC +V8XLqAIbDAAKCRC/k1x3GoR0+MsaEAChr0qvXonUrCHwpUmS2ZN+evCZIbc4CQog +tbX2DIEQoOtiabVLtzV1ei55Sr2gjXvjZvZroOz63aznMeHfGu2KBFo3AJR4v7O4 +AvFiL0sfR3czHgvVE6lsulwfgBMj+c52LuCYGUwedftPc63sd3m/hTnuIYY+krCs +Jh3PDC8DhOBZzjJ53GGVxWHUiV2nC7t/x62UCbINUMPjsa9De2dvP5cGBmiAxyFs +TIfIiJHkmJIJLhH2uhj14Do9/+Gf5ZChgMLgv79IaAbT3O/YSFHYi31i+49fIAu7 +68+STgkhSKSLdM6zQ/70krNrjKyYBu/byyNeOYyly255NtTvVoPk8uNwpW5faSIy +g7mZ2kG1mpAIdXvdyIVaEdAl5NxVkt/ozi5AA+D++5uRuI4zT998JXgmhJz/KUbs +QRMmMwJwon3+C9QB4hbrW6/VAZajzoPomCAMJJFi4T8k/Ab+J/sbUk5c+atLxfEV +/+WU699wS8wWgm+9eLphbhQOI41Fb504nqPCLS0mfcT8bwhpzMVpE6Faf1/eW53x +00JvpGYQl+vzU+JuRH8DFet/J4fRGPgXmkCAhE4ToYlm+Yz8FcOfaef6nNEdWzuk +9lT4WdMGucBdGOxTakANSN+ov2+5A7ESxzlS/Z6309MmQ/ZslzShS+33HCgNddO8 +ayGJOWGwjg== +=+sIy +-----END PGP PUBLIC KEY BLOCK----- + +pub C92C5FEC70161C62 +uid Herve Boutemy + +sub 64863FF4D1BF1809 +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: BCPG v1.68 + +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 +=GWfv +-----END PGP PUBLIC KEY BLOCK----- + +pub E2F38302C8075E3D +uid Gradle Inc. + +sub 1B80C80E07BC7190 +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: BCPG v1.68 + +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 +f7TkwC6aybc= +=B8WW +-----END PGP PUBLIC KEY BLOCK----- + +pub F0DF21D1D0A3C384 +uid Sam Berlin + +sub 029451DBE23057D6 +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: BCPG v1.68 + +mQENBFYqhSkBCADtcR9B9QdIkPwTTpBOPXKI7iyjXqubQLTUOVMXWbBkQutCA/mX ++7SFGuJOPSvOMqc+MDs2qv21lW/BCB5h2jl8fYbiW87HoxJzveEpGY6pg2KFqt5u +88CK8MzWldy5aVi/xrlTKvKjHt9VZ3BSqraSU1AD5wi6wIPK+sr2x5mgJvp+Ayl1 +8BpmbsLLM8IajBPOdVOnRMLqaTYkuqd/4rIrWzlyP3oy8+xdUcODjJRaIbzMTP4e +tmqteEem6j4Mwy3smN+UJ4/s2GJ7mYquQSdrHtkzfGiSTcIsqXmpY87T0CsT6F0f +KtJBel7qCKflltmfuRJBh4oym9v3ag9V+oOPABEBAAG0HVNhbSBCZXJsaW4gPHNh +bWViQGdvb2dsZS5jb20+iQE4BBMBAgAiBQJWKoUpAhsDBgsJCAcDAgYVCAIJCgsE +FgIDAQIeAQIXgAAKCRDw3yHR0KPDhLl0CACQiHc/BJJhPeFhtuBCm0vli0U2YNo8 +zKxo0MZpe8QUkGSsLmxmvX5tY1tH7SnrYk+g8XerXMTzikk/RSrYF7hMcUF4wYGj +3OtzhbXGuz9lH8tPL5KhmGxFXXw4BEbw3wUItBcdlvGaGfQEO7BJKPZ3lgDHTRy9 +masVpMXXBk5QkjWfOc+G0j0e03emwoUOP+LhTIKWTbPU3u1IYIi9mP8LWnfuCMBG +K8LV/d3RW5B/72VDLYS6s/CwEMKhELdYVrA4RL3OQ2kvaZuK26hQcOMNAHj8xKDn +FKohPz1WtsOUUuG1RYw2DsyL1voVSPtRnsyL7PWJY92WeSDgf+ZJIpiPuQENBFYq +hSkBCADFzmSrmnqV2PRIUE4iWrkigVivGXmzrJwbpvf8huSs6LkyClIW78JhFchM +tTdAs3oAKfFhjI1xDNur9afbB9ULip7K2bOX1dJ4chi2Fz7eEnPIypfckaMa+BrF +x0v+ssXDip+VSmpvdDGBpgkGnfrlpOF1YmNTzhV9QLm/0B0wgjwmUr+/c+uSqbsr +fTVUSOQFCzhSSDOdcpACe2bFpzYJ6/XVTjFQDji9XVI8zsxSXVT6BLx53fZjkWsj +AMEygldsZa+Ohu9r7k7sZf6XoML1aO0Ojnv6Kk+S5zFMrrSjEf9DBnWL1fWDJT6j +trR0QO81GNQBPsvo5WLOTdpEegG1ABEBAAGJAR8EGAECAAkFAlYqhSkCGwwACgkQ +8N8h0dCjw4TFnwf/aKk6r9sJrnOIrAt0MXFClSrkaN9xPZwKZDYIObiwespv7Jzj +2+F9xY0r+OjUpZga7F74fcydM3EGiKLOHPmevqh2teJXv0UnhXy/WhiqZH2eoe0p +Q01WbF0sh5AXZijye7yIeoT8jl1yaB2tW0tvrmzPPhY4aNr3Bl90X9futRoVbl4d +59i6MpxI3AhJKcmOgq9OPCZm472aWC/rfe+SozBx7nYZ1jJfuFe6x2Idj3LaXYue +sFvkAj5J85s7tHWqJP5luhD++s7tVwk8L41uHO0w9sQrSysk6HmXDzwB9/eDDMKG +oTB3Uw4tBd2xwDxR9p4Bks7+leXL5ogr7RL8tQ== +=LPiO +-----END PGP PUBLIC KEY BLOCK----- + +pub 0374CF2E8DD1BDFD +uid Sonatype, Inc. (Sonatype release key) + +sub F2E4DE8FA750E060 +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: BCPG v1.68 + +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 +pA== +=OkOT +-----END PGP PUBLIC KEY BLOCK----- + +pub 164BD2247B936711 +sub EFE8086F9E93774E +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: BCPG v1.68 + +mQENBFPU8TIBCADGNvExYTJpVuNGCF9NuWw+IkitjAD7WzF7QkvFCSw9VftzgTUZ +3PYrThRiaDdmHQAke4Sp+nYyAJ7iUcQqg/5/ONiMdzXEv5Kwy5WJN8+o2aXSunIT +PALIw29DemZdVerw8Xc9jcdNYGxbPgtfSjr/DBCBs5Guq+RuuwsBvyTGLiHpc6hb +91D/wX6Y0NQB4UlY9f3k6AgqiR5OGq602hXYvL10pH6eT3gSmCvxp1WvNJDBmaRi +ZdgW76Y+bGQkmygWdAb3Q2DUEQHVH30YTBx5VFoiCfx1Jud4mD90Tv1hhPn0fS50 +oLGqI6f+VB14iJ4XLaSfyk/UMl343iF9PAg9ABEBAAG5AQ0EU9TxMgEIANAOURt9 +TLIRxc4lZLnve9LNSjTe3g88MOSoCI/EsyOR4ttMmc7NqNgCwYXyuNlak+jSGupL +biUCaFq+ioYWPpDGmZZLfiNFPi5Zm8uJdo5RupRTzWWCGryzhb1PHlr1Pd+H4C7r +SuB4pgTaPB06p/o7H6DU3/HKb3AEkJ40FThJX+cU2EOkVs999WQ6Xyabj8j1ivfx +jB0K7q4SuEGEpWvbGHWCGTNuzpjcXYvYWjy0pGgJnmBfaZ4NAqD6mpyNx3yDfVvV +Lu5D3M1t2a9Q4F6uKbaO65SuvTNNRnsCjFbk0tjCas1s2j/QQjI9IyPonKUkVdOv +egP9XmQke1Wm/TcAEQEAAYkCPgQYAQIACQUCU9TxMgIbLgEpCRAWS9Ike5NnEcBd +IAQZAQIABgUCU9TxMgAKCRDv6AhvnpN3Tnp6B/9b03x083+GdaHSBO5QvfJNMxe4 +7bzx53bFMrCqd8zDra7hG/AhNHLsPWdK2MyAc1U8zZt9OUqOxtcb9x1Tneq1XDLa +bGaaNnQMhRGwU8jqmwyn1qxseE/XutZu7MjQgo2nRpUwBK+1y5CcC4I4RxsEzff1 +RFs9tOyXy+rtV3X2hhksT4GUag8O3PpCmsdX1NdMFfcL+W7Orf35z6iaaWUketOw +YhzVALfAqZ+5BAt0ZvJktrn6oOS1/qri5YJeCuy/hGHnKuTsf1BuJUQjRmuntUzP +y8qDPBqTAtDjitO/RnHjY0fq9SceX8Q/EItOKyqPFOC2XfCooP/zTxowcdsraXEH +/idJYp8nHncdzsoRonzNY+0n61qXkE/0yWRtPKlcO5q+3i82ILT38+2M7MQgHBqP +iL8UmsVRfHNwTHtJYsMHEgy90heV1mLft19OHvWEzgyopg+G6oWbaPw7CR0djHfJ +vEPGWvldW0vHJaIA9X+lm6N2nc8tsPm62i/ig8o5tjULAUrizQanCv87VxqsSt24 +Vh9sE+eNXY3ffMv4wedl/nlaHghBD2YttcFulAwoB6nwtV8YbKu9AWx+UQsCDMdo +slVaChMsTYWjoAKUn6vZpKNDQJaQLk/R205uhj1YKBM0wBwYQ9+0fj7FH0hD3qfq +ZsgZV9p6yscaETbJeSljYkM= +=FjWo +-----END PGP PUBLIC KEY BLOCK----- + +pub 22E44AC0622B91C3 +uid Cedric Beust + +sub BFE9E301CD277BAF +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: BCPG v1.68 + +mQENBFpqN94BCACaAb8Afmng1QPu5k5uzLoA1FJnF6Wf31ZU1FzDxHFHLNUYSWN2 +Bg6k95QH5ruZ+Z/QOJSoIB+b3htDklyxd8m+G2KsMIqnQs0BaTN18hb3PFyMIknM +YWkkTPF3nVV9APk73AebTAcd2V1GB7xOP+L3T7tyUcB9/7bDeM3od6qPksdVGNMA +0S32U8SNhe4jw8uXKdFL6PSxgyg9yeu0V7DyR92V9jF+ZicZWxaLeKpf/Vn3MBX8 +JdePR9SCJc8CNj0n/tsvg/aSmGZ3OMZTUYYvrtfgpXUw0WVkyma+T0ANcdDN91uZ +P8lV3o+Ic8f15xwsTePDhMhmtOapIz/85ukFABEBAAG0H0NlZHJpYyBCZXVzdCA8 +Y2VkcmljQGJldXN0LmNvbT6JAU4EEwEIADgWIQTHC4RPAC8h9tK5yHUi5ErAYiuR +wwUCWmo33gIbAwULCQgHAgYVCAkKCwIEFgIDAQIeAQIXgAAKCRAi5ErAYiuRw5Md +B/9ajI8dvk0oUaenxcPCchWQ6pwA2B5w9yQVWQBoJbxMI+pvEqpS6ur7PI+bJ0or +rCyNLiNj/okFuU6yeh9g8eeKIR3984HtBAkGo59TtH9kTg3HDZF2ys5j+tdtcb3r +KrGafc41llryb4XTGiLjcCS4n6q1EmZIJjCwvt1sIO1fo3cBim/1kjhjMgXSpiYz +yB+ve1NaG+f//nfallAnryxFHVfk2/N373cNZTD9bV2FRZs9SSO2mO9BoyG8deSF +x89lwLxK7MeoSH6pAioMMRGoZhNz2Thb9voUjrqS3P3+auwPt//JbhmCR3Zg+upu +n6Aw5q67aj4V959Qra3ZpD/TuQENBFpqN94BCADAfXydE1VYais6o/4JpVQwk9JL +3r2hkgwfN68B2rRvw9ofXZoqaBCFgbw+Nvz15GLmONoiDvP4rb1TsaT2Ti/hTUb3 +ov2W1RJ6OFRmiSkOuOjZHlVslYF2fPlZEXWdJ9PWvoKM/3taaICXy/AVSm1NBera +1l2MsJ1ePr6dpMMDBjUU15rzWm3WOqwBNE34whhOjvU9vDl8u4h1xV96E5B47ZbV +B1pR6y3vSYQgwj6BYkp3Uz2Mg3GQ/nBFoNuwV/F7LiUb5W68wOe8Q98NuREh1ico +/OM+iudjP2LO0vz2sGe6X5UZGwCfbJnlq/fqoPhiyW6HPb1+JHU08kKeY5BJABEB +AAGJATYEGAEIACAWIQTHC4RPAC8h9tK5yHUi5ErAYiuRwwUCWmo33gIbDAAKCRAi +5ErAYiuRw+XKB/0ToXO2daY6/ZlkfK69O8jRBzbhn90/2dePM/qLy5Fe3UaG2sge +uFYbTMGbRPvCpn9E5bceczdhkJKqEj5dPHVhUU6+jeyH/DdDgrcP12SQR2vHg9hR +e0pzVouiMDX4QnUbW09CwpmhymlIp3pXb5jNa4iNxjYIBmuHDEmMP+uW5Ue+e2lg +IAFWRFovZ9C1DCg0YYyGktc47cakq3ENKNU2LFvRcbgoyfjM0EprSUColUUNN3yy +UNc+I+bvGL5swhKqdnRHagbg7kelsn/05oDFGPQHi0/VOlWU7wBh+vUw6lb3Zi7C +obUInUhW3rPu5LubTOtT+oIH7+RSUIEJO1hE +=j2aw +-----END PGP PUBLIC KEY BLOCK----- + +pub 29579F18FA8FD93B +uid Tom Ball + +sub 9DF7F2349731D55B +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: BCPG v1.68 + +mQENBFYFiMABCADYpblWssqGxbjTwsyroPh48BwdSKl59zbFKoEHDw87NeWq7fik +h95RkbdeWsQSvduXWgQZsUDq9cLOkuS/ChAMkAAd3MPp1NMdFmAqS7BX5wU5s5I7 +XD+/p51SWLMvgrLxoenmoE04EuQqQiXd4DbU+HGPseiNx+mN0cxPssaZMBBsmi2r +RjwcQrFTaC1iffzh8FKLQvoTDzci//b5bWcxCLbsY9dYcUaDCbBAkL8HzyZUKNE9 +XwXh/Rq8wDakI/VEg/905a9c4xq6Rss6Yn5E4V2SAo2+B3hYmvHFsefaM9kkqvXk +MQ6zjx83LAtzavOzmthjhhPIgCAfoQ5Q5oDzABEBAAG0HVRvbSBCYWxsIDx0YmFs +bDcyNEBnbWFpbC5jb20+iQE4BBMBAgAiBQJWBYjAAhsDBgsJCAcDAgYVCAIJCgsE +FgIDAQIeAQIXgAAKCRApV58Y+o/ZO/3UB/9W+AOZCBUoVTSyu5BDjH9Xm5vY/QmW +jl1/dEcjZ1bFEF242SP0sUC/XcOsaJp/KpvkB9pTkxJ1BGg8YEr3vJrjrD2LLEih +4nZ/lJnfyjx4Sn70GFSNhftuDJbqLA9U/Z6M1tRaZTGk+/PkvCyyyjD/U/pNohxd +r08nojPS1UL2LpI4nA8VPZt9bpOoYaehkyVjD/ChXTSi41Eet04ze7YoyEGMIJl+ +ZcAlkhSQrNNtSbrZ7+Xxl7mv44Hn0F8dlc1i5WpNCqYfWnVSLLBZGi3HxRqpF2HR +VIZuXHWaP8JxHNfwZcOMokAhRlEVckl0qqBnjNl7zuT6xJBiYwgzu64WuQENBFYF +iMABCACdvSlhh2hLe4F1fBMHiZK2HdNp8I3NS8o1E9k0cBM2fTfalIlan6ZIJ2Z+ +JqRwk6MRaKpB2or/0A34+3KfI22SWtsI2lJA2x9qWaiwRidLFFAWdSjTzNroYVkc +wJ5hf2yKN/mH5YRiDSzaqHr5GKKPXHXpT94XqXn+Pj1Lj5ipnqPOerpJ5mlkPPSz +8C5Ve6I+sIqjGKdtrB6kxgIF3kf30izCu3dL0j5vuey2XneRAqETHqmBVMEjFeuE +Y0zJCj7LxQRr0YaaSfrlkIjIxRbhatgxXjQVbbnh0nYAh8dUz/YvsfuyZmLJhRZk +cJxHW8Tt0xxV2oBUBq+IpmvqDoy3ABEBAAGJAR8EGAECAAkFAlYFiMACGwwACgkQ +KVefGPqP2TvmWQgAi9Q5WlckTYzccwvt9F+sRspD8AncDERdwkY6HiInLLNqQSUW +iHU2BaYN2wmSiSeSgwurPtN85nd3XZyhKtXxH0XKC2fTzQWBdyBEh5zT5UevES9n +IzIKurHoG4TsWr9d2XDiDp8q1s4G1cNGYDfD97wpZRbYn8L7hedL07ISEWNdRvBp +brvhme7X0pD8MBKPqUXfLHHaJetmlFKOmu9awzjINlz1C89JdocSln3lLJLE+RGN +N7HmXdwmKjmnC0fo2h8jnOTYekdTM3Ec+uWE8M1WyqZV7WYzoITIfq0uHgyIxCpa +OOejOLKShQW031G/kEvZApAVPHLFM8BdJ5P6Dw== +=RyTv +-----END PGP PUBLIC KEY BLOCK----- + +pub 2C7B12F2A511E325 +uid Ceki Gulcu + +sub 10DA72CD7FBFA159 +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: BCPG v1.68 + +mQENBE+ZO+EBCAC3fZOOuYKthr0GcUge0PH2bh18sbM9XUmPKQz/W15l1NA/2ARS +2gUXM0R+SunMlun9KsqjnojJ2ObVPvbm1Hg/66JSRgR3JWfIpSlJxLicpfu8rCfN +bOjh4v9ZipD+px8w3o/RNrnZH/KRsoJg9yER6pf+pUZqTJfdg5lXezc1WF+/1qVo +ypldMGfrkfLsPrUZTT689ubbig978e7eYmJEqldtaIwaAzHQnB70wIJyg/rEwFUM +ldsvs6t6czSuJ4zPMvmh8TMpTg9e6+DMktPl1CWRONl8RPpgYMIC96gb4OnfDDjk +Ex6clSCwgbDwdeAyOjjR6pVq+pCNTo1Pcj5jABEBAAG0GENla2kgR3VsY3UgPGNl +a2lAcW9zLmNoPokBOAQTAQIAIgUCT5k74QIbAwYLCQgHAwIGFQgCCQoLBBYCAwEC +HgECF4AACgkQLHsS8qUR4yVwIwgAlj6R9Lxk/GnclmSvgtTyk1r5GxJ75iSCzs7q +DlNuM6EfFbuZvLWORGgP8KtdQdh/bdICtRbh2eoW0vEKJKkl0ZI0/RnVMYKYpIHi +KVUSjPq0svwDk5tUa7taNSdHfi9o1G1doBHyPu1u1xDVzMSWsbEvx6aVr2HkBDRy +A+VcmnX6tokZjyRX4C9ldX3tR+ffn7v2Iy0bIesM92nMPnH/fPXWlnbQKTxQeMj2 +qYSl3H/NGp57G7KNSl1na5U8ueMcUtYb+eHphMsmaEb9xw8dM96CzIPZh1xMHNoQ +NNJibURysbUpFlGUTOv6K0A392QkX3GwuCQGOeLWHOoQHD6Jt7kBDQRPmTvhAQgA +trGiCYnW3tqvDzaStXsguVw67pou65dO7LTcrX+NTvejJZ9SrC89JsfiKBwtvyS3 +X/qiB+S7RP21PH7SYOy+orwDw1nacNNeiTdPnxQCDQVNeWpSpmbLlA+0b6K3aPf/ +EaCKndXmnQyXVOoSXZJ9bqAe0um0NRbO7M+L1KArVkWW56ms+DvHAeZaGnSDDHQp +JI5haUqgSWWP/VoPEU1x0qiBZwY3lokSwRMISC4E/uiUvvm7rvfbBzfOiVrjNPLl +sVPiQRgOTfQO7dUZAmt2yqWJt1Clliby4fgBVcOYUx0QCMiz8MZGtSB17+hSrC2C +b1T6n0ypxuYyh4sV2LtqMQARAQABiQEfBBgBAgAJBQJPmTvhAhsMAAoJECx7EvKl +EeMlX0UIAKS+4ZAKrGG9jbWfzTTDbu9zzkXgV13suMD+XcGz10DkdluTUBXj8wWl +p289fXNm4E49ipsNK+dcZ+gOATjUvb1Llh6D6bHz1QM7olxBCeU2feTmYYKBH8GY +Y9JZzfAXNMQhcNiiPj+ntZqePy/EFA4uZHM7We7vl2c7CBcDAq1NNeEczo0KvG7A +Wt6QoaMVmbvA14EKadNzrmEy9apkag1BKvwzXInYCvIHMa9ZqicOSUcI5QCYu5Tu +fvIE7Eq3Khh2Ex1FiOaEA+57LMrt6NsSKXrB8JNYbI5pqE1rxJXZnYtx3ZpPAAEf +LjPdi1AOkWhvhsoPmiGFC6ebYQ5eVbI= +=9O4j +-----END PGP PUBLIC KEY BLOCK----- + +pub 43203BE58F49479D +uid Viktor Klang + +sub 1364C5E2DF3E99C5 +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: BCPG v1.68 + +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 +4g== +=dPSa +-----END PGP PUBLIC KEY BLOCK----- + +pub 55C7E5E701832382 +uid Andrey Somov (SnakeYAML) + +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: BCPG v1.68 + +mI0EVdDLQQEEAJMtYCaTA56YsP5RzQzPvqVTaR2nZ27qRk36blHB9WmXK+NHpGeH +PHgq59mLPVueo2/M5k/fFrCe36jHePP31gYpFtueeYDfsofHwod0WhsHyC7JfG8d +jEnSczTCmOHRZ3ed9ef6SeWUozYCQAX/tAbpoCthe0lTDYhFhkzVCe/FABEBAAG0 +MUFuZHJleSBTb21vdiAoU25ha2VZQU1MKSA8cHVibGljLnNvbW92QGdtYWlsLmNv +bT6IvgQTAQIAKAUCVdDLQQIbAwUJCWYBgAYLCQgHAwIGFQgCCQoLBBYCAwECHgEC +F4AACgkQVcfl5wGDI4LjiQP/eMEcbkMet6nulUtE3rmRZjq1uSYTPirvtPF8Apwn +VH6a0FepOC0uqNnYLrZiOFR8xy4kq2r1cLkX8iS2AdZlFOHNxXMDSGnnbsATKBdZ +j6NKhQYS/cah2yV52Nnl8+Oox84lWEkYLCmuYB00HlRxytf+jSXxS3SnKpGz/bdG +BViI1QQTAQIAPwIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AWIQQSDW805ift +Oncuu/5Vx+XnAYMjggUCX1s72AUJDy4LFwAKCRBVx+XnAYMjgu5OA/0cqvbr6nQA +t1M9ltPd/hqQ7qbphYIAYuEm1mfwGwROVR0ao8zCATujct+prY4lwaxh4tQJGi57 +yPy3sjdVXAs7bXk7cejcCxXkQejGULm/RDINY5yqwoudvJypZFwYz8bG9DSX8DoO +jHk5ikmB4iJzu6E9yQcjOtEdXage933gDA== +=/cE1 +-----END PGP PUBLIC KEY BLOCK----- + +pub 586654072EAD6677 +uid Joel Orlina (Sonatype, Inc.) + +sub 2E74CACB6918A897 +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: BCPG v1.68 + +mQGiBE1VSkkRBACkCgvt26sMi+0X+EOJDMqdK0Sziy06k47LJf1jOg4tTZ2T9QtP +OZ8fD+va/O5+q8Kna993jzcO5n0Nv+R/K3+MvUqSmdITshCIjBt3cC0n6FWndGyl +jY7rOmzdNnvSkMGE3V2fQ18stkJRleqk3EuWwv+EwpxcYeVfCO+UCJGz5wCgtqnZ +JYdRHcDkDYaIZ4eizpbV4d0D/3cgBdpcbSrwIGtft+lDxacaJrWpT5Jh5P0gLlYu ++6PFz8ZIC4+/aOSi4S4mgZxk8dBL8ZBqLqcW9rc//CYKNtPq33sdf9vxcusMIXvS +PBODjDpoOsTJwy51fgCEL14qnp0v14y9p7ejjN5+GipiNY/JHo9S9kTdVhMYqt6x +6a6MA/40vMejIbZ4q3Ia63jbHPi348fLDq3Gp8Wos7Sh2HnLC+pRdC46qX/5wL4t +Vzj78yW9FdH5yeeE6nQLOBWh7PnSfMt2wYHoarEnkkkycP7WLpRME7qsBYqkNUNa +2EQZSy8DnGiayYDij1YPNUHI9kpK6H/e3puhmgNkzrZj26T85LQzSm9lbCBPcmxp +bmEgKFNvbmF0eXBlLCBJbmMuKSA8am9ybGluYUBzb25hdHlwZS5jb20+iGAEExEC +ACAFAk1VSkkCGwMGCwkIBwMCBBUCCAMEFgIDAQIeAQIXgAAKCRBYZlQHLq1md1Cy +AJ9Vwm/4tCSR2iaLU6fCV4lnJgDnrgCeIDEdpte6HmX4eIWPHHxULLLP4Zq5Ag0E +TVVKWRAIAOsb3rg3GoeIBQtJdgRUfULCVNEguSJMESQv9xnKgEGeQX9ItVfdMLrv +Lbf4ySyIJ1ShBR8k80Xk8M6C2XA+c14AVUrtPUHmseO53TY0n2VjZD5ms7TOY/cq ++DheTBLzlxNsK85q0jZXOK2+Sliv9aRBIl/83c1iS5kBM76fzLWZqsiuqQsLUvEv +oCmUI2WSzhJ3s4s3nCHHtq+sQkcaLap3FMH1IPozFFJWSlJSsIeE62AxR4XrfGs1 +y6YxA9AEhu/6QWA20T55loV9TT4geDLywxE68eu2rM867Bl2cfU6+tW4RW0Ssg2O +Ymv/+dNe1YErRgKm5JAjWRxp0Jzc47sAAwUIAOgOfDKe+6VLQrVYXwUZ84ipBGgp +/JwqajPzxa8YodPH0Cd8bfw236Qcd9R5MuyjNbi4M2RJ3pLlNGasICt2qloPNJqC +miTcVGXXeaK3haG7Du6bXo7eaJl+pMXRoz3JTrdTPLHOhPgN7EeWtkAv/QbbONps +nNcyiuvund1KX1JaoGj712xk7IrDO47eA7Vc+ply08owIlnjtO3XG0o4GbkZx7Eg +iaG805jbRUz9Q4FHnIE3Ditmo4BrLsy6pG2kJyv0YkSM6pBSFpc/K85WDV4fEwPd +AS3hl0rlThFuxgSHPH1Z7OqNdDnbAKp8xEKnAmb/3hx147fU+VoFd3qcudeISQQY +EQIACQUCTVVKWQIbDAAKCRBYZlQHLq1md0BDAKCz+pK77m8VG8F4ZWyDthIjE4d/ +zACgsgdtDggyRGK8+BKm7HDnceh97sA= +=7XCx +-----END PGP PUBLIC KEY BLOCK----- + +pub 59A252FB1199D873 +sub 92BD2D0B5B21ABA2 +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: BCPG v1.68 + +mQENBFUBG7QBCADRWXf0Fw05qRhM4cRnGKlOW1ecue1DCxHAtFwoqmAXyTCO+tI0 +MEW5SyXUkX6FsWLl6A2y+KgOs669ogzfQ0rnZMEt4HisRp8wpgk3GWR1/9aKYz/c +ymy2N3BP9cz2fJ9+3PpBccUPL+ydFKpcnEnIwiQK+p9JjEWzJBlrdUc/UEJ0R+n/ +5r/+0+BHiTEMvjAF6/SwyntpTWpu7iEzLv/pfdCuhFKa4yn+9Ciwe3wGtSiue+dh +tqKcd4YxED3oAswObBca3CC2HWWsUEH6EmfT1jUdfy1cq4X5x7AZ26oFYfG+odqW +W5dcB+13VkJtJRzQTO/2HKtITJYC65a1jKt3ABEBAAG5AQ0EVQEbtAEIANsILuU9 +cH/EIEL+OpwIacr/y3/6LG+ok8SKDHIlF6cSpusSsWM6L+RGcZgvCDR0S0EEid44 +yy8wFMvoYSlsXHLN4SqH/rpLIc4CD8DdCLWraKaRZrhtqzNWSsYxEgqo7n1xO6+c +sU17VJArnpkGPHoA7ooZlaGrc0y/rlkTXH++LKqh8niO9Dap46pLFrdgvuyKbq1B +6faAf2JMRyvqy2+fuwfVGTc7DEUUFtwGg7FniDF0zl+3rFG1ud9kH8UWz+GwCwFT +6qhVglgOmtJgw1CSYNeDsQvDB4YTJNnMneMSdM6CkEcRhLp2+lz90+wR0K/a9QBE +1NPubAaRB2uQR4UAEQEAAYkBHwQYAQIACQUCVQEbtAIbDAAKCRBZolL7EZnYc2uJ +CADHHB/Bmc48Ye1xl6T6nbNEiMCdmpIba+JNFnEWcueq4xk0xoXXUSpBnjLaWPQr +VZKHXdMxmmR3BjhtFvsLgeajypLUkVDlKMkdGQtsWXL0abr4cNoMDiXURxlbXgxZ +8+hIs/rKSWKturrCD2V4MXLsQV4xArh1ezkJFEDA3tRGzjjgzg5MwmrmL7H5Pcd6 +vV1Ke60BmvFYvvjRwT4Uw1OD0XluuPOaaiTibhPECc5zLxBz9+eRSsRbxccNEzPY +JS8Xl9+hIw7Y7Od184cOoexxdoI/K52kH7A5yfEj2kXCZm5tYylyKvgGpczWdZuo +V3u1xg+t7/QlghTMoJAA0H5G +=hS0U +-----END PGP PUBLIC KEY BLOCK----- + +pub 6525FD70CC303655 +sub DCF4B49B4D5845D2 +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: BCPG v1.68 + +mQGiBEmhev8RBACz56FVQ9l701+PE7Nr6+6Lsoy5tK6wmV89pEvUDgDjT0VTs4EI +dupAk4a0dLn8Lu87AloEYuSzbCxv5cH5vyDcvLDK6g3/sRC1LPQPydD+UlCvG8LI +jCmzJYSJj8joVqTBLL2RBdR7xUie34e1RTvAM5b0UHnnvmsvEwwFRsb6CwCg7VFi +5CrOZlhNeWcWqSpPZCTV4ikD/2xEBh5fUlpfo6qoWeYx2pLg7X7TIriD6IVSREmT +ewrVXK/C5N9jcJ1zCERjkPOinyZh11MX9dau6M7I+72bapVj7Za49VHiPutDCb8t +3OPS+ksddfTccQw0iHGDjSusJM+hX6wmHDBgY++WBCYX9TkZxz/cFutqOZ+HBYUW +QiEjA/9p5vk/gpSB2UtmUn0StfAnwsqpiiwV4weS3sbn66qRYq3jbbAjS5v+jGwf +KZjPpUyBitKW2Jx+BgPnFy6yk+u19gv7MOiKwikqeDqyF6M0fAjJflproQFLyHZQ +7YFfIvhB0k76t7qSeCU9MA2wbU/DvDS/TmsMiMFqBuhjB6T8wbkCDQRJoXr/EAgA +oJmSrlu4uHo9RhCtUmSNOczGf922j95Ldou20NKmRKd6Mki9dGdCt/TJSCaWFULf +oQ7rKDQy8IRrP18xaJ/KzhG6fjh9uuA0v9x9ORsEHB5Xih3s9gt/TqC6NWeOSd8R +ZeG6Y6SgtFcA+5a3UP9yFSXo0xS2It48f/ClB1/I1V+iQjVXC3pbs3LwGJlaclNE +V8ROkXDhyYPwW6LQkWEDa043dSKCOFe6FnytD/9vv92weOFe7pSltEJiHjz9qpZl +Aq3CANsjqsqqZJU36+8rpyiJfSiHXcdjgCiDQyzdQm5HQl0cU1e1+CabMrL/8+9X +6C1a4dSXu++NDXgbVB5hnwAEDQf/Z3kUqSvprtKZjh2orialskkQ6jQlGTSCoX/o +UAsBvnsVSdP0CHUnI0mYfIh4WhuiJwHgmvTfjrAzU2Jfwww9glw6OlhXP4mgvM23 +rF/Rk/gpAaUfweSy6TYlynfzFHQ6HPIYEZqGmLPJ/n8a4rsIGSWcW2+TC+OEI7Rg +YvC+LJuoXToqn2tPQ3Av3JeEbO8nenk3SJtrR70cu5F76ANJwgCuwug/ylzvM774 +DuXQd4vPFd4jFxvj/AvKs5itQAGRaInfCxn4uHcUZc2WiGy7T28CpD1Q3ptUybs/ +ogyDCKa/xVHKXu9wRF4osf8U1DdDpjfabdKWG1+RMbx08zH7dYhJBBgRAgAJBQJJ +oXr/AhsMAAoJEGUl/XDMMDZVr0oAoLmZHTCR39fwJJTr3cABz/njjNQvAKDSCgB4 +qq6hm4Gb0pdRaUN4u4e7pA== +=plMF +-----END PGP PUBLIC KEY BLOCK----- + +pub 6CCC36CC6C69FC17 +uid Gregory Kick + +sub C694465FAACEE66F +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: BCPG v1.68 + +mQENBEtrDFABCADLXGAhjPxdh+naC6XU5kficZYEVAURNRa8MTnaMKr+31v2zcAk +nyqyjihcXGQBCeaNsz2mQkc/MrKdnFNVSwp715JcmcqDJGfR9aIDMUs9PvoNkkqv +IDtx9Tn73piqbplT2xQxd7HjFvaVuy7oXI68gwcyAGDvQZeiFUodcbAsKrVwFT+R +94JU6UODFqE/Ihq15Za8Sc8WhWitm8XTQsCsLeh8abGhkvNEmRLi56fh8/Bz8LHv +8T7r8zkROoQFlUEYaOR2wH5bbipww9+HEg64hrcak2w5smNt0NJUXZ2O1l00u3sF +Qdu54hM9nZ51xxcqvo+tGft9kIr2AfTrJ28ZABEBAAG0HUdyZWdvcnkgS2ljayA8 +Z2FrQGdvb2dsZS5jb20+iQE4BBMBAgAiBQJLawxQAhsDBgsJCAcDAgYVCAIJCgsE +FgIDAQIeAQIXgAAKCRBszDbMbGn8F/tgB/9II7qOuEg7VuWss+kqI8dAG6t43TbC ++QRRqYqa5Z5GSBQMwtxYzSpYeSRHGTh6qBiQlvJBDsYq1BMZrN7K4Qx6+LcKsFYS +6r4u3q1jcbH68fEFyJOCZKwNuMktAcbhsOMDJiF/3W4xIOEsy5iv9/a6wqJNWQhc +Xn7HyhVouoQFqIrutDhpdF184/zF/fMLfw4Dn8xhRNINdxgTSALEA/lit7aBp3ZZ +vrhAx35ayGHQt0Ap7+P/H/gfDjBhdtrkwc7y+RAYWLn7Qj7sOuTT/8bU2LKeOPhA +Y4t78BRTLYzt3oDUaqmV7r7Gpjkb7j/0CQAwWEuqB3gawb+QsloMDD4YuQENBEtr +DFABCADqp4wT0RY1+OwMZRfTSYczlBAidkGqHszDnCkO0U5w4Tog4v085dDFyaKO +5LZHkgDJTyF5WyvwtqqzNoU+tjv+RkkctXTxK02ced5jSFk7E9MI0AoMXogLP/uW +6nHmoUTuDxEtCye1UfsIglD99wiCvxGtnOjgwfezkpctP0WPe41mzNccCrs3hx+R +9ECkyZMtQiHYPmr3X3nhwQxKQotwWQOeSYgCjLhTWJfkOMn/xaGCNGaihYSMCtDk +C2PrpyD5V/qj8gek5DyI/bXCv3Hm6Td1XBbzc1ZHKmF3ccFFPRtBsswtwXuN+6Ms +5t0iVsNQ0XdhY8BXoi9H1jo8HH75ABEBAAGJAR8EGAECAAkFAktrDFACGwwACgkQ +bMw2zGxp/BdCxAf/TvMMBA7kY4nbH5WU6KTLNnaykv0zfxAf5XgRbDqrcO9dvnWE +jYTPyyVWXIVkvMtESx0DAHeml/PaKCab5pIoybyYQfWLbh8Jhn0+NLnKOwE6m6Or +WFv2gNa3zrPRwIy29VFkLxLC/velrIkES8CKF+gGinmxupi2IpIiio4uCyUaeR1X +V6U8UWl/50j0i2mrutle1yiV2lYBb0k8uMZ9nqYeHkVQAispv6bDZF20co9Zmn+G +tbHat1jHYg0R0p960SrFBlb+x8ROOb0e1u4ajdAZ2uFczoDRKHEQijvaQxIjpl7C +l1LwyQTq703XSVR19/5ufOR2XWtXa7UoBL90bA== +=rQXF +-----END PGP PUBLIC KEY BLOCK----- + +pub 734AEF3D43509290 +uid BJ Hargrave (bintray.com osgi organization) + +sub 49D2ED97DAA8B33F +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: BCPG v1.68 + +mQENBFRZXAUBCACqPBEjQ7si90PYbccyR/K2tg78HzJfmECvmtE9mKaUpAWGkid8 +xvSWNIunJMqMEyAM6lbyGUE/lQX8k0Ap4qk/UIf9vxdFirmlzD1lhfxDls33Y6et +TxpsRP2Rm0f6fW01R3L275FAvHLkQcOUQVoD407Eb3al41sYy6vdRZpdTJ923w9X +ol0a/6G7wueIMNO4TtxLNGSe+WPjtAWmLOl1H2pg2eOcKR2+finbeWpPZPCjR4I1 +CaMcGfdwv/4goI1b/931t0TlKAyGVhCgTa/1DKtRsJazwtw6MQZkE+/8t4JIuSVx +GlOWUrlU2HCbN+eAHj/5/G0suIw0OZpdtNPBABEBAAG0QUJKIEhhcmdyYXZlIChi +aW50cmF5LmNvbSBvc2dpIG9yZ2FuaXphdGlvbikgPGhhcmdyYXZlQHVzLmlibS5j +b20+iQE4BBMBAgAiBQJUWVwFAhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAK +CRBzSu89Q1CSkEDnB/98N/v0GcmGMEOls3kpl2hf2I5rrkx1qNpcWQD5F0YAB4wD +rb1PwjwYVIx1c9JnB0+WlOwmXdsNhAmPfdNq1KEhrRtTBQ88jmm6grqiNFLZsFrq +PxQCcOw6V4rPnFkQvtijqf708v0QdjSaW/HSwM9lCz/u3ljJq6FZGTRwNJBcusqd +vh08mMWWs4Pf39dKyE0CKjmPTKNnQGBoxmFPSrvPoWgBmCtniWR5McIOFuqnzHBA +ACu6t9t0h4sB8Vyov+dLxfUxf6g8SIX3b+FxCsN2vRwie6IvhZ1KFseWAWIQcoS2 +8Pjp+GKYiBhw2qMmbDBEV0gOMGZyetdtCE9JPt5VuQENBFRZXAUBCAC+ddgLBX0/ +BBS+EH6JiIqbFhclAnMEGwIAGyfk7rpvlwwWCFQDYDSRW4AjWwcDV07ckKI+3HQQ ++iLD9xwiMWRSyo8RRbuq2xypbPKd4ET4XtMUuNweMpuyCgOMceMVUd4LbzilopWz +OKCo2NBAExRjMoBGKdTyaCrQ/lEouEGATlzwoOcrewUpWKfG0qb+D3XTZ5Dwqo/y +lCtE1QlZASJGF8jGEMc9UXkMH2e4cg6GUBbgiC0iKA4zwgLKCBaSWNUHt4fhO1pt +3pVPrMaFL/3foLpa63xi9DdpL+LXDhIo165TKOpXwDaeaZoRNC1qRggeLasxeMfL +0Vm9P1DrZteTABEBAAGJAR8EGAECAAkFAlRZXAUCGwwACgkQc0rvPUNQkpCN5gf/ +THiGnRy7LT03PnA4J6AWtL19HLtRm4FXQQC+X5um8abd74HPzAgz0Z2o0rt2gq40 +xHxzyMWmtdpylSrRdfuwlVuVpf8cZDMiXNVXTK/wnByEmqzfwNC5+21s/FHi0bQd +bm5DjHz1jz6RwGUHdTZ0rRWV44VPxtYCZr/fiu++Ra/ysUCCMrNh42UhMfH5yw9p +QZxM5NTPeEXytraMhyldxRYsJNjO7ORKl3jMFivAcnrZFlmiw24KDYEU3QNZZkNx +pr7g2l9VLiFhkM2QIRGVPbVLHzG5wD2L5c9pzhmFbXO1ZWoQMA83C4OFV0+ecnga +/egW1kdpB50keEhf+cLDjw== +=O+F9 +-----END PGP PUBLIC KEY BLOCK----- + +pub 7457CA33C3CE9E15 +uid Colin Decker + +sub ABE9F3126BB741C1 +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: BCPG v1.68 + +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 +=Gj90 +-----END PGP PUBLIC KEY BLOCK----- diff --git a/gradle/verification-metadata.xml b/gradle/verification-metadata.xml new file mode 100644 index 00000000..862ed348 --- /dev/null +++ b/gradle/verification-metadata.xml @@ -0,0 +1,150 @@ + + + + true + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 73f49fd1f06f726f515c156f591b4d957d0b8723 Mon Sep 17 00:00:00 2001 From: Sam Gammon Date: Tue, 12 Mar 2024 18:36:44 -0700 Subject: [PATCH 08/15] chore: update ci to run at latest lts Signed-off-by: Sam Gammon --- .github/workflows/ci.yml | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a30e77d4..93b57c80 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -11,15 +11,13 @@ on: jobs: build: runs-on: ubuntu-latest - strategy: - matrix: - java: [ '8', '11', '21' ] steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: Set up JDK - uses: actions/setup-java@v1 + uses: actions/setup-java@v4 with: - java-version: ${{ matrix.java }} + java-version: 21 + distribution: adopt - name: print Java version run: java -version - name: Build with Gradle From cf45e12a874cad2683996e73de44e06f3564a491 Mon Sep 17 00:00:00 2001 From: Sam Gammon Date: Tue, 12 Mar 2024 20:34:53 -0700 Subject: [PATCH 09/15] chore: multi-jvm testing in-build Signed-off-by: Sam Gammon --- api/build.gradle | 27 +++++++++++++++++++++-- tck-flow/build.gradle | 50 ++++++++++++++++++++++++++++++++++++++++++- tck/build.gradle | 40 +++++++++++++++++++++++++++++----- 3 files changed, 109 insertions(+), 8 deletions(-) diff --git a/api/build.gradle b/api/build.gradle index 12e9dee9..f043b8d7 100644 --- a/api/build.gradle +++ b/api/build.gradle @@ -13,6 +13,10 @@ sourceSets { } } +def jpmsMinimumTarget = 9 +def javaMaximumTarget = 21 +def javaTestTargets = [11, 17, javaMaximumTarget] + configurations { mrjarArtifact } @@ -45,8 +49,8 @@ compileJava9Java { group = "build" description = "Compile Java 9 classes for MR JAR" - sourceCompatibility = 9 - targetCompatibility = 9 + sourceCompatibility = jpmsMinimumTarget + targetCompatibility = jpmsMinimumTarget } tasks.register('validateModularJar', Exec) { @@ -57,6 +61,25 @@ tasks.register('validateModularJar', Exec) { args = ['--describe-module', '--file', jar.outputs.files.asPath] } +javaTestTargets.each { majorVersion -> + def validateModularJar = tasks.register("validateModularJarJdk$majorVersion", Exec) { + description = "Validates the modular JAR on JDK $majorVersion" + group = LifecycleBasePlugin.VERIFICATION_GROUP + + def javaLauncher = javaToolchains.launcherFor { + languageVersion = JavaLanguageVersion.of(majorVersion) + } + + dependsOn jar + inputs.file jar.outputs.files.asPath + + // ugly, but it accesses the `jar` executable which is peer to the resolved `java` launcher + executable = javaLauncher.get().executablePath.asFile.parentFile.toPath().resolve("jar").toFile() + args = ['--describe-module', '--file', jar.outputs.files.asPath, "--release", "$majorVersion"] + } + tasks.named("check").configure { dependsOn(validateModularJar) } +} + tasks.check { finalizedBy validateModularJar } diff --git a/tck-flow/build.gradle b/tck-flow/build.gradle index 27d3ea07..e8a13b03 100644 --- a/tck-flow/build.gradle +++ b/tck-flow/build.gradle @@ -20,12 +20,60 @@ jar { } } +// Run the TCK Flow tests on JDK 11. +def baselineToolchain = properties["javaBaseline"] ?: '11' + +// Run the TCK flow tests on LTS releases, JDK 11 and above. +def javaMinimumTarget = 11 +def javaMaximumTarget = 21 +def javaTestTargets = [javaMinimumTarget, 17, javaMaximumTarget] +def jdk8Toolchain = JavaLanguageVersion.of(javaMinimumTarget) + compileJava { options.release = 9 + + javaCompiler = javaToolchains.compilerFor { + languageVersion = JavaLanguageVersion.of(baselineToolchain) + } } compileTestJava { options.release = 9 + + javaCompiler = javaToolchains.compilerFor { + languageVersion = JavaLanguageVersion.of(baselineToolchain) + } } -test.useTestNG() +test { + useTestNG() + + javaLauncher = javaToolchains.launcherFor { + languageVersion = JavaLanguageVersion.of(baselineToolchain) + } +} + +javaTestTargets.each { majorVersion -> + def jdkTest = tasks.register("testJdk$majorVersion", Test) { + javaLauncher = javaToolchains.launcherFor { + languageVersion = JavaLanguageVersion.of(majorVersion) + } + + description = "Runs the test suite on JDK $majorVersion" + group = LifecycleBasePlugin.VERIFICATION_GROUP + + // Copy inputs from normal Test task. + def testTask = tasks.getByName("test") + + useTestNG() + if (majorVersion >= 9) { + // tbd + classpath = testTask.classpath + testClassesDirs = testTask.testClassesDirs + } else { + classpath = testTask.classpath + testClassesDirs = testTask.testClassesDirs + } + } + tasks.named("check").configure { dependsOn(jdkTest) } +} diff --git a/tck/build.gradle b/tck/build.gradle index 1eb0e2dd..aa354da2 100644 --- a/tck/build.gradle +++ b/tck/build.gradle @@ -1,4 +1,5 @@ description = 'reactive-streams-tck' + dependencies { api group: 'org.testng', name: 'testng', version:'7.3.0' api project(path: ':reactive-streams', configuration: 'mrjarArtifact') @@ -19,21 +20,50 @@ jar { } } +// Run the TCK baseline tests on LTS releases, JDK 8 and above. +def javaMinimumTarget = 8 +def javaMaximumTarget = 21 +def javaTestTargets = [javaMinimumTarget, 11, 17, javaMaximumTarget] +def jdk8Toolchain = JavaLanguageVersion.of(javaMinimumTarget) + compileTestJava { sourceCompatibility = 6 targetCompatibility = 6 javaCompiler = javaToolchains.compilerFor { - // Always compile the TCK baseline tests on JDK 11. - languageVersion = JavaLanguageVersion.of(11) + languageVersion = jdk8Toolchain } } test { + useTestNG() + javaLauncher = javaToolchains.launcherFor { - // Always run the TCK baseline tests on JDK 11. - languageVersion = JavaLanguageVersion.of(11) + languageVersion = jdk8Toolchain } } -test.useTestNG() +javaTestTargets.each { majorVersion -> + def jdkTest = tasks.register("testJdk$majorVersion", Test) { + javaLauncher = javaToolchains.launcherFor { + languageVersion = JavaLanguageVersion.of(majorVersion) + } + + description = "Runs the test suite on JDK $majorVersion" + group = LifecycleBasePlugin.VERIFICATION_GROUP + + // Copy inputs from normal Test task. + def testTask = tasks.getByName("test") + + useTestNG() + if (majorVersion >= 9) { + // tbd + classpath = testTask.classpath + testClassesDirs = testTask.testClassesDirs + } else { + classpath = testTask.classpath + testClassesDirs = testTask.testClassesDirs + } + } + tasks.named("check").configure { dependsOn(jdkTest) } +} From dde07b16337ea6d736c0f3f1961765ef98235db9 Mon Sep 17 00:00:00 2001 From: Sam Gammon Date: Tue, 12 Mar 2024 20:35:16 -0700 Subject: [PATCH 10/15] chore: switch to version catalog Signed-off-by: Sam Gammon --- build.gradle | 9 +++++---- gradle/libs.versions.toml | 12 ++++++++++++ 2 files changed, 17 insertions(+), 4 deletions(-) create mode 100644 gradle/libs.versions.toml diff --git a/build.gradle b/build.gradle index 347ea52e..49a0d24d 100644 --- a/build.gradle +++ b/build.gradle @@ -1,5 +1,6 @@ plugins { - id "biz.aQute.bnd.builder" version "7.0.0" apply false + alias(libs.plugins.bnd) apply false + alias(libs.plugins.testlogger) apply false } def sonatypeRepo = 'https://oss.sonatype.org/service/local/staging/deploy/maven2/' @@ -8,12 +9,12 @@ def sonatypeSnapshots = 'https://oss.sonatype.org/content/repositories/snapshots def distributionRepository = properties["distributionRepository"] ?: sonatypeRepo def snapshotsRepository = properties["snapshotsRepository"] ?: sonatypeSnapshots -def baselineToolchain = properties["javaBaseline"] ?: '11' -def javaMaximumTarget = properties["javaTarget"] ?: '21' +def baselineToolchain = properties["javaBaseline"] ?: libs.versions.java.baseline.get() subprojects { apply plugin: "java-library" - apply plugin: 'biz.aQute.bnd.builder' + apply plugin: libs.plugins.bnd.get().pluginId + apply plugin: libs.plugins.testlogger.get().pluginId group = "org.reactivestreams" version = "1.0.4" diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml new file mode 100644 index 00000000..ba2e8733 --- /dev/null +++ b/gradle/libs.versions.toml @@ -0,0 +1,12 @@ +[versions] +java-baseline = "11" +bnd-tools = "7.0.0" +testlogger = "4.0.0" +testng = "7.3.0" + +[plugins] +bnd = { id = "biz.aQute.bnd.builder", version.ref = "bnd-tools" } +testlogger = { id = "com.adarshr.test-logger", version.ref = "testlogger" } + +[libraries] +testng = { module = "org.testng:testng", version.ref = "testng" } From 9b534a5c49c1f6c747c24e966b25aaeb28993b77 Mon Sep 17 00:00:00 2001 From: Sam Gammon Date: Tue, 12 Mar 2024 20:35:38 -0700 Subject: [PATCH 11/15] chore: use `testlogger` plugin Signed-off-by: Sam Gammon --- build.gradle | 47 +++++++++-------------------------------------- 1 file changed, 9 insertions(+), 38 deletions(-) diff --git a/build.gradle b/build.gradle index 49a0d24d..f5a897ca 100644 --- a/build.gradle +++ b/build.gradle @@ -50,11 +50,14 @@ subprojects { } } - tasks.withType(Test) { - testLogging { - exceptionFormat "full" - events "failed", "started", "standard_out", "standard_error" - } + testlogger { + theme 'mocha-parallel' + showExceptions true + showStackTraces true + showPassed true + showSkipped false + showFailed true + showStandardStreams false } repositories { @@ -122,40 +125,8 @@ subprojects { artifacts { archives sourcesJar, javadocJar } + signing { - tasks.withType(Upload) { - repositories.withType(MavenResolver) { - it.beforeDeployment { signing.signPom(it) } - it.pom.whenConfigured { pom -> - pom.project { - url "http://www.reactive-streams.org/" - name "reactive-streams" - description "A Protocol for Asynchronous Non-Blocking Data Sequence" - inceptionYear "2014" - - scm { - url "git@github.com:reactive-streams/reactive-streams.git" - connection "scm:git:git@github.com:reactive-streams/reactive-streams.git" - } - - licenses { - license { - name "MIT-0" - url "https://spdx.org/licenses/MIT-0.html" - distribution "repo" - } - } - - developers { - developer { - id "reactive-streams-sig" - name "Reactive Streams SIG" - url "http://www.reactive-streams.org/" - } - } - } - } - } } } else { uploadArchives.enabled = false From 45cba7d1268c69a05714e14adda26ba24a169a94 Mon Sep 17 00:00:00 2001 From: Sam Gammon Date: Tue, 12 Mar 2024 20:35:50 -0700 Subject: [PATCH 12/15] fixup! release logic Signed-off-by: Sam Gammon --- build.gradle | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/build.gradle b/build.gradle index f5a897ca..9b85fbbb 100644 --- a/build.gradle +++ b/build.gradle @@ -91,6 +91,34 @@ subprojects { publications { mavenJava(MavenPublication) { from components.java + + pom { + url = "https://www.reactive-streams.org/" + name = "reactive-streams" + description = "A Protocol for Asynchronous Non-Blocking Data Sequence" + inceptionYear = "2014" + + scm { + url = "git@github.com:reactive-streams/reactive-streams.git" + connection = "scm:git:git@github.com:reactive-streams/reactive-streams.git" + } + + licenses { + license { + name = "MIT-0" + url = "https://spdx.org/licenses/MIT-0.html" + distribution = "repo" + } + } + + developers { + developer { + id = "reactive-streams-sig" + name = "Reactive Streams SIG" + url = "https://www.reactive-streams.org/" + } + } + } } } repositories { From 9de07273781a2ee0b1044a6916c2bc3e5463a501 Mon Sep 17 00:00:00 2001 From: Sam Gammon Date: Tue, 12 Mar 2024 20:36:00 -0700 Subject: [PATCH 13/15] chore: update verification metadata Signed-off-by: Sam Gammon --- gradle/verification-keyring.gpg | Bin 28509 -> 26345 bytes gradle/verification-keyring.keys | 674 +++++++++++++++---------------- gradle/verification-metadata.xml | 30 +- 3 files changed, 360 insertions(+), 344 deletions(-) diff --git a/gradle/verification-keyring.gpg b/gradle/verification-keyring.gpg index b7a872ab21741ccd450a62eceb2732267719b541..1c6e93751dd4d3732e8d769ab378dd9d575fef40 100644 GIT binary patch delta 3534 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 mX*IB9_-BrOcXfP3il=ckB>fNE>4nPx delta 5704 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 diff --git a/gradle/verification-keyring.keys b/gradle/verification-keyring.keys index 046b2f7a..8ebaff2e 100644 --- a/gradle/verification-keyring.keys +++ b/gradle/verification-keyring.keys @@ -36,26 +36,20 @@ OqUXRixLyi5wELN6GHlsGVUQS3IfB4JtuhScsieSB8PTree68/knMq6JI08mJqZr d433t5O+tGXWL2TjAz+Scsk2Hf4zcuDeQcxELAMnVaVgKuGuEZvibrjsdIvJDGI+ 0BzWIu8ZP8ldBl4SVtzGpEVzLvDUo3mOqBeTkj3rP7xLtFDN/3AFtowbLfL7L2Pg SMcTnKK+jfFHRfbHP1Ih3rQ4ilLzhCnY/QIZABEBAAG0K1RvbSBEZW5sZXkgKHNj -YXJ5dG9tKSA8dC5kZW5sZXlAY2FudGFiLm5ldD6JATgEEwECACIFAk+xZxICGwMG -CwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEKat/JPvNIk+ysEH/iY5dP/4ERAQ -8YC1j1XoYmMxW219uzxZfwI0ltLtPjGQlZbwlFvwjZk0nDJ6O1iZSeZQm804uRup -gUZe3wqOp7a7z5zHab93QD/nA7O9QmLf2RC7Y0mW0EvD0tfbCzt6JJkAaxKTDA+T -jFoukUZx2KJr0XToE6kwAnKmCgyFkzb2SUqfsBRNRBJBa6XG/1mAtDJJSM1XLChV -Sa9nLwYjZzIcebtmtQ1vVqovO74ixxEzonLlNZi7tkc3GS23yntf5tAH0bQ9bM68 -TB9RHpLvjGgHUJtghFQN/Ny+//q1EsjRGn6Pa20cUPxnMS+WguOYIQx5jTb9ZHA0 -WBcu/V4UL8W5AQ0ET7FnEgEIAM3i3e1sjwrx2PN8XYMPQWG+/YTtw1BYDl2+iYE+ -LaZvtq1hpbgeCLgEVwXrCJ4spLP1rFXogWqKrkJ0LRjlpdKhKBvyH1ex4grh3cWN -/bIDJcJ7JA4I/Bhqhlh8hYycS9pGFeS+MR3aFIsii+vadrwYYvuVYGeWvdZhB7mJ -KYevj5Ms0OpYTfZd95Pzo4o//lNpDnrG7Xd3tgTNU/fkpw6rFB/2Ib1Qlk+Kz1z6 -JNsp+tOPGGCBrzwfwglcikTuqS+xyRgC9cHh5eCol11uSoWPKcQR2Ar8Eo56nxv/ -UApdu15iJ7R8cA5guKeeS4jt0CGCPs2PhuggDxI73Xvl4zsAEQEAAYkBHwQYAQIA -CQUCT7FnEgIbDAAKCRCmrfyT7zSJPuylB/9iwtIQeexMWBmQNdDe0md8HLulDfcu -jPtklrvYHtXMJQFaGA0Vafq0oT9MhBfb1YCP79uF0qgswSxINYCOJx4nTPIP9BOd -TwqfGo7ul27REgNq4lIUW0GkMgZAUA2ft/vc0u/I0PqnhKCi4Pq79hLIx7eiX2yS -fXfYfLXRVzbMWKMoi7lWXseQqbM0RvCA54J1qAi6Ew+JyoYGQ7OvXdL5Eh5Tkm2c -pIADyqCkp/aFDe5lqZiU1zS2fU6mpOf/o0co+GoYkieIxxibDCmt3BioLgmyzpGU -sMNwh4pAIQUGkcxd4spC0KIWdDEvq/QJEEIhZlI/ojefaZkRseFrtl3X -=rYGl +YXJ5dG9tKSA8dC5kZW5sZXlAY2FudGFiLm5ldD65AQ0ET7FnEgEIAM3i3e1sjwrx +2PN8XYMPQWG+/YTtw1BYDl2+iYE+LaZvtq1hpbgeCLgEVwXrCJ4spLP1rFXogWqK +rkJ0LRjlpdKhKBvyH1ex4grh3cWN/bIDJcJ7JA4I/Bhqhlh8hYycS9pGFeS+MR3a +FIsii+vadrwYYvuVYGeWvdZhB7mJKYevj5Ms0OpYTfZd95Pzo4o//lNpDnrG7Xd3 +tgTNU/fkpw6rFB/2Ib1Qlk+Kz1z6JNsp+tOPGGCBrzwfwglcikTuqS+xyRgC9cHh +5eCol11uSoWPKcQR2Ar8Eo56nxv/UApdu15iJ7R8cA5guKeeS4jt0CGCPs2Phugg +DxI73Xvl4zsAEQEAAYkBHwQYAQIACQUCT7FnEgIbDAAKCRCmrfyT7zSJPuylB/9i +wtIQeexMWBmQNdDe0md8HLulDfcujPtklrvYHtXMJQFaGA0Vafq0oT9MhBfb1YCP +79uF0qgswSxINYCOJx4nTPIP9BOdTwqfGo7ul27REgNq4lIUW0GkMgZAUA2ft/vc +0u/I0PqnhKCi4Pq79hLIx7eiX2ySfXfYfLXRVzbMWKMoi7lWXseQqbM0RvCA54J1 +qAi6Ew+JyoYGQ7OvXdL5Eh5Tkm2cpIADyqCkp/aFDe5lqZiU1zS2fU6mpOf/o0co ++GoYkieIxxibDCmt3BioLgmyzpGUsMNwh4pAIQUGkcxd4spC0KIWdDEvq/QJEEIh +ZlI/ojefaZkRseFrtl3X +=qnqR -----END PGP PUBLIC KEY BLOCK----- pub AC5EC74981F9CDA6 @@ -116,27 +110,21 @@ hD5S61ppdkOugBjVTHdgda3xJ7zBZdnwjZvV/TyayQltbh6hU+BMlEolzXLgyvY7 cAzKE+iKWbLLwfhRn1iuC7s5l1NLPsh44IUt3xDaFXNQrPO5OnRz8bqsGFVawxmu 2bPqIjkhxEiYpxwaZZbDkgBR6rbBth6A7QOadQcj/9wNdekoM9dyg+olOUmnLrtA nMBhrvvbm2fZxTps3SZHlLV7+iSu71B5SqU/kT54/49n8vxrQiGvzp9K+t7c7EP2 -w4Ax1nYpRkCxYdHOX3YBdayUiP9ZaYH/YHtLABEBAAG0I8NhbW9ubiBNY01hbnVz -IDxlYW1vbm5AbWNtYW51cy5uZXQ+iQE3BBMBCgAhBQJXW0nyAhsDBQsJCAcDBRUK -CQgLBRYCAwEAAh4BAheAAAoJELDzcQ+mSQDnRqcH/Am3OQSYYBFrtOT3Zrf2NEma -ojd48oWZ5xODFmqSs5ksd3op9qakbqkxITzq7BP6CkFbi2NEWYVbPp+jiSiGr02L -yNA9ipiMBDyVZ7CXTBYqCQZ/3yQKOFN38U8R1SnoH1gDq/YdxDkSkWZEWQlXj4T9 -QR/fXWObN/oIdVDNONL99nqU0+xSvsE+toVHTH7upY7RcdDdnBEarKrifYjbCvpU -0yiOgB1WOj91z/BrfpBFyJ6/qW2/qJun1Ja1bdpKPm0ZbTCupYOALJhf8dcznNDn -gVCEB6L1+s693SuU2ZzFkdykpU/8WxlhjJcSqTpp8BIlwlFyOmZC7jrxArr2Jk65 -AQ0EV1tJ8gEIAJVavNan4WxxlwLwvnBj3/wcEWqN+kfMHENMSjmRWOYSmC332hhG -LmTDi++BPWt2OOvHUusJV8dZP5D9yUBRFsKozIpyXyS76C5VYGMY8WZ6kyqn/mLC -iwmnkOJ24kXLaaHPsQjv6i5f2KliDVhAGUHmNMJgH8o/GL7zZ03Mb8ZlKFZobp0d -n+/lxoOtQSzR+cBz8NvMBkOKD8r4PJA6BxCR1HVEHsq4xSnjr/UZOYvh+Kaxfnop -7Rn9in5MoY2rCY+PV59Xbx4grqNpjupyHEf1MHodJRj85JiClnLZk7dNJ/kr+zgg -wbsd12/GHkBt/pxuWhe0eFcAOJmvqC3c4pUAEQEAAYkBHwQYAQoACQUCV1tJ8gIb -DAAKCRCw83EPpkkA54FACACFZB2Tk96FQkr8+WHOz93CJs4UD88PosLaKmiXKP68 -arjH3y5jhNLBzqteZo0Crfw75DYWIZChdf5uLGKCWXBEytF4uoHOy9Lv/3emoSee -nluFVcNjL7CIOQDRmqw1t/LjnsLbgvlwHix5f7I6Txu/J0HKJbq0XpoTqCzFK6sx -EPHH3gZto+XfHk85haKd73SOM4edkmJx+jDXES1wb3K3SpYibt+uPVfLYXWxK7xA -aztESTIqZ9RnYHzd/7z6DO4z//lfB7IVAqvM8ga7Qj58ObeqZxx2iVit5WUZ4cE3 -0crNGyXH/HKlAp+B9EvENnwr++TI1CGYthPLFHFc831L -=MZeq +w4Ax1nYpRkCxYdHOX3YBdayUiP9ZaYH/YHtLABEBAAG0Je+/vWFtb25uIE1jTWFu +dXMgPGVhbW9ubkBtY21hbnVzLm5ldD65AQ0EV1tJ8gEIAJVavNan4WxxlwLwvnBj +3/wcEWqN+kfMHENMSjmRWOYSmC332hhGLmTDi++BPWt2OOvHUusJV8dZP5D9yUBR +FsKozIpyXyS76C5VYGMY8WZ6kyqn/mLCiwmnkOJ24kXLaaHPsQjv6i5f2KliDVhA +GUHmNMJgH8o/GL7zZ03Mb8ZlKFZobp0dn+/lxoOtQSzR+cBz8NvMBkOKD8r4PJA6 +BxCR1HVEHsq4xSnjr/UZOYvh+Kaxfnop7Rn9in5MoY2rCY+PV59Xbx4grqNpjupy +HEf1MHodJRj85JiClnLZk7dNJ/kr+zggwbsd12/GHkBt/pxuWhe0eFcAOJmvqC3c +4pUAEQEAAYkBHwQYAQoACQUCV1tJ8gIbDAAKCRCw83EPpkkA54FACACFZB2Tk96F +Qkr8+WHOz93CJs4UD88PosLaKmiXKP68arjH3y5jhNLBzqteZo0Crfw75DYWIZCh +df5uLGKCWXBEytF4uoHOy9Lv/3emoSeenluFVcNjL7CIOQDRmqw1t/LjnsLbgvlw +Hix5f7I6Txu/J0HKJbq0XpoTqCzFK6sxEPHH3gZto+XfHk85haKd73SOM4edkmJx ++jDXES1wb3K3SpYibt+uPVfLYXWxK7xAaztESTIqZ9RnYHzd/7z6DO4z//lfB7IV +AqvM8ga7Qj58ObeqZxx2iVit5WUZ4cE30crNGyXH/HKlAp+B9EvENnwr++TI1CGY +thPLFHFc831L +=obUO -----END PGP PUBLIC KEY BLOCK----- pub B16698A4ADF4D638 @@ -226,29 +214,79 @@ cr8zbBNcW2kwFg5Mqy7TiAPzakzCslKAAX+cjAKSOWyRbmkEYnNgMlctdyENOR9+ BpP+A/9anoVEfULqoETShmgWdi94gx713qymhNBpFZnPpm4j4JuxKopl/unQmw5i Jwtu93cg38UfaOMJjTi6tJ6F6SE8xXv43nKs3Xb+Ll1MpTgaGUXEhCOeTZl223Qe NBUp8kvfcys6aVX6GT93dmWxtMewlc6gc7HVQnUnyCFsVeoy/7QjSGVydmUgQm91 -dGVteSA8aGJvdXRlbXlAYXBhY2hlLm9yZz6IYAQTEQIAIAUCR1SGsgIbAwYLCQgH -AwIEFQIIAwQWAgMBAh4BAheAAAoJEMksX+xwFhxid2sAoKppOorIM7ygdeFyhvcN -VV0l9cRnAKCGxTdvoOnDAgZN+5lBP0q/o3PGPYkBMwQQAQoAHRYhBPp33P7y7m6y -3r7dLAEleUZNAcBqBQJdyJjjAAoJEAEleUZNAcBqkiEIAJSzD+MACN+Dy/6l0htV -6nP9sUTthw1Uwzxmj5vFCrBIjpq/l7ZSVfmNyyW+X/U3ZYIg8AmM1aoZ/x94pDO/ -XAvSlrw7XwAyiN+3lMg0PAIKCzjZPYszSvkdy+1yTd7ka5vp1F5AAVl1N+erIttJ -yT/aKW708XGR5kRMBBvanXQJxTTNBrPVPBPTqM7F1cdR2sGzKcJmRudbuMJt6MXe -SDOOjZD398ix8HIfk8CyTL38OvGaALOd2vxsyMLg6fjKmtbYNRE95fHJsmQcphco -rLZcKg6SJlsGb8UIotMAmFWK0uP+h9oe4TGzhl0qNdsKr8EArWv+hUfRdmnw1moo -jRe5Ag0ER1SGshAIAPzs1unq2BMWlk4yO8D5w9br9S3qtlkYRtSOWH7ilOyvdUzI -pQZvC/qgphdUBIO8hepmLXcF4zogNGKBjlRHjSRC4SRSmTqHmaG/kdwwtOblLAZe -8YtzYAfDLGoLOTeKvp6mUjGWhA5eSUeGQIWAmQcucQZp75kT1C+dAgzdiASsR1Tm -lJZQSGQ7XbVR9+xsGlc17oT8bC4gDnidvVtbfEayD/U40JT4c8Luz/Rat/yXApoR -fMTpnJ98Hwmf1TLXhVafGk6+GjuLqNDvx2IrG0rVMNmAxnv0Zl4jTg/AlxxToNP3 -OLXrbUYbZ5fDjt4UOLK2OXspgRuLZ1dNpd/2NgsAAwYIANouVBiqlgyeOi74ktaz -cwSyxz7+xgEhYnEGOB8TE70RHQSHW/qdvO2s6dJdIsWi0Dquh4EjGW3sURvw3Q0m -pMZTq/pIpeTSZx5mfbV8xppyz9VqMUBHNhVXRv4yk4OoM9sfQs9aUTMcQBzejrPn -O4cWCmw+uPXwWxj4GTz9Dgo8Kx1X7t1mjGnpONUMZxX5ObPmDRDZcvl33l9j7mC8 -CsLlZGCX7aqIVPW0cdKYXQ4EFmyGTFc4oca+ck8X5Ar5h5ayx5/pQDs9zd8YdEIf -w6H1hAwHnvLpPqW8wl0jjdr+IjvZbB4PsF2C0RAR8XRNBK3mbtlcwRWvYjdp4bSZ -7kyISQQYEQIACQUCR1SGsgIbDAAKCRDJLF/scBYcYnKDAJ9NS1MPppAX0CRbDC3Q -qcfjjkWDzgCfWEb3wKP15906jEy3qUAQdfV4cuo= -=GWfv +dGVteSA8aGJvdXRlbXlAYXBhY2hlLm9yZz65Ag0ER1SGshAIAPzs1unq2BMWlk4y +O8D5w9br9S3qtlkYRtSOWH7ilOyvdUzIpQZvC/qgphdUBIO8hepmLXcF4zogNGKB +jlRHjSRC4SRSmTqHmaG/kdwwtOblLAZe8YtzYAfDLGoLOTeKvp6mUjGWhA5eSUeG +QIWAmQcucQZp75kT1C+dAgzdiASsR1TmlJZQSGQ7XbVR9+xsGlc17oT8bC4gDnid +vVtbfEayD/U40JT4c8Luz/Rat/yXApoRfMTpnJ98Hwmf1TLXhVafGk6+GjuLqNDv +x2IrG0rVMNmAxnv0Zl4jTg/AlxxToNP3OLXrbUYbZ5fDjt4UOLK2OXspgRuLZ1dN +pd/2NgsAAwYIANouVBiqlgyeOi74ktazcwSyxz7+xgEhYnEGOB8TE70RHQSHW/qd +vO2s6dJdIsWi0Dquh4EjGW3sURvw3Q0mpMZTq/pIpeTSZx5mfbV8xppyz9VqMUBH +NhVXRv4yk4OoM9sfQs9aUTMcQBzejrPnO4cWCmw+uPXwWxj4GTz9Dgo8Kx1X7t1m +jGnpONUMZxX5ObPmDRDZcvl33l9j7mC8CsLlZGCX7aqIVPW0cdKYXQ4EFmyGTFc4 +oca+ck8X5Ar5h5ayx5/pQDs9zd8YdEIfw6H1hAwHnvLpPqW8wl0jjdr+IjvZbB4P +sF2C0RAR8XRNBK3mbtlcwRWvYjdp4bSZ7kyISQQYEQIACQUCR1SGsgIbDAAKCRDJ +LF/scBYcYnKDAJ9NS1MPppAX0CRbDC3QqcfjjkWDzgCfWEb3wKP15906jEy3qUAQ +dfV4cuo= +=PKNA +-----END PGP PUBLIC KEY BLOCK----- + +pub DDDAFA7674E54418 +uid Cedric Beust + +sub 50C6CC55C6F24FB1 +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: BCPG v1.68 + +mQENBF8tnmMBCADROe7j1ZvgiMgfsQKqCSuSqgMkfMT2DEXwZKdHqkj0gfx8MPQg +OP1pmMgpIwIXKr5kZ9KMGiGULNnS+WU2SNqjyKeq3MlnSYW5Di52MoAD7W4cHmry +8ekaasF/x0AS5Q3M/6X/EBOD8YLWaFkk+h5x8D4IOSqiOiWH8olGjY4ZmGblaldX +PLr7BWSrPKQ1QDsoICn583Mnjz3YLlc4p5IKnY2wss1zm7/gQk6KkdL5bRuASxLh +to2adZ1LEE8MQfHweauHCK915RmMg7W3KW66/EsuCyEwZKBwq6rIpAciym2FngJt +CPnY0o4IMFSasV7d1xSH5N4jeHL3Hh2Yd9tHABEBAAG0H0NlZHJpYyBCZXVzdCA8 +Y2VkcmljQGJldXN0LmNvbT65AQ0EXy2eYwEIANZAQd63jnuXS/btvoRXGM1kwaU0 +j3f2jeTg12sIGCUiiM4NcD2OnxWSKwvv6SWuk4/W+ahV3zQuTR8ZI51kNwgxvNZY +KFExUyRjS+B4Oo6ArDSPp76Kyo3+82KmPaeHxxibir4sHoZUTSl8UKyszxEUV7BE +756wS7DRHWpeE1gsjClFXc6/hnEOnXIzsoAdIFzzockfLW3guouh+MD5EE/x//rY +yZJEotsPCu4vP/TanR9H6WnYOIn8g3jSUarV9LFGNcxNCcj5sh2x3tOVjQBtPpE2 +SUEveLj3aHFTXzx29rU9kzSzEAxlFdK3pwUK/P+MO+V/qMHoOY3XwTZp3nkAEQEA +AYkBNgQYAQgAIBYhBHzVK1qClRN8iPtXSN3a+nZ05UQYBQJfLZ5jAhsMAAoJEN3a ++nZ05UQYDBsH+wW9ifWjlDSv6eB0wksKNBhPxrq7LxIfw3eTxGxMn5p3RN186gbC +/GX9IUHUwSMRWleBuiOO/TWBUOiVrY5shhJf4ZZy+Ul19crPyhnl/z8p1GsBzeHP +uB/yG5RV6uLAegQQDvGLXiQlmnAI+Hw+IwyXkpAVa4bgPV5CfA6bnhwjD/2FgHdH +uhUj7ZMeWbcICUVqWxfNnU3+X8lAbot8+Qqau5uv74W95fHqLONmyx0WJouDh2QB +B0DCCmYWYJAdvrcEIrOo/APGlrOmTXA/pjmiucu78hJo6j1UL3KVf69Qr3d6rgoA +W5SOf8mTnm2l1QQfyZbXZbpSSO30XFVvxlc= +=hvNT +-----END PGP PUBLIC KEY BLOCK----- + +pub E0130A3ED5A2079E +uid James Ward + +sub 0AE7BBD7FEE66E0C +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: BCPG v1.68 + +mQENBFlMSXMBCADcgN0/57D/gU5cDobPiRuDT6qAxb/NWhQiqwAocKd274r4gPJm +RbffUEZEgKhjH6l0CQfilC4R4x2QtU9sNC9kB/D6zumoS1uI0Hmx1pC4UseUy55r +20WDxujUQ7OcJbpe2cDcQVKmMok2top7ZJqt4KVosQEeT9jjsgBBbEtg4cWb5ddR +5rf+aJw0v/6dMLef1r9YAo0ZtLc+g2dyacqw73tcWEd3oCH++SgE26NntN+GibZu +VXSE5u6xI4KwfT2vUT3jt5Fb29myX4sxsfB7n/xageuJYy5ms1ABS+WDO5ssEZC4 +eQEVL7eyIb9YhNAW/WtjeAuOfOKNonoqKFGXABEBAAG0IEphbWVzIFdhcmQgPGph +bWVzQGphbWVzd2FyZC5jb20+uQENBFlMSXMBCADIKz91Pu2Aom8UkCjma6et0Wkl +JL+5gr0Ny8eD+GQ/7AxLCzoipAHPmVOxE0yEJBKR2om7wmTawPkdKXwI9C2AS7LR +CJFMbQGlTOAwUBjdd2XbqeOnyPKz2RMmVW9l6Wf6kuEWIkrRcic1HWswSbPyAewk +9MaeA1BVDq7MpFctGls1reM9EAXtcdwJqQDvw3awzeYL7Zls1m1d3+/Nz7it4ONY +7uxfV1+Z7rmrTUjRzh7euVy+L5oZkn17j+lBYyujCs6vc6W2Q+IqVD6ChCHeTjQ0 +rnF+AvDsnaQvPqxViQgww76HKMd/5ek84oUF3/DAw3AdLtU4Az8+DP0trwYfABEB +AAGJAR8EGAEIAAkFAllMSXMCGwwACgkQ4BMKPtWiB57ZNgf+NqQZJ1EAdmI5D68i +dQdQK3MWizu4FaP5YE/6yxi+wbk2LBSJfZCVA9eehH5JkgJH7MT88FDYfxsn1ULd +PResIXqa8dXyzSQhSGAPWQNFlWRksGxNzXYrsBGid/x2e+yLXkIeSypZahbkpWd7 +tMXbRiY5wFFPcB8Vh/tFt0T5utqYkiXFlMOwkqhMrl/vGfnquB2NL++M538uhsgo +ope0tU/X3Wp9toT98YiR4FSrchZoYa8+mMXGS2tH2Jfkd5gkL7dhbomiy93f7h9M ++hM1rPl2TW40QUxiPVZju7IiMuq42rXbpbd0sdargQosQuDLNgFhAO2zKr1JgqAd +jP9MfA== +=MUfS -----END PGP PUBLIC KEY BLOCK----- pub E2F38302C8075E3D @@ -269,44 +307,76 @@ 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 -f7TkwC6aybc= -=B8WW +tClHcmFkbGUgSW5jLiA8bWF2ZW4tcHVibGlzaGluZ0BncmFkbGUuY29tPrkCDQRj +rQs6ARAA0lHRI+3c947M+BDmwHTV52ZyecwJKhOM2xrVPeLF3QbcQ9RfvuXUzRNG +QlcCS7WZ2L8WF2MBwRAweWVku56Ey/a15IF6Qz+VhlS02CDIhoz5Fbtn1mWe/E7u +CiH0Z5FnVKDENoO2DWfHFVONHGZZOt7UXbe04e9YPiv0SlnaoezStJWrmpWoSvhp +aXndEBKNU36xITYE9CVAsFs7jOKlhw8rO4rRfvsSybD0sEv8AFKr7Fqhs1v9Sq2G +28YCl+L266i9455OCB73CgLm9LnIS7/SkeUKbFU/Ok5jgd1rAAJT3aLFv2oQHNv1 +8ogsb+SRKPGKRKwWeU0oFMu5STQAUtCVFQnlAqvwAGdk0nDsEV/GlwnmAEn0RzmQ +olq1suZzBhp11bONjDCDC/Xfh69+wQghU9xm8PFjk3hpXhPdrHneXQQIzj8kFj/i +L2MRe8zsjbOOkQFZSX4Nxt91cBAUICcC0pf7FGKkh3vULm28SNH4jLEyXWev+X27 +F1ZzGxnuJEA2Ww04MpaLYh3zAjDXn4G9PsgOhcPhB0Hjf7/wLaXKU9MNdgDqZpTc +uPsz0BPAIu94LSXk0aYrqG95NfycLyx3pgdeArcQRohwMmBwoz6kz8kFCIpI/kfJ +nnBv+tEX0phntx1ux6bfdOwTRHHOLOFfbryTxyCXWUv4JrUqeVUAEQEAAYkCNgQY +AQgAIBYhBBvZemoVTngQ7gvIMuLzgwLIB149BQJjrQs6AhsMAAoJEOLzgwLIB149 +GQIQAKQzVDHOR+2bJubwvRe9QmQTtvWqzLomFT/5OqB1myR7ulVjlPXJ/xSp13CB +eh/VnGlf5bIQEcRrLl1sL1tzD+/WyDVwbsTmKzHNnRBl6EUemMk6rPDZkLpnXVnk +wGWtQ1ywJulPyqcrlO2koXyaDXHUjovqSysiSbzPOcxmGHgNnN8A/vuVWqhVeKba +muHZG8DX/SkijzZ99FZtgWghWh8ke2t0yU2Q6z6PqOzI++TpQrEs/1GRTDr+Q5z1 +PHTnj+4mnrV16nsyoVcyenW1IMT4fiEQzn4vi8kke92FIFvyRw38gJHhz5rJkhln +lu4Q7FpYIsATVTiIxKji8obDFfmlx5ydvBdubkIXJzniEyBWEe3/jvw+uGhKto8d +p10NFEVNQgmSNo5XKH1E0jlSw4GivJnHOWK7Nsm3DmIw1bSgrMH08CK8xDhuzBP6 +KR579xs8AZcVCO8aeXeWULCx0RMB71ayN0McSYdnjUxjKYN42XSe/3z2LmeRWbwC +5eQPcNtod5Trst/qKFsIe1+YldZTUkoBn7dZoUkb9zXMoCFZMbDE83TqEw6fhqIa +DOlScluOcSGxB7csvW8grbyyITjkl1yDd02c/Pk9cETneAhbAvBHtmi+smE00g8g +/i1danrgyl+bfzJ3oAOdqBLBVl2su65IPU8GcH+05MAumsm3 +=Rl7p +-----END PGP PUBLIC KEY BLOCK----- + +pub ED2378CD09A08CDE +uid Guillaume Nodet (CODE SIGNING KEY) + +sub 937F1470B7330556 +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: BCPG v1.68 + +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 +=nw+1 -----END PGP PUBLIC KEY BLOCK----- pub F0DF21D1D0A3C384 @@ -322,26 +392,20 @@ mQENBFYqhSkBCADtcR9B9QdIkPwTTpBOPXKI7iyjXqubQLTUOVMXWbBkQutCA/mX 8BpmbsLLM8IajBPOdVOnRMLqaTYkuqd/4rIrWzlyP3oy8+xdUcODjJRaIbzMTP4e tmqteEem6j4Mwy3smN+UJ4/s2GJ7mYquQSdrHtkzfGiSTcIsqXmpY87T0CsT6F0f KtJBel7qCKflltmfuRJBh4oym9v3ag9V+oOPABEBAAG0HVNhbSBCZXJsaW4gPHNh -bWViQGdvb2dsZS5jb20+iQE4BBMBAgAiBQJWKoUpAhsDBgsJCAcDAgYVCAIJCgsE -FgIDAQIeAQIXgAAKCRDw3yHR0KPDhLl0CACQiHc/BJJhPeFhtuBCm0vli0U2YNo8 -zKxo0MZpe8QUkGSsLmxmvX5tY1tH7SnrYk+g8XerXMTzikk/RSrYF7hMcUF4wYGj -3OtzhbXGuz9lH8tPL5KhmGxFXXw4BEbw3wUItBcdlvGaGfQEO7BJKPZ3lgDHTRy9 -masVpMXXBk5QkjWfOc+G0j0e03emwoUOP+LhTIKWTbPU3u1IYIi9mP8LWnfuCMBG -K8LV/d3RW5B/72VDLYS6s/CwEMKhELdYVrA4RL3OQ2kvaZuK26hQcOMNAHj8xKDn -FKohPz1WtsOUUuG1RYw2DsyL1voVSPtRnsyL7PWJY92WeSDgf+ZJIpiPuQENBFYq -hSkBCADFzmSrmnqV2PRIUE4iWrkigVivGXmzrJwbpvf8huSs6LkyClIW78JhFchM -tTdAs3oAKfFhjI1xDNur9afbB9ULip7K2bOX1dJ4chi2Fz7eEnPIypfckaMa+BrF -x0v+ssXDip+VSmpvdDGBpgkGnfrlpOF1YmNTzhV9QLm/0B0wgjwmUr+/c+uSqbsr -fTVUSOQFCzhSSDOdcpACe2bFpzYJ6/XVTjFQDji9XVI8zsxSXVT6BLx53fZjkWsj -AMEygldsZa+Ohu9r7k7sZf6XoML1aO0Ojnv6Kk+S5zFMrrSjEf9DBnWL1fWDJT6j -trR0QO81GNQBPsvo5WLOTdpEegG1ABEBAAGJAR8EGAECAAkFAlYqhSkCGwwACgkQ -8N8h0dCjw4TFnwf/aKk6r9sJrnOIrAt0MXFClSrkaN9xPZwKZDYIObiwespv7Jzj -2+F9xY0r+OjUpZga7F74fcydM3EGiKLOHPmevqh2teJXv0UnhXy/WhiqZH2eoe0p -Q01WbF0sh5AXZijye7yIeoT8jl1yaB2tW0tvrmzPPhY4aNr3Bl90X9futRoVbl4d -59i6MpxI3AhJKcmOgq9OPCZm472aWC/rfe+SozBx7nYZ1jJfuFe6x2Idj3LaXYue -sFvkAj5J85s7tHWqJP5luhD++s7tVwk8L41uHO0w9sQrSysk6HmXDzwB9/eDDMKG -oTB3Uw4tBd2xwDxR9p4Bks7+leXL5ogr7RL8tQ== -=LPiO +bWViQGdvb2dsZS5jb20+uQENBFYqhSkBCADFzmSrmnqV2PRIUE4iWrkigVivGXmz +rJwbpvf8huSs6LkyClIW78JhFchMtTdAs3oAKfFhjI1xDNur9afbB9ULip7K2bOX +1dJ4chi2Fz7eEnPIypfckaMa+BrFx0v+ssXDip+VSmpvdDGBpgkGnfrlpOF1YmNT +zhV9QLm/0B0wgjwmUr+/c+uSqbsrfTVUSOQFCzhSSDOdcpACe2bFpzYJ6/XVTjFQ +Dji9XVI8zsxSXVT6BLx53fZjkWsjAMEygldsZa+Ohu9r7k7sZf6XoML1aO0Ojnv6 +Kk+S5zFMrrSjEf9DBnWL1fWDJT6jtrR0QO81GNQBPsvo5WLOTdpEegG1ABEBAAGJ +AR8EGAECAAkFAlYqhSkCGwwACgkQ8N8h0dCjw4TFnwf/aKk6r9sJrnOIrAt0MXFC +lSrkaN9xPZwKZDYIObiwespv7Jzj2+F9xY0r+OjUpZga7F74fcydM3EGiKLOHPme +vqh2teJXv0UnhXy/WhiqZH2eoe0pQ01WbF0sh5AXZijye7yIeoT8jl1yaB2tW0tv +rmzPPhY4aNr3Bl90X9futRoVbl4d59i6MpxI3AhJKcmOgq9OPCZm472aWC/rfe+S +ozBx7nYZ1jJfuFe6x2Idj3LaXYuesFvkAj5J85s7tHWqJP5luhD++s7tVwk8L41u +HO0w9sQrSysk6HmXDzwB9/eDDMKGoTB3Uw4tBd2xwDxR9p4Bks7+leXL5ogr7RL8 +tQ== +=AdKS -----END PGP PUBLIC KEY BLOCK----- pub 0374CF2E8DD1BDFD @@ -360,35 +424,21 @@ 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 -pA== -=OkOT +IEluYy4gKFNvbmF0eXBlIHJlbGVhc2Uga2V5KSA8ZGV2QHNvbmF0eXBlLmNvbT65 +Ag0ESagpTxAIANEHh8lujiAJyotn/aMY57BpYtWH3ia5xAA9CsYcMwHzvXgeK5OY +Ao9gydiENr0IZxa43AnZ4WoJ96AHLX3OtXJhr8jdvfEHrrHpH7sHgEgrlv3VYw2H +ZSU9cmfv+yviC7BSrQqa6LfOwSaWizg5ZOrCG7J2FAKhCnRdwa8ZOs2P0/Pu6asB +4G03mnVaR62ZShntFx4iSWlO78caKUQbB5OgK8oYA1k9YA4EReSwZMlKWpfGOqgw +HGw+xuRkXUObzlhaTWvfXgPr5RsxZzIviKH4EXSfdiIp2QzqZjM/drmfIx9r6Ai2 ++c5WKOIyt0WaX0HWOGsh1t9bBPs2FrrO1H8AAwUH/RxVVWYuO20H8oR1bp5zkjof +wgWk7t6NSXZu7mZMZwqaRgx7gXB89Dq4jALw4xXsAWebgYadReWef1ZSUlx8Lz1M +KOikCAld18lvqf/lfvrHi+ZHInNzqYcAdamT2BKoXHhIIR5jf6/8Flf/FsZGe0sN +QJw8Kl0yYiGYWhI0VV1CIzeVqSDSLLM/g4xZ07u+kt7/VUjo05lFO6jyCNxIO3SR +IBNML9xNXfZSDz21GtKW2ve9+bjC6qEDa0/O5FykoyoUFA9LuW7t05i3T26B81AV +mB/9NMxKHcJI1itU8We7L+IAvKC106chw4SxhXYxa/G6fxTNlkPSKdcPGsdFALaI +SQQYEQIACQUCSagpTwIbDAAKCRADdM8ujdG9/auQAKCCtFUmslioIPSjZkWVLJpo +77IquQCfcgYbAHsCuMFkHkZ1oZQA/f/ku6Q= +=YmFm -----END PGP PUBLIC KEY BLOCK----- pub 164BD2247B936711 @@ -436,27 +486,20 @@ YWkkTPF3nVV9APk73AebTAcd2V1GB7xOP+L3T7tyUcB9/7bDeM3od6qPksdVGNMA 0S32U8SNhe4jw8uXKdFL6PSxgyg9yeu0V7DyR92V9jF+ZicZWxaLeKpf/Vn3MBX8 JdePR9SCJc8CNj0n/tsvg/aSmGZ3OMZTUYYvrtfgpXUw0WVkyma+T0ANcdDN91uZ P8lV3o+Ic8f15xwsTePDhMhmtOapIz/85ukFABEBAAG0H0NlZHJpYyBCZXVzdCA8 -Y2VkcmljQGJldXN0LmNvbT6JAU4EEwEIADgWIQTHC4RPAC8h9tK5yHUi5ErAYiuR -wwUCWmo33gIbAwULCQgHAgYVCAkKCwIEFgIDAQIeAQIXgAAKCRAi5ErAYiuRw5Md -B/9ajI8dvk0oUaenxcPCchWQ6pwA2B5w9yQVWQBoJbxMI+pvEqpS6ur7PI+bJ0or -rCyNLiNj/okFuU6yeh9g8eeKIR3984HtBAkGo59TtH9kTg3HDZF2ys5j+tdtcb3r -KrGafc41llryb4XTGiLjcCS4n6q1EmZIJjCwvt1sIO1fo3cBim/1kjhjMgXSpiYz -yB+ve1NaG+f//nfallAnryxFHVfk2/N373cNZTD9bV2FRZs9SSO2mO9BoyG8deSF -x89lwLxK7MeoSH6pAioMMRGoZhNz2Thb9voUjrqS3P3+auwPt//JbhmCR3Zg+upu -n6Aw5q67aj4V959Qra3ZpD/TuQENBFpqN94BCADAfXydE1VYais6o/4JpVQwk9JL -3r2hkgwfN68B2rRvw9ofXZoqaBCFgbw+Nvz15GLmONoiDvP4rb1TsaT2Ti/hTUb3 -ov2W1RJ6OFRmiSkOuOjZHlVslYF2fPlZEXWdJ9PWvoKM/3taaICXy/AVSm1NBera -1l2MsJ1ePr6dpMMDBjUU15rzWm3WOqwBNE34whhOjvU9vDl8u4h1xV96E5B47ZbV -B1pR6y3vSYQgwj6BYkp3Uz2Mg3GQ/nBFoNuwV/F7LiUb5W68wOe8Q98NuREh1ico -/OM+iudjP2LO0vz2sGe6X5UZGwCfbJnlq/fqoPhiyW6HPb1+JHU08kKeY5BJABEB -AAGJATYEGAEIACAWIQTHC4RPAC8h9tK5yHUi5ErAYiuRwwUCWmo33gIbDAAKCRAi -5ErAYiuRw+XKB/0ToXO2daY6/ZlkfK69O8jRBzbhn90/2dePM/qLy5Fe3UaG2sge -uFYbTMGbRPvCpn9E5bceczdhkJKqEj5dPHVhUU6+jeyH/DdDgrcP12SQR2vHg9hR -e0pzVouiMDX4QnUbW09CwpmhymlIp3pXb5jNa4iNxjYIBmuHDEmMP+uW5Ue+e2lg -IAFWRFovZ9C1DCg0YYyGktc47cakq3ENKNU2LFvRcbgoyfjM0EprSUColUUNN3yy -UNc+I+bvGL5swhKqdnRHagbg7kelsn/05oDFGPQHi0/VOlWU7wBh+vUw6lb3Zi7C -obUInUhW3rPu5LubTOtT+oIH7+RSUIEJO1hE -=j2aw +Y2VkcmljQGJldXN0LmNvbT65AQ0EWmo33gEIAMB9fJ0TVVhqKzqj/gmlVDCT0kve +vaGSDB83rwHatG/D2h9dmipoEIWBvD42/PXkYuY42iIO8/itvVOxpPZOL+FNRvei +/ZbVEno4VGaJKQ646NkeVWyVgXZ8+VkRdZ0n09a+goz/e1pogJfL8BVKbU0F6trW +XYywnV4+vp2kwwMGNRTXmvNabdY6rAE0TfjCGE6O9T28OXy7iHXFX3oTkHjtltUH +WlHrLe9JhCDCPoFiSndTPYyDcZD+cEWg27BX8XsuJRvlbrzA57xD3w25ESHWJyj8 +4z6K52M/Ys7S/PawZ7pflRkbAJ9smeWr9+qg+GLJboc9vX4kdTTyQp5jkEkAEQEA +AYkBNgQYAQgAIBYhBMcLhE8ALyH20rnIdSLkSsBiK5HDBQJaajfeAhsMAAoJECLk +SsBiK5HD5coH/ROhc7Z1pjr9mWR8rr07yNEHNuGf3T/Z148z+ovLkV7dRobayB64 +VhtMwZtE+8Kmf0Tltx5zN2GQkqoSPl08dWFRTr6N7If8N0OCtw/XZJBHa8eD2FF7 +SnNWi6IwNfhCdRtbT0LCmaHKaUineldvmM1riI3GNggGa4cMSYw/65blR757aWAg +AVZEWi9n0LUMKDRhjIaS1zjtxqSrcQ0o1TYsW9FxuCjJ+MzQSmtJQKiVRQ03fLJQ +1z4j5u8YvmzCEqp2dEdqBuDuR6Wyf/TmgMUY9AeLT9U6VZTvAGH69TDqVvdmLsKh +tQidSFbes+7ku5tM61P6ggfv5FJQgQk7WEQ= +=iA+h -----END PGP PUBLIC KEY BLOCK----- pub 29579F18FA8FD93B @@ -472,26 +515,20 @@ XD+/p51SWLMvgrLxoenmoE04EuQqQiXd4DbU+HGPseiNx+mN0cxPssaZMBBsmi2r RjwcQrFTaC1iffzh8FKLQvoTDzci//b5bWcxCLbsY9dYcUaDCbBAkL8HzyZUKNE9 XwXh/Rq8wDakI/VEg/905a9c4xq6Rss6Yn5E4V2SAo2+B3hYmvHFsefaM9kkqvXk MQ6zjx83LAtzavOzmthjhhPIgCAfoQ5Q5oDzABEBAAG0HVRvbSBCYWxsIDx0YmFs -bDcyNEBnbWFpbC5jb20+iQE4BBMBAgAiBQJWBYjAAhsDBgsJCAcDAgYVCAIJCgsE -FgIDAQIeAQIXgAAKCRApV58Y+o/ZO/3UB/9W+AOZCBUoVTSyu5BDjH9Xm5vY/QmW -jl1/dEcjZ1bFEF242SP0sUC/XcOsaJp/KpvkB9pTkxJ1BGg8YEr3vJrjrD2LLEih -4nZ/lJnfyjx4Sn70GFSNhftuDJbqLA9U/Z6M1tRaZTGk+/PkvCyyyjD/U/pNohxd -r08nojPS1UL2LpI4nA8VPZt9bpOoYaehkyVjD/ChXTSi41Eet04ze7YoyEGMIJl+ -ZcAlkhSQrNNtSbrZ7+Xxl7mv44Hn0F8dlc1i5WpNCqYfWnVSLLBZGi3HxRqpF2HR -VIZuXHWaP8JxHNfwZcOMokAhRlEVckl0qqBnjNl7zuT6xJBiYwgzu64WuQENBFYF -iMABCACdvSlhh2hLe4F1fBMHiZK2HdNp8I3NS8o1E9k0cBM2fTfalIlan6ZIJ2Z+ -JqRwk6MRaKpB2or/0A34+3KfI22SWtsI2lJA2x9qWaiwRidLFFAWdSjTzNroYVkc -wJ5hf2yKN/mH5YRiDSzaqHr5GKKPXHXpT94XqXn+Pj1Lj5ipnqPOerpJ5mlkPPSz -8C5Ve6I+sIqjGKdtrB6kxgIF3kf30izCu3dL0j5vuey2XneRAqETHqmBVMEjFeuE -Y0zJCj7LxQRr0YaaSfrlkIjIxRbhatgxXjQVbbnh0nYAh8dUz/YvsfuyZmLJhRZk -cJxHW8Tt0xxV2oBUBq+IpmvqDoy3ABEBAAGJAR8EGAECAAkFAlYFiMACGwwACgkQ -KVefGPqP2TvmWQgAi9Q5WlckTYzccwvt9F+sRspD8AncDERdwkY6HiInLLNqQSUW -iHU2BaYN2wmSiSeSgwurPtN85nd3XZyhKtXxH0XKC2fTzQWBdyBEh5zT5UevES9n -IzIKurHoG4TsWr9d2XDiDp8q1s4G1cNGYDfD97wpZRbYn8L7hedL07ISEWNdRvBp -brvhme7X0pD8MBKPqUXfLHHaJetmlFKOmu9awzjINlz1C89JdocSln3lLJLE+RGN -N7HmXdwmKjmnC0fo2h8jnOTYekdTM3Ec+uWE8M1WyqZV7WYzoITIfq0uHgyIxCpa -OOejOLKShQW031G/kEvZApAVPHLFM8BdJ5P6Dw== -=RyTv +bDcyNEBnbWFpbC5jb20+uQENBFYFiMABCACdvSlhh2hLe4F1fBMHiZK2HdNp8I3N +S8o1E9k0cBM2fTfalIlan6ZIJ2Z+JqRwk6MRaKpB2or/0A34+3KfI22SWtsI2lJA +2x9qWaiwRidLFFAWdSjTzNroYVkcwJ5hf2yKN/mH5YRiDSzaqHr5GKKPXHXpT94X +qXn+Pj1Lj5ipnqPOerpJ5mlkPPSz8C5Ve6I+sIqjGKdtrB6kxgIF3kf30izCu3dL +0j5vuey2XneRAqETHqmBVMEjFeuEY0zJCj7LxQRr0YaaSfrlkIjIxRbhatgxXjQV +bbnh0nYAh8dUz/YvsfuyZmLJhRZkcJxHW8Tt0xxV2oBUBq+IpmvqDoy3ABEBAAGJ +AR8EGAECAAkFAlYFiMACGwwACgkQKVefGPqP2TvmWQgAi9Q5WlckTYzccwvt9F+s +RspD8AncDERdwkY6HiInLLNqQSUWiHU2BaYN2wmSiSeSgwurPtN85nd3XZyhKtXx +H0XKC2fTzQWBdyBEh5zT5UevES9nIzIKurHoG4TsWr9d2XDiDp8q1s4G1cNGYDfD +97wpZRbYn8L7hedL07ISEWNdRvBpbrvhme7X0pD8MBKPqUXfLHHaJetmlFKOmu9a +wzjINlz1C89JdocSln3lLJLE+RGNN7HmXdwmKjmnC0fo2h8jnOTYekdTM3Ec+uWE +8M1WyqZV7WYzoITIfq0uHgyIxCpaOOejOLKShQW031G/kEvZApAVPHLFM8BdJ5P6 +Dw== +=INDk -----END PGP PUBLIC KEY BLOCK----- pub 2C7B12F2A511E325 @@ -507,26 +544,19 @@ bOjh4v9ZipD+px8w3o/RNrnZH/KRsoJg9yER6pf+pUZqTJfdg5lXezc1WF+/1qVo ypldMGfrkfLsPrUZTT689ubbig978e7eYmJEqldtaIwaAzHQnB70wIJyg/rEwFUM ldsvs6t6czSuJ4zPMvmh8TMpTg9e6+DMktPl1CWRONl8RPpgYMIC96gb4OnfDDjk Ex6clSCwgbDwdeAyOjjR6pVq+pCNTo1Pcj5jABEBAAG0GENla2kgR3VsY3UgPGNl -a2lAcW9zLmNoPokBOAQTAQIAIgUCT5k74QIbAwYLCQgHAwIGFQgCCQoLBBYCAwEC -HgECF4AACgkQLHsS8qUR4yVwIwgAlj6R9Lxk/GnclmSvgtTyk1r5GxJ75iSCzs7q -DlNuM6EfFbuZvLWORGgP8KtdQdh/bdICtRbh2eoW0vEKJKkl0ZI0/RnVMYKYpIHi -KVUSjPq0svwDk5tUa7taNSdHfi9o1G1doBHyPu1u1xDVzMSWsbEvx6aVr2HkBDRy -A+VcmnX6tokZjyRX4C9ldX3tR+ffn7v2Iy0bIesM92nMPnH/fPXWlnbQKTxQeMj2 -qYSl3H/NGp57G7KNSl1na5U8ueMcUtYb+eHphMsmaEb9xw8dM96CzIPZh1xMHNoQ -NNJibURysbUpFlGUTOv6K0A392QkX3GwuCQGOeLWHOoQHD6Jt7kBDQRPmTvhAQgA -trGiCYnW3tqvDzaStXsguVw67pou65dO7LTcrX+NTvejJZ9SrC89JsfiKBwtvyS3 -X/qiB+S7RP21PH7SYOy+orwDw1nacNNeiTdPnxQCDQVNeWpSpmbLlA+0b6K3aPf/ -EaCKndXmnQyXVOoSXZJ9bqAe0um0NRbO7M+L1KArVkWW56ms+DvHAeZaGnSDDHQp -JI5haUqgSWWP/VoPEU1x0qiBZwY3lokSwRMISC4E/uiUvvm7rvfbBzfOiVrjNPLl -sVPiQRgOTfQO7dUZAmt2yqWJt1Clliby4fgBVcOYUx0QCMiz8MZGtSB17+hSrC2C -b1T6n0ypxuYyh4sV2LtqMQARAQABiQEfBBgBAgAJBQJPmTvhAhsMAAoJECx7EvKl -EeMlX0UIAKS+4ZAKrGG9jbWfzTTDbu9zzkXgV13suMD+XcGz10DkdluTUBXj8wWl -p289fXNm4E49ipsNK+dcZ+gOATjUvb1Llh6D6bHz1QM7olxBCeU2feTmYYKBH8GY -Y9JZzfAXNMQhcNiiPj+ntZqePy/EFA4uZHM7We7vl2c7CBcDAq1NNeEczo0KvG7A -Wt6QoaMVmbvA14EKadNzrmEy9apkag1BKvwzXInYCvIHMa9ZqicOSUcI5QCYu5Tu -fvIE7Eq3Khh2Ex1FiOaEA+57LMrt6NsSKXrB8JNYbI5pqE1rxJXZnYtx3ZpPAAEf -LjPdi1AOkWhvhsoPmiGFC6ebYQ5eVbI= -=9O4j +a2lAcW9zLmNoPrkBDQRPmTvhAQgAtrGiCYnW3tqvDzaStXsguVw67pou65dO7LTc +rX+NTvejJZ9SrC89JsfiKBwtvyS3X/qiB+S7RP21PH7SYOy+orwDw1nacNNeiTdP +nxQCDQVNeWpSpmbLlA+0b6K3aPf/EaCKndXmnQyXVOoSXZJ9bqAe0um0NRbO7M+L +1KArVkWW56ms+DvHAeZaGnSDDHQpJI5haUqgSWWP/VoPEU1x0qiBZwY3lokSwRMI +SC4E/uiUvvm7rvfbBzfOiVrjNPLlsVPiQRgOTfQO7dUZAmt2yqWJt1Clliby4fgB +VcOYUx0QCMiz8MZGtSB17+hSrC2Cb1T6n0ypxuYyh4sV2LtqMQARAQABiQEfBBgB +AgAJBQJPmTvhAhsMAAoJECx7EvKlEeMlX0UIAKS+4ZAKrGG9jbWfzTTDbu9zzkXg +V13suMD+XcGz10DkdluTUBXj8wWlp289fXNm4E49ipsNK+dcZ+gOATjUvb1Llh6D +6bHz1QM7olxBCeU2feTmYYKBH8GYY9JZzfAXNMQhcNiiPj+ntZqePy/EFA4uZHM7 +We7vl2c7CBcDAq1NNeEczo0KvG7AWt6QoaMVmbvA14EKadNzrmEy9apkag1BKvwz +XInYCvIHMa9ZqicOSUcI5QCYu5TufvIE7Eq3Khh2Ex1FiOaEA+57LMrt6NsSKXrB +8JNYbI5pqE1rxJXZnYtx3ZpPAAEfLjPdi1AOkWhvhsoPmiGFC6ebYQ5eVbI= +=xA7Z -----END PGP PUBLIC KEY BLOCK----- pub 43203BE58F49479D @@ -547,44 +577,31 @@ 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 -4g== -=dPSa +tCVWaWt0b3IgS2xhbmcgPHZpa3Rvci5rbGFuZ0BnbWFpbC5jb20+uQINBF1Vn08B +EADFtEGfSbLZTO4iKKrg2NSDmnAq9gGjtLnQ88jpzMYR61B0qSSuat8jUBfK2JEu +j8VzEjHkYWkwCGZrX0Aq19ZtZFExohAw1btkiWtHj8JyCsgtLpkN+eNZH555dtKO +qzkPRqsrVxtmrB5VsH74nGUmsmTG7uN7eCHbo+xWXvn7zgkiMWKCz89Ze4vc4kR0 +CKHQYs+mJVkWUyeq1KJY8a3ciyDu1wEEgA9RfEudUnuT7MvI4GBY0/Dqm81SN+Y0 +vAgBfQ1EmIZl1IUoow+sgmYFzBcEoVinbEnZH0iQjfJtJ0ddUPpCVI5BP4Oa17RE +L4xUvVGexbJCduXWK5YH8Z8fT9KNBw3or5B0xwEvMAFZfb8iD4Iu1rwNOv+aNQVZ +el73sNLNIbmvz8PuD+S1uQhAgZ3nagh5uajYF+Mh3TsE/+ZL0ChQtlkBUIPyMEGq +E6YyNv4QmpdiMXeHIXwSLl/6Rre/ynK1WzDi2w2UylEmdAb4JeqFkz93UcDmOL4q +qs5WzJisKEubCzRS3sZ8HRESkc1iUkcN6ez3BtfqAeO+9AqZL1NM5r4xW13ZRP6+ +JICdH6eqT2iRQoGsbnGWCnjp9Tq6xyYDws7p3WszrOKJ5vBoJ7WY7jut5eV+Qxt7 +phazndaslmF2vGVc3tQs8cfUhyRgVHQmJweNpwiqAlQMvQARAQABiQI2BBgBCAAg +FiEE6Dqru5XKN0MeIEIgQyA75Y9JR50FAl1Vn08CGwwACgkQQyA75Y9JR50HLg// +SW/tgPt0wlI8sJGYtOwOTn5O17DT+K6h1g0qAtbxUbkRGM8WL0zf3EwUnNQMWiIZ ++u5KoUwmeurh4P5vGXz7rOTVUV4CJBaarllG8eCR/MzD53br9Eh5sxqjK2f5Pdfq +Vbsq2YRn7BuaDFlJfS2wNRsBBX8pJ7HrgdNZcdFKk2DNE4clliCcF0FVXr28SoJ7 +MsZCYB08AKW4wpufBx/jfbdiM26Iyt4x/t2qzoPSCSWPjIxNmvlDljVsUR4zeEqC +tl4fA27krWOPngLJe3R5bAS0qx2veV3Jr4DHD5XfUQjuNDk04iflCixD9YIIIq44 +/2uV0J0MgoocuRIJUUQvOSz+XclycvgID+iUJAD3Pn/wEOrGzQ7Af0BDNgGwDqdQ +P274Qat9EenxebG3BdKz8L1BJlLjieaXWLJuBDntNgcniAfq5bLNLbWTb0OuiEhK +KV0hLdj161GJiy7L8cfLG3TUcKFvFp8uZcktpF7hhm+z1LAuQUY7iqBZZh8F1kJW +FyvzRrGANIX1EyEvSOEnIq1qxw+s4n/WPtW7i04xDM61UPws1Fvg9N6T7/S1Dadq +8niGZWrUwzMu4WDyYByrSMbTkWfR8e2tXjS2U85WP1Rh6y2iKT2RqAaIZzoCcsr8 +2t/gxs0aau4lXnONM9m3G0fb34pfEnEO2WVsONrQaOI= +=JZti -----END PGP PUBLIC KEY BLOCK----- pub 55C7E5E701832382 @@ -597,16 +614,8 @@ mI0EVdDLQQEEAJMtYCaTA56YsP5RzQzPvqVTaR2nZ27qRk36blHB9WmXK+NHpGeH PHgq59mLPVueo2/M5k/fFrCe36jHePP31gYpFtueeYDfsofHwod0WhsHyC7JfG8d jEnSczTCmOHRZ3ed9ef6SeWUozYCQAX/tAbpoCthe0lTDYhFhkzVCe/FABEBAAG0 MUFuZHJleSBTb21vdiAoU25ha2VZQU1MKSA8cHVibGljLnNvbW92QGdtYWlsLmNv -bT6IvgQTAQIAKAUCVdDLQQIbAwUJCWYBgAYLCQgHAwIGFQgCCQoLBBYCAwECHgEC -F4AACgkQVcfl5wGDI4LjiQP/eMEcbkMet6nulUtE3rmRZjq1uSYTPirvtPF8Apwn -VH6a0FepOC0uqNnYLrZiOFR8xy4kq2r1cLkX8iS2AdZlFOHNxXMDSGnnbsATKBdZ -j6NKhQYS/cah2yV52Nnl8+Oox84lWEkYLCmuYB00HlRxytf+jSXxS3SnKpGz/bdG -BViI1QQTAQIAPwIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AWIQQSDW805ift -Oncuu/5Vx+XnAYMjggUCX1s72AUJDy4LFwAKCRBVx+XnAYMjgu5OA/0cqvbr6nQA -t1M9ltPd/hqQ7qbphYIAYuEm1mfwGwROVR0ao8zCATujct+prY4lwaxh4tQJGi57 -yPy3sjdVXAs7bXk7cejcCxXkQejGULm/RDINY5yqwoudvJypZFwYz8bG9DSX8DoO -jHk5ikmB4iJzu6E9yQcjOtEdXage933gDA== -=/cE1 +bT4= +=MKAK -----END PGP PUBLIC KEY BLOCK----- pub 586654072EAD6677 @@ -625,23 +634,21 @@ PBODjDpoOsTJwy51fgCEL14qnp0v14y9p7ejjN5+GipiNY/JHo9S9kTdVhMYqt6x 6a6MA/40vMejIbZ4q3Ia63jbHPi348fLDq3Gp8Wos7Sh2HnLC+pRdC46qX/5wL4t Vzj78yW9FdH5yeeE6nQLOBWh7PnSfMt2wYHoarEnkkkycP7WLpRME7qsBYqkNUNa 2EQZSy8DnGiayYDij1YPNUHI9kpK6H/e3puhmgNkzrZj26T85LQzSm9lbCBPcmxp -bmEgKFNvbmF0eXBlLCBJbmMuKSA8am9ybGluYUBzb25hdHlwZS5jb20+iGAEExEC -ACAFAk1VSkkCGwMGCwkIBwMCBBUCCAMEFgIDAQIeAQIXgAAKCRBYZlQHLq1md1Cy -AJ9Vwm/4tCSR2iaLU6fCV4lnJgDnrgCeIDEdpte6HmX4eIWPHHxULLLP4Zq5Ag0E -TVVKWRAIAOsb3rg3GoeIBQtJdgRUfULCVNEguSJMESQv9xnKgEGeQX9ItVfdMLrv -Lbf4ySyIJ1ShBR8k80Xk8M6C2XA+c14AVUrtPUHmseO53TY0n2VjZD5ms7TOY/cq -+DheTBLzlxNsK85q0jZXOK2+Sliv9aRBIl/83c1iS5kBM76fzLWZqsiuqQsLUvEv -oCmUI2WSzhJ3s4s3nCHHtq+sQkcaLap3FMH1IPozFFJWSlJSsIeE62AxR4XrfGs1 -y6YxA9AEhu/6QWA20T55loV9TT4geDLywxE68eu2rM867Bl2cfU6+tW4RW0Ssg2O -Ymv/+dNe1YErRgKm5JAjWRxp0Jzc47sAAwUIAOgOfDKe+6VLQrVYXwUZ84ipBGgp -/JwqajPzxa8YodPH0Cd8bfw236Qcd9R5MuyjNbi4M2RJ3pLlNGasICt2qloPNJqC -miTcVGXXeaK3haG7Du6bXo7eaJl+pMXRoz3JTrdTPLHOhPgN7EeWtkAv/QbbONps -nNcyiuvund1KX1JaoGj712xk7IrDO47eA7Vc+ply08owIlnjtO3XG0o4GbkZx7Eg -iaG805jbRUz9Q4FHnIE3Ditmo4BrLsy6pG2kJyv0YkSM6pBSFpc/K85WDV4fEwPd -AS3hl0rlThFuxgSHPH1Z7OqNdDnbAKp8xEKnAmb/3hx147fU+VoFd3qcudeISQQY -EQIACQUCTVVKWQIbDAAKCRBYZlQHLq1md0BDAKCz+pK77m8VG8F4ZWyDthIjE4d/ -zACgsgdtDggyRGK8+BKm7HDnceh97sA= -=7XCx +bmEgKFNvbmF0eXBlLCBJbmMuKSA8am9ybGluYUBzb25hdHlwZS5jb20+uQINBE1V +SlkQCADrG964NxqHiAULSXYEVH1CwlTRILkiTBEkL/cZyoBBnkF/SLVX3TC67y23 ++MksiCdUoQUfJPNF5PDOgtlwPnNeAFVK7T1B5rHjud02NJ9lY2Q+ZrO0zmP3Kvg4 +XkwS85cTbCvOatI2VzitvkpYr/WkQSJf/N3NYkuZATO+n8y1marIrqkLC1LxL6Ap +lCNlks4Sd7OLN5whx7avrEJHGi2qdxTB9SD6MxRSVkpSUrCHhOtgMUeF63xrNcum +MQPQBIbv+kFgNtE+eZaFfU0+IHgy8sMROvHrtqzPOuwZdnH1OvrVuEVtErINjmJr +//nTXtWBK0YCpuSQI1kcadCc3OO7AAMFCADoDnwynvulS0K1WF8FGfOIqQRoKfyc +Kmoz88WvGKHTx9AnfG38Nt+kHHfUeTLsozW4uDNkSd6S5TRmrCArdqpaDzSagpok +3FRl13mit4Whuw7um16O3miZfqTF0aM9yU63UzyxzoT4DexHlrZAL/0G2zjabJzX +Morr7p3dSl9SWqBo+9dsZOyKwzuO3gO1XPqZctPKMCJZ47Tt1xtKOBm5GcexIImh +vNOY20VM/UOBR5yBNw4rZqOAay7MuqRtpCcr9GJEjOqQUhaXPyvOVg1eHxMD3QEt +4ZdK5U4RbsYEhzx9WezqjXQ52wCqfMRCpwJm/94cdeO31PlaBXd6nLnXiEkEGBEC +AAkFAk1VSlkCGwwACgkQWGZUBy6tZndAQwCgs/qSu+5vFRvBeGVsg7YSIxOHf8wA +oLIHbQ4IMkRivPgSpuxw53Hofe7A +=9YZ+ -----END PGP PUBLIC KEY BLOCK----- pub 59A252FB1199D873 @@ -713,26 +720,20 @@ IDtx9Tn73piqbplT2xQxd7HjFvaVuy7oXI68gwcyAGDvQZeiFUodcbAsKrVwFT+R 94JU6UODFqE/Ihq15Za8Sc8WhWitm8XTQsCsLeh8abGhkvNEmRLi56fh8/Bz8LHv 8T7r8zkROoQFlUEYaOR2wH5bbipww9+HEg64hrcak2w5smNt0NJUXZ2O1l00u3sF Qdu54hM9nZ51xxcqvo+tGft9kIr2AfTrJ28ZABEBAAG0HUdyZWdvcnkgS2ljayA8 -Z2FrQGdvb2dsZS5jb20+iQE4BBMBAgAiBQJLawxQAhsDBgsJCAcDAgYVCAIJCgsE -FgIDAQIeAQIXgAAKCRBszDbMbGn8F/tgB/9II7qOuEg7VuWss+kqI8dAG6t43TbC -+QRRqYqa5Z5GSBQMwtxYzSpYeSRHGTh6qBiQlvJBDsYq1BMZrN7K4Qx6+LcKsFYS -6r4u3q1jcbH68fEFyJOCZKwNuMktAcbhsOMDJiF/3W4xIOEsy5iv9/a6wqJNWQhc -Xn7HyhVouoQFqIrutDhpdF184/zF/fMLfw4Dn8xhRNINdxgTSALEA/lit7aBp3ZZ -vrhAx35ayGHQt0Ap7+P/H/gfDjBhdtrkwc7y+RAYWLn7Qj7sOuTT/8bU2LKeOPhA -Y4t78BRTLYzt3oDUaqmV7r7Gpjkb7j/0CQAwWEuqB3gawb+QsloMDD4YuQENBEtr -DFABCADqp4wT0RY1+OwMZRfTSYczlBAidkGqHszDnCkO0U5w4Tog4v085dDFyaKO -5LZHkgDJTyF5WyvwtqqzNoU+tjv+RkkctXTxK02ced5jSFk7E9MI0AoMXogLP/uW -6nHmoUTuDxEtCye1UfsIglD99wiCvxGtnOjgwfezkpctP0WPe41mzNccCrs3hx+R -9ECkyZMtQiHYPmr3X3nhwQxKQotwWQOeSYgCjLhTWJfkOMn/xaGCNGaihYSMCtDk -C2PrpyD5V/qj8gek5DyI/bXCv3Hm6Td1XBbzc1ZHKmF3ccFFPRtBsswtwXuN+6Ms -5t0iVsNQ0XdhY8BXoi9H1jo8HH75ABEBAAGJAR8EGAECAAkFAktrDFACGwwACgkQ -bMw2zGxp/BdCxAf/TvMMBA7kY4nbH5WU6KTLNnaykv0zfxAf5XgRbDqrcO9dvnWE -jYTPyyVWXIVkvMtESx0DAHeml/PaKCab5pIoybyYQfWLbh8Jhn0+NLnKOwE6m6Or -WFv2gNa3zrPRwIy29VFkLxLC/velrIkES8CKF+gGinmxupi2IpIiio4uCyUaeR1X -V6U8UWl/50j0i2mrutle1yiV2lYBb0k8uMZ9nqYeHkVQAispv6bDZF20co9Zmn+G -tbHat1jHYg0R0p960SrFBlb+x8ROOb0e1u4ajdAZ2uFczoDRKHEQijvaQxIjpl7C -l1LwyQTq703XSVR19/5ufOR2XWtXa7UoBL90bA== -=rQXF +Z2FrQGdvb2dsZS5jb20+uQENBEtrDFABCADqp4wT0RY1+OwMZRfTSYczlBAidkGq +HszDnCkO0U5w4Tog4v085dDFyaKO5LZHkgDJTyF5WyvwtqqzNoU+tjv+RkkctXTx +K02ced5jSFk7E9MI0AoMXogLP/uW6nHmoUTuDxEtCye1UfsIglD99wiCvxGtnOjg +wfezkpctP0WPe41mzNccCrs3hx+R9ECkyZMtQiHYPmr3X3nhwQxKQotwWQOeSYgC +jLhTWJfkOMn/xaGCNGaihYSMCtDkC2PrpyD5V/qj8gek5DyI/bXCv3Hm6Td1XBbz +c1ZHKmF3ccFFPRtBsswtwXuN+6Ms5t0iVsNQ0XdhY8BXoi9H1jo8HH75ABEBAAGJ +AR8EGAECAAkFAktrDFACGwwACgkQbMw2zGxp/BdCxAf/TvMMBA7kY4nbH5WU6KTL +Nnaykv0zfxAf5XgRbDqrcO9dvnWEjYTPyyVWXIVkvMtESx0DAHeml/PaKCab5pIo +ybyYQfWLbh8Jhn0+NLnKOwE6m6OrWFv2gNa3zrPRwIy29VFkLxLC/velrIkES8CK +F+gGinmxupi2IpIiio4uCyUaeR1XV6U8UWl/50j0i2mrutle1yiV2lYBb0k8uMZ9 +nqYeHkVQAispv6bDZF20co9Zmn+GtbHat1jHYg0R0p960SrFBlb+x8ROOb0e1u4a +jdAZ2uFczoDRKHEQijvaQxIjpl7Cl1LwyQTq703XSVR19/5ufOR2XWtXa7UoBL90 +bA== +=d1Fs -----END PGP PUBLIC KEY BLOCK----- pub 734AEF3D43509290 @@ -749,26 +750,19 @@ ol0a/6G7wueIMNO4TtxLNGSe+WPjtAWmLOl1H2pg2eOcKR2+finbeWpPZPCjR4I1 CaMcGfdwv/4goI1b/931t0TlKAyGVhCgTa/1DKtRsJazwtw6MQZkE+/8t4JIuSVx GlOWUrlU2HCbN+eAHj/5/G0suIw0OZpdtNPBABEBAAG0QUJKIEhhcmdyYXZlIChi aW50cmF5LmNvbSBvc2dpIG9yZ2FuaXphdGlvbikgPGhhcmdyYXZlQHVzLmlibS5j -b20+iQE4BBMBAgAiBQJUWVwFAhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAK -CRBzSu89Q1CSkEDnB/98N/v0GcmGMEOls3kpl2hf2I5rrkx1qNpcWQD5F0YAB4wD -rb1PwjwYVIx1c9JnB0+WlOwmXdsNhAmPfdNq1KEhrRtTBQ88jmm6grqiNFLZsFrq -PxQCcOw6V4rPnFkQvtijqf708v0QdjSaW/HSwM9lCz/u3ljJq6FZGTRwNJBcusqd -vh08mMWWs4Pf39dKyE0CKjmPTKNnQGBoxmFPSrvPoWgBmCtniWR5McIOFuqnzHBA -ACu6t9t0h4sB8Vyov+dLxfUxf6g8SIX3b+FxCsN2vRwie6IvhZ1KFseWAWIQcoS2 -8Pjp+GKYiBhw2qMmbDBEV0gOMGZyetdtCE9JPt5VuQENBFRZXAUBCAC+ddgLBX0/ -BBS+EH6JiIqbFhclAnMEGwIAGyfk7rpvlwwWCFQDYDSRW4AjWwcDV07ckKI+3HQQ -+iLD9xwiMWRSyo8RRbuq2xypbPKd4ET4XtMUuNweMpuyCgOMceMVUd4LbzilopWz -OKCo2NBAExRjMoBGKdTyaCrQ/lEouEGATlzwoOcrewUpWKfG0qb+D3XTZ5Dwqo/y -lCtE1QlZASJGF8jGEMc9UXkMH2e4cg6GUBbgiC0iKA4zwgLKCBaSWNUHt4fhO1pt -3pVPrMaFL/3foLpa63xi9DdpL+LXDhIo165TKOpXwDaeaZoRNC1qRggeLasxeMfL -0Vm9P1DrZteTABEBAAGJAR8EGAECAAkFAlRZXAUCGwwACgkQc0rvPUNQkpCN5gf/ -THiGnRy7LT03PnA4J6AWtL19HLtRm4FXQQC+X5um8abd74HPzAgz0Z2o0rt2gq40 -xHxzyMWmtdpylSrRdfuwlVuVpf8cZDMiXNVXTK/wnByEmqzfwNC5+21s/FHi0bQd -bm5DjHz1jz6RwGUHdTZ0rRWV44VPxtYCZr/fiu++Ra/ysUCCMrNh42UhMfH5yw9p -QZxM5NTPeEXytraMhyldxRYsJNjO7ORKl3jMFivAcnrZFlmiw24KDYEU3QNZZkNx -pr7g2l9VLiFhkM2QIRGVPbVLHzG5wD2L5c9pzhmFbXO1ZWoQMA83C4OFV0+ecnga -/egW1kdpB50keEhf+cLDjw== -=O+F9 +b20+uQENBFRZXAUBCAC+ddgLBX0/BBS+EH6JiIqbFhclAnMEGwIAGyfk7rpvlwwW +CFQDYDSRW4AjWwcDV07ckKI+3HQQ+iLD9xwiMWRSyo8RRbuq2xypbPKd4ET4XtMU +uNweMpuyCgOMceMVUd4LbzilopWzOKCo2NBAExRjMoBGKdTyaCrQ/lEouEGATlzw +oOcrewUpWKfG0qb+D3XTZ5Dwqo/ylCtE1QlZASJGF8jGEMc9UXkMH2e4cg6GUBbg +iC0iKA4zwgLKCBaSWNUHt4fhO1pt3pVPrMaFL/3foLpa63xi9DdpL+LXDhIo165T +KOpXwDaeaZoRNC1qRggeLasxeMfL0Vm9P1DrZteTABEBAAGJAR8EGAECAAkFAlRZ +XAUCGwwACgkQc0rvPUNQkpCN5gf/THiGnRy7LT03PnA4J6AWtL19HLtRm4FXQQC+ +X5um8abd74HPzAgz0Z2o0rt2gq40xHxzyMWmtdpylSrRdfuwlVuVpf8cZDMiXNVX +TK/wnByEmqzfwNC5+21s/FHi0bQdbm5DjHz1jz6RwGUHdTZ0rRWV44VPxtYCZr/f +iu++Ra/ysUCCMrNh42UhMfH5yw9pQZxM5NTPeEXytraMhyldxRYsJNjO7ORKl3jM +FivAcnrZFlmiw24KDYEU3QNZZkNxpr7g2l9VLiFhkM2QIRGVPbVLHzG5wD2L5c9p +zhmFbXO1ZWoQMA83C4OFV0+ecnga/egW1kdpB50keEhf+cLDjw== +=ExEi -----END PGP PUBLIC KEY BLOCK----- pub 7457CA33C3CE9E15 @@ -784,30 +778,24 @@ N4/BiyjQA25sdfaOolhO0sFlZuTZpYy5wG72KkA1ygNq0L+8aBKhEF6zDU61YzCC AxjcgTftgTeeoqkJtYa06lNz3jmJDN+zUQignfRa3ymoGtFHTzoXR9maE8RWDty4 y+DY+8ibdGgSgKPZ0byTCDyNojgU1YTlADa/1/NY1ShYg617O1xicLNo0JEJlf2U Tu4Ymql36+xSkYSISU97Q6Utgq27XMuZvDUDABEBAAG0IkNvbGluIERlY2tlciA8 -Y2dkZWNrZXJAZ29vZ2xlLmNvbT6JATcEEwEKACEFAlIXyRQCGy8FCwkIBwMFFQoJ -CAsFFgIDAQACHgECF4AACgkQdFfKM8POnhWM9AgAsTQe+kZsimLo3T9wWP97fksK -xXqr8xtjyxopf0r/Pc+52ZcfVhsvcOfQKaBe/2hprMPudrnIFVwsz7BNG7n7stqQ -MoRkaisx9ULUY6E4Wbim23wp1ZMkQbhEcQ1DKwXKMdhvm5mZ5kB34G2Hly3g/0ZB -z5TlwFwoZHD1BnhQRMQmRN6y/IkH/rI9aMxmgGn8bJ8yGPmq8vWysEq8WczWt+DS -wAVa7Uhys99kOb4Z2Ky4jGiZX+6zSAkTgHADPIVgedHCw4FuedYXFpLy+j15K3Qy -dTji79JOPVVGIJ3dpxtY4eBf9oetuc5StL0whq98Xp7kz/OVO8H3HUlxZbYXYLkB -DQRSF8kUAQgA300dF3Ztg//cIOL6fWKVIKGV3Q1HcNQGBL8B2pDsigBR+PuyTIj9 -bJox1Xi7Lq9GHliA2DaDTWd3QstlHwZ/YKT4PoXzwJ1lpPGWRzEdX91cxnzIE77Q -PrIVFkQvsiay/wiDhBc5XB+6JcQ+T8R/kPL1J0BWFygStMYZHoE4ZVW97Ea0HB5+ -yMxo4bSSGRFtYhDfZbF9QW4C/lcFDRyQuuUq9hZRiE6VeDbsa0UofYQEEXRnlla7 -uBoEXBJXSgun0RZwP4L5YTBRJ8F2p9Em3Je+B/iRl3B1Dlxozw/b9J2dyXaX8tTU -C3ZKZz6mWvrOEiEOUuGWvMoZrXqgBFIF1QARAQABiQI+BBgBCgAJBQJSF8kUAhsu -ASkJEHRXyjPDzp4VwF0gBBkBCgAGBQJSF8kUAAoJEKvp8xJrt0HBREwIAMeurBE0 -eRsbVCxcmv2hQropWQuw+FyeAiHFEuWp7z2iaD0bt4Y1q7OzY8qwHe3Gi0IVztE5 -U2/9MC5INjOQ+izwbjqndsZ6yN8lvbjNzoYxPhEYgmiHWg0bUhyJp8ggeOnZkkdG -YQPCa9kbbg4cn6aUcuNp522qVa77PDCEfZVmsj9TeBb/HiKZuT1TLLNyIQjGsBz5 -9zX3GXk+RRVxINULRwCoal5nPz5LEVp/dGvRoadJt64dGM26majGRA4B7LXO2Z1a -II9/lEV+YUP58Q2H7/GpiIaitilwg3tQCwyS8PlQdzlkba1MPjWMz33D0ub/Ecn2 -SzyA3BkRLAjOvoAEogf/W6Wx+UjbXqo/Pmju5TGVObw19PIBN8JS5kQMxgY6MNA+ -pBryEV5uqNZZgFSrZKVooPbEx4S4RdX4zmTzwLHpPae9plYyysPu4aP61OwVooEb -E/mnY5IRY5MRMoq/oLHu9wxNCaupIWjjtsUqU1Kz5pUzjxSdB4W1MPI6HBrmO+2q -2y3h5AfAdZD30ErRMTKY3HS8XSc+NYDvoJGt+ik7Bcp3EmCgqrgyvET3ai3kjzYB -kE96JZUn7rAQJ4r8agEhdnmMRSqtCabMhuhYDkbk8wnx6DMsk1EmNNYeMJatROfA -1ypoPj+pnEiVbgu3S68aXHqko4lDTm771f8HOhVavA== -=Gj90 +Y2dkZWNrZXJAZ29vZ2xlLmNvbT65AQ0EUhfJFAEIAN9NHRd2bYP/3CDi+n1ilSCh +ld0NR3DUBgS/AdqQ7IoAUfj7skyI/WyaMdV4uy6vRh5YgNg2g01nd0LLZR8Gf2Ck ++D6F88CdZaTxlkcxHV/dXMZ8yBO+0D6yFRZEL7Imsv8Ig4QXOVwfuiXEPk/Ef5Dy +9SdAVhcoErTGGR6BOGVVvexGtBwefsjMaOG0khkRbWIQ32WxfUFuAv5XBQ0ckLrl +KvYWUYhOlXg27GtFKH2EBBF0Z5ZWu7gaBFwSV0oLp9EWcD+C+WEwUSfBdqfRJtyX +vgf4kZdwdQ5caM8P2/Sdncl2l/LU1At2Smc+plr6zhIhDlLhlrzKGa16oARSBdUA +EQEAAYkCPgQYAQoACQUCUhfJFAIbLgEpCRB0V8ozw86eFcBdIAQZAQoABgUCUhfJ +FAAKCRCr6fMSa7dBwURMCADHrqwRNHkbG1QsXJr9oUK6KVkLsPhcngIhxRLlqe89 +omg9G7eGNauzs2PKsB3txotCFc7ROVNv/TAuSDYzkPos8G46p3bGesjfJb24zc6G +MT4RGIJoh1oNG1IciafIIHjp2ZJHRmEDwmvZG24OHJ+mlHLjaedtqlWu+zwwhH2V +ZrI/U3gW/x4imbk9UyyzciEIxrAc+fc19xl5PkUVcSDVC0cAqGpeZz8+SxFaf3Rr +0aGnSbeuHRjNupmoxkQOAey1ztmdWiCPf5RFfmFD+fENh+/xqYiGorYpcIN7UAsM +kvD5UHc5ZG2tTD41jM99w9Lm/xHJ9ks8gNwZESwIzr6ABKIH/1ulsflI216qPz5o +7uUxlTm8NfTyATfCUuZEDMYGOjDQPqQa8hFebqjWWYBUq2SlaKD2xMeEuEXV+M5k +88Cx6T2nvaZWMsrD7uGj+tTsFaKBGxP5p2OSEWOTETKKv6Cx7vcMTQmrqSFo47bF +KlNSs+aVM48UnQeFtTDyOhwa5jvtqtst4eQHwHWQ99BK0TEymNx0vF0nPjWA76CR +rfopOwXKdxJgoKq4MrxE92ot5I82AZBPeiWVJ+6wECeK/GoBIXZ5jEUqrQmmzIbo +WA5G5PMJ8egzLJNRJjTWHjCWrUTnwNcqaD4/qZxIlW4Lt0uvGlx6pKOJQ05u+9X/ +BzoVWrw= +=fJQM -----END PGP PUBLIC KEY BLOCK----- diff --git a/gradle/verification-metadata.xml b/gradle/verification-metadata.xml index 862ed348..b3c2cee5 100644 --- a/gradle/verification-metadata.xml +++ b/gradle/verification-metadata.xml @@ -15,16 +15,22 @@ + - + + + + + + @@ -104,6 +110,22 @@ + + + + + + + + + + + + + + + + @@ -129,6 +151,12 @@ + + + + + + From e29e98b7db0ffde99108874b7a5e056db366a8fb Mon Sep 17 00:00:00 2001 From: Sam Gammon Date: Tue, 12 Mar 2024 20:36:07 -0700 Subject: [PATCH 14/15] chore: add settings-time lockfile Signed-off-by: Sam Gammon --- settings-gradle.lockfile | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 settings-gradle.lockfile diff --git a/settings-gradle.lockfile b/settings-gradle.lockfile new file mode 100644 index 00000000..709a43f7 --- /dev/null +++ b/settings-gradle.lockfile @@ -0,0 +1,4 @@ +# This is a Gradle generated file for dependency locking. +# Manual edits can break the build and are not advised. +# This file is expected to be part of source control. +empty=incomingCatalogForLibs0 From a973c9e82105edb431bde694506737686baf51dd Mon Sep 17 00:00:00 2001 From: Sam Gammon Date: Tue, 12 Mar 2024 20:40:13 -0700 Subject: [PATCH 15/15] fixup! version override Signed-off-by: Sam Gammon --- build.gradle | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 9b85fbbb..50498b6f 100644 --- a/build.gradle +++ b/build.gradle @@ -3,6 +3,7 @@ plugins { alias(libs.plugins.testlogger) apply false } +def projectVersion = properties["releaseVersion"] ?: "1.0.4" def sonatypeRepo = 'https://oss.sonatype.org/service/local/staging/deploy/maven2/' def sonatypeSnapshots = 'https://oss.sonatype.org/content/repositories/snapshots/' @@ -17,7 +18,7 @@ subprojects { apply plugin: libs.plugins.testlogger.get().pluginId group = "org.reactivestreams" - version = "1.0.4" + version = projectVersion dependencyLocking { lockAllConfigurations()