diff --git a/build.gradle b/build.gradle index a3f44b927852..90b6a57ccf67 100644 --- a/build.gradle +++ b/build.gradle @@ -68,6 +68,7 @@ ext { // afu = "${annotationTools}/annotation-file-utilities" jtregHome = "${parentDir}/jtreg" + gitScriptsHome = "${project(':checker').projectDir}/bin-devel/.git-scripts" plumeScriptsHome = "${project(':checker').projectDir}/bin-devel/.plume-scripts" htmlToolsHome = "${project(':checker').projectDir}/bin-devel/.html-tools" doLikeJavacHome = "${project(':checker').projectDir}/bin/.do-like-javac" @@ -248,6 +249,7 @@ allprojects { // If you add any formatters to this block that require dependencies, then you must also // add them to spotlessPredeclare block. def doNotFormat = [ + 'checker/bin-devel/.git-scripts/**', 'checker/bin-devel/.plume-scripts/**', 'checker/tests/ainfer-*/annotated/*', 'dataflow/manual/examples/', @@ -804,6 +806,7 @@ def createCloneTask(taskName, url, directory, extraArgs = []) { } +createCloneTask('getGitScripts', 'https://github.com/eisop-plume-lib/git-scripts.git', gitScriptsHome) createCloneTask('getPlumeScripts', 'https://github.com/eisop-plume-lib/plume-scripts.git', plumeScriptsHome) createCloneTask('getHtmlTools', 'https://github.com/plume-lib/html-tools.git', htmlToolsHome) createCloneTask('getDoLikeJavac', 'https://github.com/opprop/do-like-javac.git', doLikeJavacHome) diff --git a/checker/bin-devel/checkout-historical.sh b/checker/bin-devel/checkout-historical.sh index dc543c2aa8e3..dab417805cf1 100755 --- a/checker/bin-devel/checkout-historical.sh +++ b/checker/bin-devel/checkout-historical.sh @@ -89,7 +89,7 @@ git checkout -B __merge_eval__ echo "plume-scripts" PLUME_SCRIPTS="checker/bin-devel/.plume-scripts" if [ ! -d "$PLUME_SCRIPTS" ] ; then - git clone -q https://github.com/plume-lib/plume-scripts.git "${PLUME_SCRIPTS}" + git clone -q https://github.com/eisop-plume-lib/plume-scripts.git "${PLUME_SCRIPTS}" fi COMMIT="$(cd "${PLUME_SCRIPTS}" && git rev-list -n 1 --first-parent --before="${commit_date}" master)" if [ -n "${COMMIT}" ] ; then @@ -102,7 +102,7 @@ echo "html-tools" HTML_TOOLS="checker/bin-devel/.plume-scripts" COMMIT="$(cd "${HTML_TOOLS}" && git rev-list -n 1 --first-parent --before="${commit_date}" master)" if [ ! -d "$HTML_TOOLS" ] ; then - git clone -q https://github.com/plume-lib/html-tools.git "${HTML_TOOLS}" + git clone -q https://github.com/eisop-plume-lib/html-tools.git "${HTML_TOOLS}" fi if [ -n "${COMMIT}" ] ; then # COMMIT is non-empty diff --git a/checker/bin-devel/clone-related.sh b/checker/bin-devel/clone-related.sh index a0b701483395..e8f89e73dc36 100755 --- a/checker/bin-devel/clone-related.sh +++ b/checker/bin-devel/clone-related.sh @@ -31,25 +31,25 @@ else fi echo "JAVA_HOME=${JAVA_HOME}" -# Using `(cd "$CHECKERFRAMEWORK" && ./gradlew getPlumeScripts -q)` leads to infinite regress. -PLUME_SCRIPTS="$CHECKERFRAMEWORK/checker/bin-devel/.plume-scripts" -if [ -d "$PLUME_SCRIPTS" ] ; then - (cd "$PLUME_SCRIPTS" && (git pull -q || true)) +# Using `(cd "$CHECKERFRAMEWORK" && ./gradlew getGitScripts -q)` leads to infinite regress. +GIT_SCRIPTS="$CHECKERFRAMEWORK/checker/bin-devel/.git-scripts" +if [ -d "$GIT_SCRIPTS" ] ; then + (cd "$GIT_SCRIPTS" && (git pull -q || true)) else (cd "$CHECKERFRAMEWORK/checker/bin-devel" && \ - (git clone --filter=blob:none -q https://github.com/eisop-plume-lib/plume-scripts.git .plume-scripts || \ - (sleep 1m && git clone --filter=blob:none -q https://github.com/eisop-plume-lib/plume-scripts.git .plume-scripts))) + (git clone --filter=blob:none -q https://github.com/eisop-plume-lib/git-scripts.git .git-scripts || \ + (sleep 60 && git clone --filter=blob:none -q https://github.com/eisop-plume-lib/git-scripts.git .git-scripts))) fi # Clone the annotated JDK into ../jdk . -"$PLUME_SCRIPTS/git-clone-related" ${DEBUG_FLAG} opprop jdk +"$GIT_SCRIPTS/git-clone-related" ${DEBUG_FLAG} opprop jdk # AFU="${AFU:-../annotation-tools/annotation-file-utilities}" # # Don't use `AT=${AFU}/..` which causes a git failure. # AT=$(dirname "${AFU}") # ## Build annotation-tools (Annotation File Utilities) -# "$PLUME_SCRIPTS/git-clone-related" ${DEBUG_FLAG} eisop annotation-tools "${AT}" +# "$GIT_SCRIPTS/git-clone-related" ${DEBUG_FLAG} eisop annotation-tools "${AT}" # if [ ! -d ../annotation-tools ] ; then # ln -s "${AT}" ../annotation-tools # fi diff --git a/checker/bin-devel/test-cf-inference.sh b/checker/bin-devel/test-cf-inference.sh index 32b674db3872..e8dda5b5d2a9 100755 --- a/checker/bin-devel/test-cf-inference.sh +++ b/checker/bin-devel/test-cf-inference.sh @@ -15,7 +15,7 @@ source "$SCRIPTDIR"/build.sh ## script rather than in ./test/downstream.sh, because it needs a different ## Docker image. -"$SCRIPTDIR/.plume-scripts/git-clone-related" opprop checker-framework-inference +"$SCRIPTDIR/.git-scripts/git-clone-related" opprop checker-framework-inference export PATH=$AFU/scripts:$PATH cd ../checker-framework-inference diff --git a/checker/bin-devel/test-daikon-part1.sh b/checker/bin-devel/test-daikon-part1.sh index 7a7b2a6351db..1a2c7e898a91 100755 --- a/checker/bin-devel/test-daikon-part1.sh +++ b/checker/bin-devel/test-daikon-part1.sh @@ -17,7 +17,7 @@ echo "running \"./gradlew assembleForJavac\" for checker-framework" # daikon-typecheck: 15 minutes -"$SCRIPTDIR/.plume-scripts/git-clone-related" eisop-codespecs daikon +"$SCRIPTDIR/.git-scripts/git-clone-related" eisop-codespecs daikon cd ../daikon git log | head -n 5 make compile diff --git a/checker/bin-devel/test-daikon-part2.sh b/checker/bin-devel/test-daikon-part2.sh index 4151eb723de2..860e52851920 100755 --- a/checker/bin-devel/test-daikon-part2.sh +++ b/checker/bin-devel/test-daikon-part2.sh @@ -16,7 +16,7 @@ echo "running \"./gradlew assembleForJavac\" for checker-framework" ./gradlew assembleForJavac --console=plain -Dorg.gradle.internal.http.socketTimeout=60000 -Dorg.gradle.internal.http.connectionTimeout=60000 # daikon-typecheck: 15 minutes -"$SCRIPTDIR/.plume-scripts/git-clone-related" eisop-codespecs daikon +"$SCRIPTDIR/.git-scripts/git-clone-related" eisop-codespecs daikon cd ../daikon git log | head -n 5 make compile diff --git a/checker/bin-devel/test-daikon.sh b/checker/bin-devel/test-daikon.sh index 85610dc359fd..97c8e8f98c0c 100755 --- a/checker/bin-devel/test-daikon.sh +++ b/checker/bin-devel/test-daikon.sh @@ -16,7 +16,7 @@ echo "running \"./gradlew assembleForJavac\" for checker-framework" ./gradlew assembleForJavac --console=plain -Dorg.gradle.internal.http.socketTimeout=60000 -Dorg.gradle.internal.http.connectionTimeout=60000 # daikon-typecheck: 15 minutes -"$SCRIPTDIR/.plume-scripts/git-clone-related" eisop-codespecs daikon -q --single-branch --depth 50 +"$SCRIPTDIR/.git-scripts/git-clone-related" eisop-codespecs daikon -q --single-branch --depth 50 cd ../daikon git log | head -n 5 make compile diff --git a/checker/bin-devel/test-downstream.sh b/checker/bin-devel/test-downstream.sh index 31cc12dd15df..53be63895f07 100755 --- a/checker/bin-devel/test-downstream.sh +++ b/checker/bin-devel/test-downstream.sh @@ -22,5 +22,5 @@ source "$SCRIPTDIR"/clone-related.sh ## This is moved to misc, because otherwise it would be the only work done by this script. # # Checker Framework demos -# "$SCRIPTDIR/.plume-scripts/git-clone-related" eisop checker-framework.demos +# "$SCRIPTDIR/.git-scripts/git-clone-related" eisop checker-framework.demos # ./gradlew :checker:demosTests --console=plain --warning-mode=all diff --git a/checker/bin-devel/test-guava-formatter.sh b/checker/bin-devel/test-guava-formatter.sh index 33d7b9560ca4..57eb547766fc 100755 --- a/checker/bin-devel/test-guava-formatter.sh +++ b/checker/bin-devel/test-guava-formatter.sh @@ -12,7 +12,7 @@ export ORG_GRADLE_PROJECT_useJdk17Compiler=true source "$SCRIPTDIR"/clone-related.sh -"$SCRIPTDIR/.plume-scripts/git-clone-related" eisop guava +"$SCRIPTDIR/.git-scripts/git-clone-related" eisop guava cd ../guava ./typecheck.sh formatter diff --git a/checker/bin-devel/test-guava-index.sh b/checker/bin-devel/test-guava-index.sh index 23707e37ab57..32a787cd091a 100755 --- a/checker/bin-devel/test-guava-index.sh +++ b/checker/bin-devel/test-guava-index.sh @@ -13,7 +13,7 @@ export ORG_GRADLE_PROJECT_useJdk17Compiler=true source "$SCRIPTDIR"/clone-related.sh -"$SCRIPTDIR/.plume-scripts/git-clone-related" eisop guava +"$SCRIPTDIR/.git-scripts/git-clone-related" eisop guava cd ../guava if [ "$TRAVIS" = "true" ] ; then diff --git a/checker/bin-devel/test-guava-interning.sh b/checker/bin-devel/test-guava-interning.sh index e18a35078be3..9dfaa51169bb 100755 --- a/checker/bin-devel/test-guava-interning.sh +++ b/checker/bin-devel/test-guava-interning.sh @@ -12,7 +12,7 @@ export ORG_GRADLE_PROJECT_useJdk17Compiler=true source "$SCRIPTDIR"/clone-related.sh -"$SCRIPTDIR/.plume-scripts/git-clone-related" eisop guava +"$SCRIPTDIR/.git-scripts/git-clone-related" eisop guava cd ../guava ./typecheck.sh interning diff --git a/checker/bin-devel/test-guava-lock.sh b/checker/bin-devel/test-guava-lock.sh index 2bea848dc256..d146d5d1ba7f 100755 --- a/checker/bin-devel/test-guava-lock.sh +++ b/checker/bin-devel/test-guava-lock.sh @@ -12,7 +12,7 @@ export ORG_GRADLE_PROJECT_useJdk17Compiler=true source "$SCRIPTDIR"/clone-related.sh -"$SCRIPTDIR/.plume-scripts/git-clone-related" eisop guava +"$SCRIPTDIR/.git-scripts/git-clone-related" eisop guava cd ../guava ./typecheck.sh lock diff --git a/checker/bin-devel/test-guava-nullness.sh b/checker/bin-devel/test-guava-nullness.sh index 72282d28e212..4ee36fb5b4ab 100755 --- a/checker/bin-devel/test-guava-nullness.sh +++ b/checker/bin-devel/test-guava-nullness.sh @@ -12,7 +12,7 @@ export ORG_GRADLE_PROJECT_useJdk17Compiler=true source "$SCRIPTDIR"/clone-related.sh -"$SCRIPTDIR/.plume-scripts/git-clone-related" eisop guava +"$SCRIPTDIR/.git-scripts/git-clone-related" eisop guava cd ../guava ./typecheck.sh nullness diff --git a/checker/bin-devel/test-guava-regex.sh b/checker/bin-devel/test-guava-regex.sh index cb42020eab3a..a4f042172062 100755 --- a/checker/bin-devel/test-guava-regex.sh +++ b/checker/bin-devel/test-guava-regex.sh @@ -12,7 +12,7 @@ export ORG_GRADLE_PROJECT_useJdk17Compiler=true source "$SCRIPTDIR"/clone-related.sh -"$SCRIPTDIR/.plume-scripts/git-clone-related" eisop guava +"$SCRIPTDIR/.git-scripts/git-clone-related" eisop guava cd ../guava ./typecheck.sh regex diff --git a/checker/bin-devel/test-guava-signature.sh b/checker/bin-devel/test-guava-signature.sh index 66751585b090..a7ff4ceee08d 100755 --- a/checker/bin-devel/test-guava-signature.sh +++ b/checker/bin-devel/test-guava-signature.sh @@ -12,7 +12,7 @@ export ORG_GRADLE_PROJECT_useJdk17Compiler=true source "$SCRIPTDIR"/clone-related.sh -"$SCRIPTDIR/.plume-scripts/git-clone-related" eisop guava +"$SCRIPTDIR/.git-scripts/git-clone-related" eisop guava cd ../guava ./typecheck.sh signature diff --git a/checker/bin-devel/test-guava.sh b/checker/bin-devel/test-guava.sh index 7bc125a4a9bf..a56e559f03ca 100755 --- a/checker/bin-devel/test-guava.sh +++ b/checker/bin-devel/test-guava.sh @@ -15,7 +15,7 @@ source "$SCRIPTDIR"/clone-related.sh # TODO: Maybe I should move this into the CI job, and do it for all CI jobs. cp "$SCRIPTDIR"/mvn-settings.xml ~/settings.xml -"$SCRIPTDIR/.plume-scripts/git-clone-related" eisop guava +"$SCRIPTDIR/.git-scripts/git-clone-related" eisop guava cd ../guava if [ "$TRAVIS" = "true" ] ; then diff --git a/checker/bin-devel/test-jspecify-conformance.sh b/checker/bin-devel/test-jspecify-conformance.sh new file mode 100755 index 000000000000..e7d7fb5f8b89 --- /dev/null +++ b/checker/bin-devel/test-jspecify-conformance.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +set -e +set -o verbose +set -o xtrace +export SHELLOPTS +echo "SHELLOPTS=${SHELLOPTS}" + +SCRIPTDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" +# shellcheck disable=SC1090 # In newer shellcheck than 0.6.0, pass: "-P SCRIPTDIR" (literally) +export ORG_GRADLE_PROJECT_useJdk17Compiler=true +source "$SCRIPTDIR"/clone-related.sh + +GIT_SCRIPTS="$SCRIPTDIR/.git-scripts" +"$GIT_SCRIPTS/git-clone-related" eisop jspecify-conformance +cd ../jspecify-conformance +./gradlew test --console=plain -PcfLocal diff --git a/checker/bin-devel/test-misc.sh b/checker/bin-devel/test-misc.sh index 8158fca7f3bf..7d7ea89cf16d 100755 --- a/checker/bin-devel/test-misc.sh +++ b/checker/bin-devel/test-misc.sh @@ -14,7 +14,7 @@ source "$SCRIPTDIR"/clone-related.sh PLUME_SCRIPTS="$SCRIPTDIR/.plume-scripts" ## Checker Framework demos -"$PLUME_SCRIPTS/git-clone-related" eisop checker-framework.demos -q --single-branch --depth 50 +"$GIT_SCRIPTS/git-clone-related" eisop checker-framework.demos ./gradlew :checker:demosTests --console=plain --warning-mode=all status=0 @@ -62,6 +62,6 @@ git diff --exit-code docs/manual/contributors.tex || \ echo " * Update your git configuration by running: git config --global user.name \"YOURFULLNAME\"" && echo " * Add your name to your GitHub account profile at https://github.com/settings/profile" && echo " * Make a pull request to add your GitHub ID to" && - echo " https://github.com/eisop-plume-lib/plume-scripts/blob/master/git-authors.sed" && + echo " https://github.com/eisop-plume-lib/git-scripts/blob/master/git-authors.sed" && echo " and remake contributors.tex after that pull request is merged." && false) diff --git a/checker/bin-devel/test-plume-lib.sh b/checker/bin-devel/test-plume-lib.sh index 9d0d0fa07cb4..e43f7f640246 100755 --- a/checker/bin-devel/test-plume-lib.sh +++ b/checker/bin-devel/test-plume-lib.sh @@ -49,7 +49,7 @@ for PACKAGE in "${PACKAGES[@]}"; do echo "PACKAGE=${PACKAGE}" PACKAGEDIR="/tmp/${PACKAGE}" rm -rf "${PACKAGEDIR}" - "$SCRIPTDIR/.plume-scripts/git-clone-related" eisop-plume-lib "${PACKAGE}" "${PACKAGEDIR}" -q --single-branch --depth 250 + "$SCRIPTDIR/.git-scripts/git-clone-related" eisop-plume-lib "${PACKAGE}" "${PACKAGEDIR}" # Uses "compileJava" target instead of "assemble" to avoid the javadoc error "Error fetching URL: # https://docs.oracle.com/en/java/javase/17/docs/api/" due to network problems. echo "About to call ./gradlew --console=plain -PcfLocal compileJava" diff --git a/docs/manual/Makefile b/docs/manual/Makefile index f133e41b9405..233b7db095a3 100644 --- a/docs/manual/Makefile +++ b/docs/manual/Makefile @@ -73,14 +73,17 @@ manual.html: manual.pdf CFLogo.png favicon-checkerframework.png ../api # Add CSS styling for some links, since \ahrefloc doesn't permit styling sed -i -e 's%\(&\#X1F517;\)%\1 style="color:inherit; text-decoration:none"\2%g' manual.html +../../checker/bin-devel/.git-scripts: + cd ../.. && ./gradlew --stacktrace getGitScripts + ../../checker/bin-devel/.plume-scripts: cd ../.. && ./gradlew --stacktrace getPlumeScripts .PHONY: contributors.tex contributors.tex: -# Update plume-scripts even if it is already cloned - cd ../.. && (./gradlew --stacktrace getPlumeScripts || (sleep 60 && ./gradlew --stacktrace getPlumeScripts)) - ../../checker/bin-devel/.plume-scripts/git-authors --latex --punctuation > contributors.tex +# Update git-scripts even if it is already cloned + cd ../.. && (./gradlew --stacktrace getGitScripts || (sleep 60 && ./gradlew --stacktrace getGitScripts)) + ../../checker/bin-devel/.git-scripts/git-authors --latex --punctuation > contributors.tex ../api: cd ../.. && ./gradlew allJavadoc