The file testin.txt
in this directory contains a list of github repositories that are used to test the wpi-many.sh
script (stored in checker/bin
). Each entry is a git URL and commit hash, separated by whitespace.
The projects listed in testin.txt
are derived from plume-lib projects; each is a hard fork. These forks have had their (inferrable) annotations removed, and their typical checker build infrastructure disabled. The ./gradlew testWpiScripts
task defined in checker/build.gradle
runs the wpi-many.sh
script on these projects, and then checks that they typecheck afterwards.
To add a new project (named $PROJECT
below) to testin.txt
, follow these steps:
java -cp $CHECKERFRAMEWORK/checker/dist/checker.jar org.checkerframework.framework.stub.RemoveAnnotationsForInference .
on your new repository.org.checkerframework:checker-qual:$LATEST-CF-VERSION
as an implementation
dependency. Ensure that the build still succeeds (correcting any errors) and then commit.wpi.sh
on the project yourself and locate any annotations that cannot be inferred by WPI and/or any false positives from the relevant typecheckers (see checker/build.gradle
for the list of checkers that the testWpiScripts
task uses). You must add annotations or warning suppressions to your project until running wpi.sh
on the project with those checkers produces no errors in its final iteration. When that is the case, commit the result and note the commit hash..git
!) and the commit hash you noted in step 6 to testin.txt
../gradlew testWpiScripts
to ensure that the tests still pass, and correct any errors.