Developer Guide¶
This guide is for developers who want to build TASSEL from source, understand its internal architecture, add new analysis functionality, or contribute code back to the project.
TASSEL is written primarily in Java (with some Kotlin) and built with Gradle. The source lives on GitHub at maize-genetics/tassel.
Where to start¶
| If you want to… | Read |
|---|---|
Compile the code and produce a runnable sTASSEL.jar |
Building from Source |
| Understand how the code is organized | Project Architecture |
| Add a new analysis, filter, or data operation | Developing Plugins |
| Run the test suite and check statistical correctness | Testing |
| Submit a change through a pull request | Contributing |
| Fix a typo or improve these docs | Documentation track |
| Cut a release and publish artifacts | Releasing |
Branching model
TASSEL uses a develop integration branch: normal work flows
feature/* -> develop -> main, and main holds released code. Branch off
develop for your change (see Contributing); releases
are promoted from develop to main (see Releasing).
Documentation-only changes are the exception — they go straight to main
and publish the site without cutting a release.
Toolchain at a glance¶
| Tool | Version / Notes |
|---|---|
| Java (JDK) | 21 — the build compiles to Java 21 bytecode via a Gradle toolchain |
| Kotlin | 2.1.x (configured by the Gradle Kotlin plugin) |
| Build system | Gradle — use the bundled wrapper (./gradlew); no local install |
| Native BLAS | OpenBLAS (optional, recommended) for fast matrix operations |
| VCS | Git / GitHub |
| Recommended IDE | IntelliJ IDEA (imports the Gradle project directly) |
Quick start¶
# Clone the repository
git clone https://github.com/maize-genetics/tassel.git
cd tassel
# Build the runnable JAR (output in build/libs/)
./gradlew build
# Launch the graphical interface
./gradlew run
See Building from Source for prerequisites (including OpenBLAS setup) and more detail.