Skip to content

Per-language toolchains

You only need a language's toolchain when generating projects in that language. Python alone needs no extra setup beyond pip install squeaky-clean.

Requirements by target_language

Language Required toolchain Used for
python Python 3.10+ (already required for the framework) pytest against generated tests
java JDK 17+, Maven 3.8+ mvn -q test against generated Surefire suites
go Go 1.21+ go build and go test against generated modules
rust Rust 1.70+ (rustup) cargo build and cargo test
javascript Node 18+, npm npm test against generated Jest suites
typescript Node 18+, npm, plus tsc from the generated package.json npm run build && npm test

The framework gracefully falls back to a zero-tests-pass result when a toolchain is unavailable rather than crashing the run. So you can ask for a Java project on a machine without a JDK — you just won't get a tests_pass score.

Verify

java -version
mvn -version
go version
rustc --version
node --version

Squeaky Clean's MavenTestRunner auto-resolves JAVA_HOME from /usr/lib/jvm/java-{11,17,21}-openjdk-* if the env var isn't set. On other distros, set it explicitly:

export JAVA_HOME=/path/to/jdk

What to do next