Benoît Liessens
01/03/2025, 9:12 AMgitlab-ci.main.kts
file?
ThanksCLOVIS
01/14/2025, 8:00 AMMap<String, V>
, which is often serialized as an object.
Added:
class User(
val name: String,
val grades: Map<String, Int>,
)
collection.find {
User::grades["physics"] eq 5
}
as well as:
• isMapEmpty
• isMapNotEmpty
Read more about these operators in the documentation • Full changelogCLOVIS
01/14/2025, 5:20 PMCLOVIS
01/16/2025, 8:00 AMCLOVIS
01/17/2025, 9:07 PMtest()
function, which was used to inject a coroutine context was removed, so you will need to replace:
test("Foo", yourCoroutineContext) {
// your test
}
by:
test("Foo", Context(yourCoroutineContext)) {
// your test
}
This makes the library simpler, as there is a single concept to configure tests, TestConfig
, which users can extend themselves.
Full changelog • WebsiteCLOVIS
01/17/2025, 9:08 PMCLOVIS
01/19/2025, 5:55 PMusers.find {
expr {
of(Song::creationDate) gt of(Song::editionDate)
}
}
{
"$expr": {
"$gt": [
"$creationDate",
"$editionDate"
]
}
}
CLOVIS
02/07/2025, 8:00 AM$cond
aggregation operator
users.aggregate()
.set {
Song::releaseDate set cond(
condition = of(Song::isReleased),
ifTrue = of(2025),
ifFalse = of(null)
)
}
https://opensavvy.gitlab.io/ktmongo/docs/CLOVIS
02/08/2025, 1:25 PMCLOVIS
02/17/2025, 8:00 AM$abs
, the absolute value
• $add
, the sum of two values
• $cos
, $sin
, $tan
and their variants (see changelog for exhaustive list)
https://opensavvy.gitlab.io/ktmongo/docs/news/2025/02/16/v0.10.0.htmldave08
02/17/2025, 2:48 PMCLOVIS
03/24/2025, 8:00 AMCLOVIS
04/03/2025, 7:00 AMCLOVIS
05/08/2025, 7:00 AMaltavir
05/12/2025, 8:19 AMCLOVIS
05/13/2025, 7:00 AM:clean
is called.
ChangelogCLOVIS
05/18/2025, 7:20 PMCLOVIS
05/22/2025, 9:54 AMCLOVIS
06/02/2025, 8:44 AMval FooTest by preparedSuite {
test("Test 1") {
check("Hello world" == "Hello world")
}
suite("A group of tests") {
test("Test 2") { /* … */ }
test("Test 3") { /* … */ }
}
}
The TestBalloon team is planning on creating an IntelliJ plugin that will also work with Prepared.
In this release, we also add experimental support for kotlin.time
:
test("Set the initial time of a test") {
time.set("2024-12-31T05:00:00Z")
delay(4.hours)
println(time.now) // 2024-12-31T09:00:00Z
}
As always, more info is available in the news: https://opensavvy.gitlab.io/groundwork/prepared/docs/newsCLOVIS
06/09/2025, 7:00 AMequals
/`hashCode` /`toString` to`Parameters` for easier debugging
• And more dependency upgrades
Full changelogCLOVIS
06/27/2025, 8:56 AMShubham Singh
07/03/2025, 4:09 PMCLOVIS
07/10/2025, 5:32 PMCLOVIS
07/13/2025, 2:59 PMsrc/jsMain/resources
files into your library, so your users can access them within their project.
This version contains:
• Support for Kotlin 2.2.0
• A bug fix for Native targets (thanks @altavir for the report!)
Full changelogCLOVIS
07/25/2025, 8:14 PMCLOVIS
07/25/2025, 8:16 PM@originjs/vite-plugin-commonjs
as soon as they release a new version. See #57 for tracking.CLOVIS
07/28/2025, 3:24 PM./gradlew clean; ./gradlew check; ./gradlew check --no-configuration-cache --rerun-tasks
• clean
to ensure there aren't files left over
• check
to ensure everything needed is available locally (all dependencies are downloaded, etc)
• --no-configuration-cache
to ensure a fair execution order and disable intra-project parallelism
• --rerun-tasks
to disable incremental compilation, the build cache, up-to-date checks, etc
• Only the last invokation is timed, using Gradle's build timer
So: the test measures how long tests execute, but also how long it takes to compile, etc. The repository compiles to nearly all Kotlin targets using cross-compilation, so compilation time is quite a lot.
Kotest: 2c899266a67a1c605e97d615afa353246859e261
• 2min 2s
TestBalloon: 3dc162f411167345de9f38bd3c4cbb46569afa54
• 1min 2s
That's a pretty big difference if you ask me!CLOVIS
07/30/2025, 7:00 AMObjectId
and Timestamp
• `BsonType.Datetime`is automatically interpreted as kotlin.time.Instant
• Added the aggregation operators $switch
, $type
, $isNumber
,…
• Added the filter operators $bitsAllClear
,…
• Added the options writeConcern
and readPreference
• Added a new documentation section on aggregation support
Full changelogCLOVIS
07/31/2025, 7:00 AMString.matches(String)
to simplify Regex-based assertions
• Added checkThrows
for easy exception-based tests
• Deprecated the KotlinX.Datetime compatibility module (all related functionality has been merged into the main module using kotlin.time
)
• Stabilized the resource management APIs
• Kotest 6.0.0.M4 and TestBalloon 0.4.0 support
Full changelogAlbertas
08/01/2025, 8:50 AM_id
feels incorrect to me, so I prefer annotating it with @SerialName("_id")
instead, along with other properties.
• is the Parent::child / Child::property
syntax the only way to refer to nested properties? Using the division operator feels very hacky, how difficult would it be to implement nesting like Parent::child { Child::property eq ??? }