In our relentless pursuit to use all static analysis and code quality tools, we would like to add the Checker Framework to our project. This framework uses annotations and utilities to enhance type checking and reduce potential defects in code.
Here is the built-in Checkers:
Not all of these apply to our project, we can discuss the Checkers here and decide which will be valuable for us. Also, suppression of various Checkers can be a bit different, so we can take this on a case-by-case basis.
1 Checker == 1 PR
As for minimizing/ keeping annotations out of our codebase, we can consider https://checkerframework.org/annotation-file-utilities/#viewing-source, which is a tool to externally store annotations and insert them into source code as needed (such as during execution of Checker).
In our relentless pursuit to use all static analysis and code quality tools, we would like to add the Checker Framework to our project. This framework uses annotations and utilities to enhance type checking and reduce potential defects in code.
Here is the built-in Checkers:
Not all of these apply to our project, we can discuss the Checkers here and decide which will be valuable for us. Also, suppression of various Checkers can be a bit different, so we can take this on a case-by-case basis.
1 Checker == 1 PR
As for minimizing/ keeping annotations out of our codebase, we can consider https://checkerframework.org/annotation-file-utilities/#viewing-source, which is a tool to externally store annotations and insert them into source code as needed (such as during execution of Checker).