Repository navigation
v1.8.0
A linting and toolchain-modernization release on top of 1.7.0. The content DSL is unchanged, but the project now targets JDK 25 and picks up readingbat-core 3.2.1, which adjusts one test call site.
Highlights
- JVM toolchain 17 → 25. A JDK 25 is now required to build.
- readingbat-core 3.1.5 → 3.2.1.
correctAnswersis now a suspend function;ContentTestscallscorrectAnswers()inside arunBlocking { … }block. ExistingContent.ktdefinitions compile and run unchanged. - Linting wired in. detekt (
dev.detekt2.0.0-alpha.5) and Kotlinter (org.jmailen.kotlinter5.5.0) Gradle plugins, withmake lint/make format/make detekt/make detekt-baselineshortcuts and a project-wide.editorconfig. - Gradle configuration cache enabled (
org.gradle.configuration-cache=true). - Dropped Heroku deployment support. Removed
Procfile,system.properties, and theheroku/logsMakefile targets; deploy the./gradlew buildFatJaroutput (build/libs/server.jar) instead. - Build tidy-ups. Self-documenting Makefile (
make help), a fixedmake uberjartarget (now./gradlew buildFatJar), fat-jar config moved to Ktor'sktor { fatJar { … } }block, andjvm/gradle-wrapperversions promoted into the version catalog. - Kotlin challenge package renamed
kgroup1→kgroupto match the documented layout.
Dependencies
| Library | Version |
|---|---|
| Kotlin | 2.4.0 |
| Ktor | 3.5.1 |
| Kotest | 6.2.1 |
| readingbat-core | 3.2.1 |
| core-utils | 2.9.3 |
| kotlin-logging | 8.0.4 |
| detekt | 2.0.0-alpha.5 |
| kotlinter | 5.5.0 |
| Gradle | 9.6.1 |
| JDK toolchain | 25 |
Upgrade Notes
- Install a JDK 25 — the toolchain target moved from 17 to 25.
- Forks invoking
./gradlew uberjarshould switch to./gradlew buildFatJar(ormake uberjar). - Forks referencing
libs.plugins.versionsshould rename tolibs.plugins.ben.manes.versions. - Forks referencing the
kgroup1package should rename it tokgroup. - Heroku users:
Procfileandsystem.propertieswere removed — deploy the fat JAR instead.
Full Changelog: 1.7.0...1.8.0