Skip to content

Release 1.1.0: dependency refresh and release documentation - #21

Merged
pambrose merged 1 commit into
masterfrom
release-1.1.0
Sep 22, 2026
Merged

pambrose merged 1 commit into
masterfrom
release-1.1.0

Conversation

@pambrose

Copy link
Copy Markdown
Collaborator

Bundles the two test-reliability fixes that landed after 1.0.1 (#19, #20) with a dependency refresh and the documentation needed to cut the release. No challenge content changed.

Dependencies

from to
readingbat-core 3.3.1 3.4.0
Ktor 3.5.1 3.6.0
Kotest 6.2.3 6.2.5
kotlinter 5.6.0 5.7.0
detekt 2.0.0-alpha.5 2.0.0-alpha.6
versions plugin 0.57.0 0.64.0
Gradle wrapper 9.6.1 9.7.1

Kotlin stays at 2.4.10, common-utils at 3.2.2, and the JVM toolchain at 25.

.gitattributes

The repository had never had one. gradlew.bat had been committed with LF endings, which cmd.exe mis-parses around labels and multi-line set blocks — a latent break that Linux-only CI would never have surfaced. Stored blobs are now normalized to LF, /gradlew stays eol=lf, *.bat is checked out eol=crlf, and *.jar is pinned binary. git add --renormalize . was a no-op, so no existing blob changed.

Documentation

Audited against the repo rather than just appended to:

  • CHANGELOG.md[Unreleased] becomes [1.1.0] - 2026-09-21, matching how 1.0.1 was cut (no empty Unreleased left behind), plus the previously undocumented dependency and wrapper bumps.
  • RELEASE_NOTES.mdv1.1.0 narrative covering the runTest 60s-ceiling diagnosis, the per-language split, the coverage guard, and the toolchain refresh.
  • README.md — the Testing section was stale: it still described the suite as using testApplication, which is precisely what Give the challenge sweeps an explicit timeout #20 moved away from. Now documents the per-language sweeps, the explicit 5-minute timeout, and the coverage guard.
  • CLAUDE.md, llms.txt — record the two constraints that are easy to break when editing the suite: await runTestApplication directly rather than calling testApplication, and a language added to Content.kt needs its own sweep. llms.txt keeps the 1.0.1 discipline of pointing at libs.versions.toml rather than restating versions that drift.

Verification

./gradlew --rerun-tasks check on the new dependency set:

ContentTests > Test all Java challenges PASSED
ContentTests > Test all Kotlin challenges PASSED
ContentTests > Per-language tests cover every challenge PASSED
ContentTests > Test with correct answers PASSED
ContentTests > Test individual challenges PASSED

BUILD SUCCESSFUL in 28s

5 tests, 0 failures, with kotlinter and detekt clean. ./gradlew properties reports version: 1.1.0, and every Makefile target named in the docs exists.

Note on the release date

CHANGELOG.md dates 1.1.0 as 2026-09-21 (today), but the commits it describes landed 2026-08-01 — the work sat uncommitted for seven weeks. Say the word if you'd rather date it to when the work happened.

🤖 Generated with Claude Code

Bundles the two test-reliability fixes that landed after 1.0.1 (#19, #20) with a
dependency refresh and the documentation needed to cut the release.

Dependencies: readingbat-core 3.3.1 -> 3.4.0, Ktor 3.5.1 -> 3.6.0, Kotest 6.2.3
-> 6.2.5, kotlinter 5.6.0 -> 5.7.0, detekt 2.0.0-alpha.5 -> 2.0.0-alpha.6, and
the versions plugin 0.57.0 -> 0.64.0. The Gradle wrapper moves 9.6.1 -> 9.7.1.
Kotlin stays at 2.4.10, common-utils at 3.2.2, and the JVM toolchain at 25.

Adds the repository's first .gitattributes. gradlew.bat had been stored with LF
endings, which cmd.exe mis-parses around labels and multi-line set blocks -- a
latent break that Linux-only CI would never have surfaced. Stored blobs are now
LF, *.bat is checked out CRLF, and *.jar is pinned binary. `git add
--renormalize .` was a no-op, so no existing blob changed.

Documentation was audited against the repo rather than just appended to:

- CHANGELOG.md: [Unreleased] becomes [1.1.0], matching how 1.0.1 was cut, plus
  the previously undocumented dependency and wrapper bumps.
- RELEASE_NOTES.md: v1.1.0 narrative covering the runTest 60s-ceiling diagnosis.
- README.md: the Testing section was stale -- it still described the suite as
  using testApplication, which is exactly what #20 moved away from.
- CLAUDE.md, llms.txt: record the two constraints that are easy to break when
  editing the suite (await runTestApplication directly; a new language needs its
  own sweep).

Verified with `./gradlew --rerun-tasks check` on the new dependency set: all 5
tests pass and both lint gates are clean. `./gradlew properties` reports 1.1.0.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@pambrose
pambrose merged commit 962d1a0 into master Sep 22, 2026
5 of 6 checks passed
@pambrose
pambrose deleted the release-1.1.0 branch September 22, 2026 05:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant