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¶
- Get started — generate your first project.
- Verify a run — read
tests_passand friends in the eval report.