Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,29 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
[Semantic Versioning](https://semver.org/spec/v2.0.0.html). Narrative notes for each release are in
[RELEASE_NOTES.md](RELEASE_NOTES.md).

## [0.2.1] - 2026-10-04

A maintenance release. The library's API, behavior and dependencies are unchanged from 0.2.0; everything below is
build and CI tooling, so upgrading needs only the new version number.

### Changed

- The default `User-Agent` is `jev4k/0.2.1`.
- The build runs on Gradle 9.8.0 (from 9.7.1), with Kover 0.9.11 (from 0.9.9) and the author's convention plugins
(`com.pambrose.kotlinter`, `com.pambrose.envvar`) at 1.1.6 (from 1.1.5).
- CI uses `gradle/actions/setup-gradle` 6.4.0 (from 6.3.0) and `astral-sh/setup-uv` 10.2.0 (from 10.1.0).
- The documentation site builds with Zensical 0.0.67 (from 0.0.65) and MarkupSafe 3.0.4 (from 3.0.3).

### Security

- The js and wasmJs test toolchains pin `brace-expansion` to 2.1.7 (from 2.1.4), which fixes three denial-of-service
advisories. It comes in through the Node.js test tooling and isn't part of any published artifact.

### Fixed

- Configuring the build no longer warns that Dokka's `suppressInheritedMembers` is deprecated. The setting moved into
the HTML publication, where Dokka 2.2.0 expects it; the KDocs are unchanged.

## [0.2.0] - 2026-09-28

jev4k is now a Kotlin Multiplatform library, published under the new group `com.pambrose.jev4k`. The other platforms
Expand Down Expand Up @@ -267,5 +290,6 @@ First release: a Kotlin DSL and client for [TypeSafe](https://docs.typesafe.ai)'
- Dokka KDocs for the public API at <https://jev4k.com/kdocs/>.
- `llms.txt` at <https://jev4k.com/llms.txt>, indexing the site for coding agents.

[0.2.1]: https://github.com/pambrose/jev4k/compare/0.2.0...0.2.1
[0.2.0]: https://github.com/pambrose/jev4k/compare/0.1.0...0.2.0
[0.1.0]: https://github.com/pambrose/jev4k/releases/tag/0.1.0
2 changes: 1 addition & 1 deletion CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -235,7 +235,7 @@ without them keep compiling.

## Build

- Gradle 9.7.1 via the wrapper, single module (`rootProject.name = "jev4k"`). `group` and `version` live in
- Gradle 9.8.0 via the wrapper, single module (`rootProject.name = "jev4k"`). `group` and `version` live in
`gradle.properties`; the version is always a release number, and `-PoverrideVersion=...` replaces it for snapshots.
- Kotlin Multiplatform (`kotlin-multiplatform` plugin; `java-library` is incompatible with it). Targets: `jvm`,
`js { nodejs() }`, `wasmJs { nodejs() }`, `macosArm64`, `iosArm64`, `iosX64`, `iosSimulatorArm64`, `tvosArm64`,
Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ artifact for each target, so a JVM project and a Kotlin Multiplatform project (i

```kotlin
dependencies {
implementation("com.pambrose.jev4k:jev4k:0.2.0")
implementation("com.pambrose.jev4k:jev4k:0.2.1")
}
```

Expand All @@ -90,7 +90,7 @@ Maven doesn't read Gradle's module metadata, so a Maven build depends on the JVM
<dependency>
<groupId>com.pambrose.jev4k</groupId>
<artifactId>jev4k-jvm</artifactId>
<version>0.2.0</version>
<version>0.2.1</version>
</dependency>
```

Expand Down Expand Up @@ -491,7 +491,7 @@ dropped:

```kotlin
dependencies {
implementation("com.pambrose.jev4k:jev4k:0.2.0") {
implementation("com.pambrose.jev4k:jev4k:0.2.1") {
exclude(group = "io.ktor", module = "ktor-client-cio-jvm")
}
implementation("io.ktor:ktor-client-okhttp:3.6.0")
Expand Down
14 changes: 14 additions & 0 deletions RELEASE_NOTES.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,20 @@
Narrative notes for each jev4k release, newest first. The itemized list of changes is in
[CHANGELOG.md](CHANGELOG.md).

## v0.2.1 — 2026-10-04

A maintenance release with no changes to the library: its API, behavior and dependencies are exactly as in 0.2.0.
Upgrading means changing the version number and nothing else:

- Gradle builds: `com.pambrose.jev4k:jev4k:0.2.1`
- Maven builds: `com.pambrose.jev4k:jev4k-jvm:0.2.1`

The build behind it has moved forward: Gradle 9.8.0, Kover 0.9.11, newer CI actions, a newer Zensical for the
documentation site, and a patched `brace-expansion` in the Node.js test toolchain. It also no longer warns about
Dokka's deprecated `suppressInheritedMembers` setting. The changelog lists each version change.

**Full Changelog**: https://github.com/pambrose/jev4k/compare/0.2.0...0.2.1

## v0.2.0 — 2026-09-28

> [!WARNING]
Expand Down
8 changes: 4 additions & 4 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -272,7 +272,7 @@ val yarnResolutions =
"ws" to "8.21.0",
"serialize-javascript" to "7.0.5",
"diff" to "8.0.3",
"brace-expansion" to "2.1.4",
"brace-expansion" to "2.1.7",
"js-yaml" to "4.3.2",
)

Expand All @@ -295,11 +295,11 @@ val repoUrl = "https://github.com/pambrose/jev4k"
dokka {
moduleName = "jev4k"
moduleVersion = project.version.toString()
// Hide members inherited from supertypes (e.g. Throwable's message/cause on every exception);
// each page links to its supertype instead.
suppressInheritedMembers = true

dokkaPublications.html {
// Hide members inherited from supertypes (e.g. Throwable's message/cause on every exception);
// each page links to its supertype instead.
suppressInheritedMembers = true
outputDirectory = layout.buildDirectory.dir("dokka/html")
includes.from("docs/packages.md")
}
Expand Down
11 changes: 6 additions & 5 deletions docs/release-checklist.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Dokka includes only `docs/packages.md` (the `includes.from("docs/packages.md")`

## Current state

Verified 2026-09-20.
Verified 2026-09-20; the release rows on 2026-10-04.

| Item | State |
|---------------------------------------|-------------------------------------------------------------|
Expand All @@ -21,11 +21,12 @@ Verified 2026-09-20.
| Published site | ✅ live at <https://jev4k.com/>, KDocs included |
| Site deploys | on a published GitHub release, or a manual `docs.yml` run |
| Required checks on `master` | `ci-ok`, `docs` and GitGuardian |
| Git tags | ✅ `0.1.0` at `b7c2b5e`, with a `v0.1.0` GitHub release |
| `com.pambrose:jev4k` on Maven Central | ✅ 0.1.0 published, signed, and resolvable |
| `gradle.properties` version | `0.2.0`, the next release number (the multiplatform move) |
| Git tags | ✅ `0.1.0` at `b7c2b5e` and `0.2.0` at `57a1dca`, released |
| `com.pambrose:jev4k` on Maven Central | ✅ 0.1.0 published, signed, and resolvable |
| `com.pambrose.jev4k:jev4k` on Central | ✅ 0.2.0 published, signed, and resolvable |
| `gradle.properties` version | `0.2.1`, the next release number |
| `gradle.properties` group | `com.pambrose.jev4k` from 0.2.0 (0.1.0 was `com.pambrose`) |
| `CHANGELOG.md` / `RELEASE_NOTES.md` | 0.1.0 dated 2026-09-20; 0.2.0 dated 2026-09-28 |
| `CHANGELOG.md` / `RELEASE_NOTES.md` | 0.2.0 dated 2026-09-28; 0.2.1 dated 2026-10-04 |

## Before the first release, once

Expand Down
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Gradle settings
group=com.pambrose.jev4k
version=0.2.0
version=0.2.1
kotlin.code.style=official
org.gradle.caching=true
org.gradle.configuration-cache=true
Expand Down
6 changes: 3 additions & 3 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@
coroutines = "1.11.0"
detekt = "2.0.0-alpha.6"
dokka = "2.2.0"
gradle-plugins = "1.1.5"
gradle-wrapper = "9.7.1"
gradle-plugins = "1.1.6"
gradle-wrapper = "9.8.0"
jvm-toolchain = "25" # the JDK this project builds with
jvm-target = "17" # bytecode floor: the oldest JDK a consumer can run
kotest = "6.2.5"
kover = "0.9.9"
kover = "0.9.11"
kotlin = "2.4.20"
# KSP versions are independent of Kotlin since 2.3.0; the kotest plugin needs KSP for the non-JVM targets.
ksp = "2.3.12"
Expand Down
Binary file modified gradle/wrapper/gradle-wrapper.jar
Binary file not shown.
4 changes: 2 additions & 2 deletions gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-9.7.1-bin.zip
distributionSha256Sum=acd53f1edaf02f1a8ff99879f8a34b302661a057d9b063ae9e35b552f804d20a
distributionSha256Sum=bafd5ce9cfaea0fbccfdc8439a1ac42fbd4cd9c89dc9a988228d8a2639a58e6c
distributionUrl=https\://services.gradle.org/distributions/gradle-9.8.0-bin.zip
networkTimeout=10000
retries=0
retryBackOffMs=500
Expand Down
52 changes: 41 additions & 11 deletions gradlew.bat

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 4 additions & 4 deletions kotlin-js-store/wasm/yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,10 @@ balanced-match@^1.0.0:
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==

brace-expansion@2.1.4:
version "2.1.4"
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.1.4.tgz#589dab11c0018d0366be64cd8bf12c8dbecc8326"
integrity sha512-hGfVzPxthbf3+2yjg/RBs60cB0FhqBS/zvdV/4wn4/BmN0bNMMHPc4V/BbFieqf1TKAGGAHnY4eSjajCl0f2Xg==
brace-expansion@2.1.7:
version "2.1.7"
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.1.7.tgz#14ea3836731823bb24740225ea43b941b436f9d1"
integrity sha512-uZbew1NqdmPDTMJ8ah1y+b+9QEJrfkXFk3RcTQw3X0jW/xRUvFKsg1CfQdSYGdTbXZWExtU3J3ccxtnfw1Fi0g==
dependencies:
balanced-match "^1.0.0"

Expand Down
8 changes: 4 additions & 4 deletions kotlin-js-store/yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -51,10 +51,10 @@ balanced-match@^1.0.0:
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==

brace-expansion@2.1.4, brace-expansion@^2.0.2:
version "2.1.4"
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.1.4.tgz#589dab11c0018d0366be64cd8bf12c8dbecc8326"
integrity sha512-hGfVzPxthbf3+2yjg/RBs60cB0FhqBS/zvdV/4wn4/BmN0bNMMHPc4V/BbFieqf1TKAGGAHnY4eSjajCl0f2Xg==
brace-expansion@2.1.7, brace-expansion@^2.0.2:
version "2.1.7"
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.1.7.tgz#14ea3836731823bb24740225ea43b941b436f9d1"
integrity sha512-uZbew1NqdmPDTMJ8ah1y+b+9QEJrfkXFk3RcTQw3X0jW/xRUvFKsg1CfQdSYGdTbXZWExtU3J3ccxtnfw1Fi0g==
dependencies:
balanced-match "^1.0.0"

Expand Down
10 changes: 5 additions & 5 deletions src/jvmTest/kotlin/website/GettingStarted.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ export TYPESAFE_API_KEY=ts-...
// --8<-- [start:dependency-gradle]
// build.gradle.kts
dependencies {
implementation("com.pambrose.jev4k:jev4k:0.2.0")
implementation("com.pambrose.jev4k:jev4k:0.2.1")
}
// --8<-- [end:dependency-gradle]

Expand All @@ -15,7 +15,7 @@ dependencies {
kotlin {
sourceSets {
commonMain.dependencies {
implementation("com.pambrose.jev4k:jev4k:0.2.0") // Gradle picks the artifact for each target
implementation("com.pambrose.jev4k:jev4k:0.2.1") // Gradle picks the artifact for each target
}
}
}
Expand All @@ -25,7 +25,7 @@ kotlin {
<dependency>
<groupId>com.pambrose.jev4k</groupId>
<artifactId>jev4k-jvm</artifactId>
<version>0.2.0</version>
<version>0.2.1</version>
</dependency>
<!-- --8<-- [end:dependency-maven] -->

Expand All @@ -47,7 +47,7 @@ plugins {
}

dependencies {
implementation("com.pambrose.jev4k:jev4k:0.2.0") // the version in the checkout's gradle.properties
implementation("com.pambrose.jev4k:jev4k:0.2.1") // the version in the checkout's gradle.properties
}

kotlin {
Expand All @@ -62,7 +62,7 @@ make example # runs src/jvmTest/kotlin/com/pambrose/jev4k/examples/TriageEx

// --8<-- [start:exclude-cio]
dependencies {
implementation("com.pambrose.jev4k:jev4k:0.2.0") {
implementation("com.pambrose.jev4k:jev4k:0.2.1") {
// Only if you pass your own engine: drops ktor-client-cio and ktor-network-tls. ktor-network
// itself stays, because ktor-client-core depends on it through ktor-http-cio.
exclude(group = "io.ktor", module = "ktor-client-cio-jvm")
Expand Down
Loading
Loading