Conversation
WalkthroughAdds release notes to Changes
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~3 minutes Possibly related PRs
Suggested reviewers
Pre-merge checks (2 passed, 1 inconclusive)❌ Failed checks (1 inconclusive)
✅ Passed checks (2 passed)
✨ Finishing touches🧪 Generate unit tests
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 0
🧹 Nitpick comments (5)
CHANGELOG.md (5)
4-4: Heading level vs. markdownlint MD001.markdownlint expects H2 after H1. You can either:
- keep H3 for consistency with the rest of the file and ignore MD001 for CHANGELOG.md, or
- switch section headings under 3.3.0 to H2.
If you choose the latter, apply:
-### Features +## Features ... -### Improvements +## Improvements ... -### Bugfixes +## BugfixesAlso applies to: 14-14, 24-24
5-12: Normalize terminology/casing for clarity and consistency.Minor wording/case tweaks (HTTP/2, TLS, SHA-256, phrasing):
-* Support for server side http2 without tls (h2c) ([KTOR-4750](https://youtrack.jetbrains.com/issue/KTOR-4750)) +* Support for server-side HTTP/2 without TLS (h2c) ([KTOR-4750](https://youtrack.jetbrains.com/issue/KTOR-4750)) ... -* Serve static resources with caching headers and ETag based on sha256 of content ([KTOR-6700](https://youtrack.jetbrains.com/issue/KTOR-6700)) +* Serve static resources with caching headers and ETag based on SHA-256 of content ([KTOR-6700](https://youtrack.jetbrains.com/issue/KTOR-6700)) -* Jetty engine: Upgrade Jetty dependencies to the latest version 12 ([KTOR-6734](https://youtrack.jetbrains.com/issue/KTOR-6734)) +* Jetty engine: Upgrade Jetty dependencies to version 12 ([KTOR-6734](https://youtrack.jetbrains.com/issue/KTOR-6734)) -* staticFiles: when directory is requested, file listing or an error message should be returned ([KTOR-8115](https://youtrack.jetbrains.com/issue/KTOR-8115)) +* staticFiles: when a directory is requested, a file listing or an error message should be returned ([KTOR-8115](https://youtrack.jetbrains.com/issue/KTOR-8115)) -* Static content: Support a custom respond logic if the file is not found ([KTOR-8496](https://youtrack.jetbrains.com/issue/KTOR-8496)) +* Static content: support custom respond logic when a file is not found ([KTOR-8496](https://youtrack.jetbrains.com/issue/KTOR-8496))
26-26: “web socket” → “WebSocket” and phrasing.-* Big number of simultaneous outbound web socket connections leads to a coroutine deadlock ([KTOR-8829](https://youtrack.jetbrains.com/issue/KTOR-8829)) +* Large number of simultaneous outbound WebSocket connections leads to a coroutine deadlock ([KTOR-8829](https://youtrack.jetbrains.com/issue/KTOR-8829))
30-30: Wrap generic type in code font.-* SerializationException when Application.propertyOrNull() is called with type Map<String, Any?> ([KTOR-8781](https://youtrack.jetbrains.com/issue/KTOR-8781)) +* SerializationException when Application.propertyOrNull() is called with type `Map<String, Any?>` ([KTOR-8781](https://youtrack.jetbrains.com/issue/KTOR-8781))
32-32: Small grammar fix (“except the first”).-* HttpCache: all header values but first in HttpResponse.varyKeys() are ignored ([KTOR-6402](https://youtrack.jetbrains.com/issue/KTOR-6402)) +* HttpCache: all header values except the first in HttpResponse.varyKeys() are ignored ([KTOR-6402](https://youtrack.jetbrains.com/issue/KTOR-6402))
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
CHANGELOG.md(1 hunks)
🧰 Additional context used
🧠 Learnings (1)
📚 Learning: 2025-05-16T13:11:28.416Z
Learnt from: osipxd
PR: ktorio/ktor#4860
File: ktor-server/ktor-server-plugins/ktor-server-di/api/ktor-server-di.api:24-26
Timestamp: 2025-05-16T13:11:28.416Z
Learning: Binary incompatible changes (such as constructor signature changes) are acceptable in the ktor-server-di module when the version is not yet released, as confirmed by the development team.
Applied to files:
CHANGELOG.md
🪛 markdownlint-cli2 (0.17.2)
CHANGELOG.md
4-4: Heading levels should only increment by one level at a time
Expected: h2; Actual: h3
(MD001, heading-increment)
🔇 Additional comments (1)
CHANGELOG.md (1)
1-2: Looks good overall.Release header/date read clearly; structure matches prior entries.
There was a problem hiding this comment.
Actionable comments posted: 0
🧹 Nitpick comments (4)
CHANGELOG.md (4)
1-4: Resolve markdownlint MD001 (heading increment) or explicitly suppress it.The file consistently uses H1 for versions and H3 for subsections. Either keep that convention and suppress MD001 locally, or switch subsections to H2. Given the existing convention, suppression is safer.
Option A (suppress MD001 for this file):
+<!-- markdownlint-disable MD001 --> # 3.3.0 > Published 11 September 2025Option B (change subsection levels just for 3.3.0 — not recommended due to inconsistency with the rest of the file):
-### Features +## Features
5-11: Polish capitalization/wording in Features for consistency (HTTP/2, TLS, ETag, SHA‑256, Jetty 12).Minor editorial fixes to align with technical casing and improve clarity.
-* Support for server side http2 without tls (h2c) ([KTOR-4750](https://youtrack.jetbrains.com/issue/KTOR-4750)) +* Support for server‑side HTTP/2 without TLS (h2c) ([KTOR-4750](https://youtrack.jetbrains.com/issue/KTOR-4750)) -* Serve static resources with caching headers and ETag based on sha256 of content ([KTOR-6700](https://youtrack.jetbrains.com/issue/KTOR-6700)) +* Serve static resources with caching headers and ETag based on SHA‑256 of content ([KTOR-6700](https://youtrack.jetbrains.com/issue/KTOR-6700)) -* Jetty engine: Upgrade Jetty dependencies to the latest version 12 ([KTOR-6734](https://youtrack.jetbrains.com/issue/KTOR-6734)) +* Jetty engine: Upgrade Jetty dependencies to version 12.x ([KTOR-6734](https://youtrack.jetbrains.com/issue/KTOR-6734)) -* staticFiles: when directory is requested, file listing or an error message should be returned ([KTOR-8115](https://youtrack.jetbrains.com/issue/KTOR-8115)) +* staticFiles: when a directory is requested, return a file listing or an error message ([KTOR-8115](https://youtrack.jetbrains.com/issue/KTOR-8115)) -* Static content: Support a custom respond logic if the file is not found ([KTOR-8496](https://youtrack.jetbrains.com/issue/KTOR-8496)) +* Static content: Support custom response logic when the file is not found ([KTOR-8496](https://youtrack.jetbrains.com/issue/KTOR-8496))
13-21: Confirm intent of two Kotlin entries; reword one CIO item.
- Having both “Upgrade to Kotlin 2.2” and “Bump Kotlin API level to 2.2” may be intentional (compiler vs. API level), but please confirm.
- CIO item reads like a bug fix; keep under Improvements if that’s your taxonomy, otherwise consider moving.
23-33: Tighten wording and casing in Bugfixes; wrap code identifiers in backticks.Improves clarity and consistency.
-* Big number of simultaneous outbound web socket connections leads to a coroutine deadlock ([KTOR-8829](https://youtrack.jetbrains.com/issue/KTOR-8829)) +* A large number of simultaneous outbound WebSocket connections can lead to a coroutine deadlock ([KTOR-8829](https://youtrack.jetbrains.com/issue/KTOR-8829)) -* SerializationException when Application.propertyOrNull() is called with type Map<String, Any?> ([KTOR-8781](https://youtrack.jetbrains.com/issue/KTOR-8781)) +* `SerializationException` when `Application.propertyOrNull()` is called with type `Map<String, Any?>` ([KTOR-8781](https://youtrack.jetbrains.com/issue/KTOR-8781)) -* "Failed resolution of: Ljava/lang/management/ManagementFactory" on Android when JvmGcMetrics are initialized ([KTOR-8714](https://youtrack.jetbrains.com/issue/KTOR-8714)) +* "Failed resolution of: `Ljava/lang/management/ManagementFactory`" on Android when `JvmGcMetrics` are initialized ([KTOR-8714](https://youtrack.jetbrains.com/issue/KTOR-8714)) -* HttpCache: all header values but first in HttpResponse.varyKeys() are ignored ([KTOR-6402](https://youtrack.jetbrains.com/issue/KTOR-6402)) +* HttpCache: all header values except the first in `HttpResponse.varyKeys()` are ignored ([KTOR-6402](https://youtrack.jetbrains.com/issue/KTOR-6402)) -* CountedByteWriteChannel: autoFlush of the source channel doesn't make the channel auto flushing ([KTOR-8411](https://youtrack.jetbrains.com/issue/KTOR-8411)) +* `CountedByteWriteChannel`: `autoFlush` of the source channel doesn't make the channel auto‑flushing ([KTOR-8411](https://youtrack.jetbrains.com/issue/KTOR-8411))
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
CHANGELOG.md(1 hunks)
🧰 Additional context used
🧠 Learnings (2)
📚 Learning: 2025-06-09T07:08:35.085Z
Learnt from: bjhham
PR: ktorio/ktor#4916
File: ktor-server/ktor-server-core/api/ktor-server-core.api:151-151
Timestamp: 2025-06-09T07:08:35.085Z
Learning: Breaking changes are acceptable in Ktor codebase when the code hasn't been released yet, as confirmed by bjhham from the development team.
Applied to files:
CHANGELOG.md
📚 Learning: 2025-05-16T13:11:28.416Z
Learnt from: osipxd
PR: ktorio/ktor#4860
File: ktor-server/ktor-server-plugins/ktor-server-di/api/ktor-server-di.api:24-26
Timestamp: 2025-05-16T13:11:28.416Z
Learning: Binary incompatible changes (such as constructor signature changes) are acceptable in the ktor-server-di module when the version is not yet released, as confirmed by the development team.
Applied to files:
CHANGELOG.md
🪛 markdownlint-cli2 (0.17.2)
CHANGELOG.md
4-4: Heading levels should only increment by one level at a time
Expected: h2; Actual: h3
(MD001, heading-increment)
🔇 Additional comments (1)
CHANGELOG.md (1)
2-2: Double‑check release date before merge.Ensure the “Published 11 September 2025” date matches the actual tag/release date when cutting 3.3.0.
bjhham
left a comment
There was a problem hiding this comment.
Almost forgot this rather significant feature:
https://youtrack.jetbrains.com/issue/KTOR-7958/WebRTC-Client-Android-WASM
There was a problem hiding this comment.
Actionable comments posted: 0
♻️ Duplicate comments (1)
CHANGELOG.md (1)
9-9: Avoid implying default behavior; clarify it’s configurable.This was previously flagged as potentially confusing; suggest wording to make it explicit users must opt in.
-* Static content: Support a custom respond logic if the file is not found ([KTOR-8496](https://youtrack.jetbrains.com/issue/KTOR-8496)) +* Static content: Add an option to configure custom respond logic when a file is not found ([KTOR-8496](https://youtrack.jetbrains.com/issue/KTOR-8496))
🧹 Nitpick comments (7)
CHANGELOG.md (7)
4-4: Heading level vs linter (MD001).markdownlint flags "### Features" after "# 3.3.0". The whole file uses H3 under H1 for subsections, so I'd keep it for consistency and suppress MD001 for this file.
5-5: Capitalize and hyphenate protocols.Use “server-side HTTP/2 without TLS (h2c)” for correctness.
Apply:
-* Support for server side http2 without tls (h2c) ([KTOR-4750](https://youtrack.jetbrains.com/issue/KTOR-4750)) +* Support for server-side HTTP/2 without TLS (h2c) ([KTOR-4750](https://youtrack.jetbrains.com/issue/KTOR-4750))
7-7: Algorithm naming.Prefer “SHA-256” casing.
-* Serve static resources with caching headers and ETag based on sha256 of content ([KTOR-6700](https://youtrack.jetbrains.com/issue/KTOR-6700)) +* Serve static resources with caching headers and ETag based on SHA-256 of content ([KTOR-6700](https://youtrack.jetbrains.com/issue/KTOR-6700))
8-8: Tighten wording.“latest version 12” reads oddly; simplify to “Jetty 12”.
-* Jetty engine: Upgrade Jetty dependencies to the latest version 12 ([KTOR-6734](https://youtrack.jetbrains.com/issue/KTOR-6734)) +* Jetty engine: Upgrade Jetty dependencies to Jetty 12 ([KTOR-6734](https://youtrack.jetbrains.com/issue/KTOR-6734))
11-11: Clarify platforms and casing.Use “WebRTC client (Android and WASM)”.
-* WebRTC Client, Android + WASM ([KTOR-7958](https://youtrack.jetbrains.com/issue/KTOR-7958)) +* WebRTC client (Android and WASM) ([KTOR-7958](https://youtrack.jetbrains.com/issue/KTOR-7958))
25-25: Casing and terminology for WebSocket.Prefer “WebSocket” (one word) and simpler phrasing.
-* Big number of simultaneous outbound web socket connections leads to a coroutine deadlock ([KTOR-8829](https://youtrack.jetbrains.com/issue/KTOR-8829)) +* A large number of simultaneous outbound WebSocket connections leads to a coroutine deadlock ([KTOR-8829](https://youtrack.jetbrains.com/issue/KTOR-8829))
29-29: Format generic type as code.Backticks improve readability for the Map type.
-* SerializationException when Application.propertyOrNull() is called with type Map<String, Any?> ([KTOR-8781](https://youtrack.jetbrains.com/issue/KTOR-8781)) +* SerializationException when Application.propertyOrNull() is called with type `Map<String, Any?>` ([KTOR-8781](https://youtrack.jetbrains.com/issue/KTOR-8781))
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
CHANGELOG.md(1 hunks)
🧰 Additional context used
🧠 Learnings (1)
📚 Learning: 2025-05-16T13:11:28.416Z
Learnt from: osipxd
PR: ktorio/ktor#4860
File: ktor-server/ktor-server-plugins/ktor-server-di/api/ktor-server-di.api:24-26
Timestamp: 2025-05-16T13:11:28.416Z
Learning: Binary incompatible changes (such as constructor signature changes) are acceptable in the ktor-server-di module when the version is not yet released, as confirmed by the development team.
Applied to files:
CHANGELOG.md
🪛 markdownlint-cli2 (0.17.2)
CHANGELOG.md
4-4: Heading levels should only increment by one level at a time
Expected: h2; Actual: h3
(MD001, heading-increment)
🔇 Additional comments (2)
CHANGELOG.md (2)
1-34: LGTM: clear 3.3.0 entry with consistent sectioning.Structure and ordering match the existing changelog style.
19-20: Possible duplication: Kotlin version vs API level.Are both tickets required here, or should these be merged into a single bullet? If they reflect distinct work streams, consider a brief qualifier (compiler vs API level).
No description provided.