Repository navigation
A dependency-refresh release on top of 1.10.0 that also reworks how make versions reports dependency updates. There are no DSL, content, or runtime source changes. Existing Content.kt definitions compile and run unchanged, and the build still targets JDK 25. The minor-version bump reflects the readingbat-core minor bump, the core-utils major-version jump, and the new make versions-all target.
Highlights
make versionslists only what is behind. A customoutputFormatteronDependencyUpdatesTask(inconfigureVersions()inbuild.gradle.kts) replaces the plugin's report. It prints one line per outdated dependency (group:name current -> latest), a?line for each dependency that could not be checked, a line for a newer Gradle release, andAll dependencies are up to datewhen nothing is behind. The existing pre-release filter is unchanged.- New
make versions-alltarget. It runs the same task with--output-formatter=plainto get the plugin's full report, which also lists every up-to-date dependency. Only this target writesbuild/dependencyUpdates/report.txtnow. - readingbat-core / readingbat-kotest 3.4.0 → 3.5.0. A minor bump; no call-site changes were required.
correctAnswers()is still a suspend function, soContentTests.ktkeeps itsrunBlocking { … }wrapper. - core-utils 3.2.2 → 5.1.1. This is two major versions.
Content.kt(FileSystemSource,GitHubRepo,OwnerType) andContentTests.kt(toDoubleQuoted) compile unchanged. readingbat-core 3.5.0 itself moved to thecommon-utils5.1.1 line, so the whole runtime classpath agrees on 5.1.1 and no conflict resolution is involved. - Kotlin 2.4.10 → 2.4.21. A patch bump. The
-Xreturn-value-checker=checkcompiler flag oncompileKotlinstill reports nothing. - Gradle 9.7.1 → 9.8.1. The wrapper jar,
gradle-wrapper.properties,gradlew.bat, and thegradle-wrappercatalog key all moved together viamake upgrade-wrapper. The configuration cache still stores and reuses entries. - ben-manes versions plugin 0.64.0 → 0.66.0.
- Gradle daemon JVM args.
gradle.propertiesnow setsorg.gradle.jvmargsto give the Gradle and Kotlin daemons a 4 GB heap, write a heap dump onOutOfMemoryError, and use UTF-8 file encoding. - Docs refreshed.
CHANGELOG.mdandRELEASE_NOTES.mdgained 1.11.0 entries,llms.txtpicked up the new Gradle, readingbat-core, and core-utils versions and the new targets, andREADME.md/CLAUDE.mdnow documentmake versionsandmake versions-all.
Dependencies
| Library | Version |
|---|---|
| Kotlin | 2.4.21 |
| Ktor | 3.6.0 |
| Kotest | 6.2.5 |
| readingbat-core | 3.5.0 |
| core-utils | 5.1.1 |
| kotlin-logging | 8.0.4 |
| detekt | 2.0.0-alpha.6 |
| kotlinter | 5.7.0 |
| Gradle | 9.8.1 |
| JDK toolchain | 25 |
Unchanged from 1.10.0: Ktor, Kotest, kotlin-logging, detekt, kotlinter, and the JDK toolchain.
Upgrade Notes
- No source changes are required for forks that track this template. This release touches only
build.gradle.kts(thedependencyUpdatesformatter), theMakefile,gradle/libs.versions.toml,gradle/wrapper/*,gradlew.bat,gradle.properties, and the docs. - core-utils 5.1.1 removes or changes some public API, including
ScopeFunctionsKt,SingleAssignVar.ThreadSafeSingleAssignVar,MiscFuncs.waitForPortAvailable(which now returnsBoolean),toCreated(LocalDateTime), and theSecureObjectInputStream,NonNullableAtomicReferenceDelegate, andSingleSetAtomicReferenceDelegateconstructors. This template uses none of them. Forks that call core-utils directly beyond whatContent.ktuses should check their call sites against that list. - The new
org.gradle.jvmargsasks for a 4 GB daemon heap. On a machine with little memory, lower-Xmxingradle.properties. - Re-run
./gradlew --versionafter pulling so the new wrapper (9.8.1) downloads on first use. - Under Gradle 9.8.1 every build prints "Deprecated Gradle features were used in this build, making it incompatible with Gradle 10". The cause is detekt 2.0.0-alpha.6 calling
Configuration.setVisible(), which Gradle 9.8 deprecated and plans to remove in Gradle 11. It's harmless for now and should go away with a later detekt release. make versionsno longer writesbuild/dependencyUpdates/report.txt. Usemake versions-allif you rely on that file.- JDK 25 is still required, unchanged since 1.8.0.
Full Changelog: 1.10.0...1.11.0