Skip to content

v1.8.0

Choose a tag to compare

@pambrose pambrose released this 03 Jul 22:01
· 7 commits to master since this release

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. correctAnswers is now a suspend function; ContentTests calls correctAnswers() inside a runBlocking { … } block. Existing Content.kt definitions compile and run unchanged.
  • Linting wired in. detekt (dev.detekt 2.0.0-alpha.5) and Kotlinter (org.jmailen.kotlinter 5.5.0) Gradle plugins, with make lint / make format / make detekt / make detekt-baseline shortcuts and a project-wide .editorconfig.
  • Gradle configuration cache enabled (org.gradle.configuration-cache=true).
  • Dropped Heroku deployment support. Removed Procfile, system.properties, and the heroku / logs Makefile targets; deploy the ./gradlew buildFatJar output (build/libs/server.jar) instead.
  • Build tidy-ups. Self-documenting Makefile (make help), a fixed make uberjar target (now ./gradlew buildFatJar), fat-jar config moved to Ktor's ktor { fatJar { … } } block, and jvm / gradle-wrapper versions promoted into the version catalog.
  • Kotlin challenge package renamed kgroup1 → kgroup to 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 uberjar should switch to ./gradlew buildFatJar (or make uberjar).
  • Forks referencing libs.plugins.versions should rename to libs.plugins.ben.manes.versions.
  • Forks referencing the kgroup1 package should rename it to kgroup.
  • Heroku users: Procfile and system.properties were removed — deploy the fat JAR instead.

Full Changelog: 1.7.0...1.8.0