Tags

Tags give the ability to mark specific points in history as being important
  • 2.4.1

    protected
    Stable time control, Kotlin 2.3.10 support
    
    ### Suite
    
    - Removed the `@ExperimentalTime` annotation (a32c56a7)
    - Added color highlighting in IntelliJ for the 'matches' RegEx assertion (8a661b7d)
    - Clarified the documentation on `Ignored.If` and its relationship with TestBalloon (!212)
    
    ### Dependencies
    
    - Kotlin 2.3.10
    - Kotest 6.1.4
    - TestBalloon 0.8.3
    - Gradle 9.3.1
    - Arrow 2.2.1.1
    - Parameterize 0.4.1
    
  • 2.4.0

    protected Release: 2.4.0 • Conditionally ignore tests and better stack traces for fixtures
    Conditionally ignore tests and better stack traces for fixtures
    
    ### Suite
    
    - Exceptions in fixtures are wrapped by an `AssertionError` to facilitate understanding the failure path (!205)
    - Added `Ignored.If` and `OnlyIf` to conditionally ignore tests (!206)
    
    ### Gradle compatibility
    
    - Fixed a bug in `gradle.properties()` (!209)
    
    ### KotlinX.Datetime compatibility
    
    The `:compat-kotlinx-datetime` module has been deleted. All its functionality has already been moved to `:suite` using the `kotlin.time` package multiple releases ago.
    
    The module is still available on MavenCentral but will not be updated in the future.
    
  • 2.3.1

    protected
    26a12abc · merge: Kotest 6.1.3 ·
    Release: 2.3.1 • Kotlin 2.3.0, Gradle properties and longer default timeout
    Kotlin 2.3.0, Gradle properties and longer default timeout
    
    ### Suite
    
    - Increased the default test timeout from 10s to 60s (!192)
    
    ### Gradle compatibility
    
    - Added a helper to write `gradle.properties` in tests (!197)
    
    ### TestBalloon runner
    
    Added support for TestBalloon 0.8.2.
    
    Note that TestBalloon 0.8.0 had a breaking change, so this version of Prepared is not compatible with older TestBalloon versions.
    Your codebase should not be affected.
    
    ### Kotest runner
    
    Added support for Kotest 6.1.3.
    
    Note that Kotest 6.0.2 had a breaking change that was later rolled back, so this version of Prepared is not compatible with Kotest 6.0.2.
    Your codebase should not be affected.
    
    ### Dependencies
    
    - Kotlin 2.3.0
    
  • 2.3.0

    protected Release: 2.3.0 • Derived prepared values, more platforms for Ktor
    Derived prepared values, more platforms for Ktor
    
    ### Suite
    
    - Added `prepared {}.flatMap {}` (!186)
    
    ### Compat: Gradle
    
    - Added `.dir` and `.buildDir` extensions on prepared values to facilitate accessing fields of a Gradle project (!186)
    
    ### Compat: Ktor
    
    - Support all Kotlin Native tier 1 and 2 targets (!188)
    - Support WasmJS (!188)
    
  • 2.2.0

    protected Release: 2.2.0 • Improved test logging, Kotest 6 and TestBalloon 0.7.1
    Improved test logging, Kotest 6 and TestBalloon 0.7.1
    
    ### Suite
    
    - Prepared and shared values now log how long they took to initialize (!177)
    - Finalizers run even when the test is cancelled (e.g. because of a timeout, !177)
    - Added the 'log' function to display information about an intermediate value (16df295b, !180)
    
    ### Kotest runner
    
    - Kotest 6.0.4 support. Note that the Kotest configuration has changed, it now requires configuring KSP (ac719a00)
    - Added support for WASI
    - Removed workaround for Kotest#4077 (#59, !185)
    
    ### TestBallooon runner
    
    - TestBalloon 0.7.1 support
    - Force the dependency on the Kotlin-test library. This may help when TestBalloon doesn't release new versions for new versions of Kotlin (6fbce77c)
    
    ### Dependencies
    
    - Kotlin 2.2.20
    
  • 2.1.2

    protected Release: 2.1.2 • DebugProbes, TestBalloon IntelliJ plugin and JDK 11+ for all runners
    DebugProbes, TestBalloon IntelliJ plugin and JDK 11+ for all runners
    
    ### Suite
    
    - On the JVM, coroutine DebugProbes are enabled automatically to log ongoing coroutines at the end of a test (#45, #87, !172)
    - Added the `@TestEntrypoint` annotation (72ea802d)
    
    ### TestBalloon runner
    
    - The default timeout is now 10s instead of 1m, like the other runners (e17b8ad2)
    - Now compatible with JDK 11+ (previously 17+, 614e9963)
    
    ### Documentation
    
    - Added more features to the highlight section of the home page (e4bb5f82)
    - Simplified the Atrium description (bbe1c05d)
    - Added an [explanation](https://prepared.opensavvy.dev/api-docs/runners/runner-testballoon/index.html) to configure the IntelliJ TestBalloon plugin (5c8b653b)
    
  • 2.1.1

    protected Release: 2.1.1 • New documentation website
    New documentation website
    
    ### Documentation
    
    - Moved the website to https://prepared.opensavvy.dev (!164, !167)
    - Removed the mention to the Best Practices page, which doesn't exist yet (#85, !166)
    
  • 2.1.0

    protected Release: 2.1.0 • checkThrows and stable resource management
    checkThrows and stable resource management
    
    ### Suite
    
    - Warn users that exceptions are printed after finalizers (#81, !150)
    - Added `String.matches(String)` for easier regex matching (a9cb1224, !160)
    - Added `checkThrows` (5e1653e1, !160)
    
    ### Compat: Parameterize
    
    - Support Wasm (!145)
    - Support Parameterize 0.4.0 (Beware: possible binary incompatibilities, !152)
    
    ### Compat: Arrow
    
    - Support WasmJS (!159)
    - Renamed `assertRaises` and `assertRaisesWith` to `checkRaises` (d06de70f, !160)
    
    ### Compat: KotlinX.Datetime
    
    - Deprecated the module (!148)
    
    ### Compat: Filesystem
    
    - Stabilized the resource management APIs (#66, !157)
    
    ### Documentation
    
    - Added copyright headers (!146)
    
    ### Dependencies
    
    - Kotlin 2.2.0
    - Kotest 6.0.0.M4
    - TestBalloon 0.4.0
    
  • 2.0.6

    protected Release: 2.0.6 • Migration to TestBalloon, WASI support
    Migration to TestBalloon, WASI support
    
    ### Suite
    
    - Added support for Wasm WASI when running with TestBalloon (!143)
    
    ### Runner: TestBalloon
    
    - Support all OpenSavvy-supported platforms (!143)
    - All modules are now tested with this runner instead of the Kotest runner (!143)
    
    ### Compat: Arrow
    
    - Removed the `@ExperimentalTraceApi` on `assertRaisesWith` methods (!142)
    
    ### Dependencies
    
    - Kotlin 2.1.21
    - KotlinX.Coroutines 1.10.2
    - KotlinX.Datetime 0.6.2
    - Arrow 2.1.2
    - Gradle TestKit 8.11.1
    - Ktor 3.1.3
    - TestBalloon 0.3.3
    
  • 2.0.5

    protected Release: 2.0.5 • Documentation improvements around test runners
    Documentation improvements around test runners
    
    ### Documentation
    
    - Added TestBalloon to the list of available runners (807fd198, !138)
    - Added a usage example of each test runner in the documentation (0a34377b, !138)
    
  • 2.0.4

    protected Release: 2.0.4 • kotlin.time support
    Experimental support for kotlin.time
    
    ### Suite
    
    - Added '`time.now`' to get the current `kotlin.time.Instant` (#78, !135)
    - Added '`time.clock`' to get the current `kotlin.time.Clock` (#78, !135)
    - Added '`time.set`' and '`time.delayUntil`' to easily control the passage of time (#78, !135)
    
  • 2.0.3

    protected Release: 2.0.3 • TestBalloon support
    Experimental TestBalloon support
    
    ### TestBalloon Runner
    
    TestBalloon is a new test framework for Kotlin that empowers much more lightweight DSLs and promises easier updates.
    In this release, we add experimental support (!134) for the very first TestBalloon release.
    
    Once the TestBalloon IntelliJ plugin is released, TestBalloon will likely become the primary target for Prepared.
    
  • 2.0.2

    protected Release: 2.0.2 • Documentation configuration improvements
    Documentation configuration improvements
    
  • 2.0.1

    protected Release: 2.0.1 • Mention the Atrium assertion library
    Mention the Atrium library in the documentation
    
    ### Documentation
    
    - Mention the Atrium assertion library in the assertion comparison (!127, by Robert Stoll)
    
    ### Dependencies
    
    - Kotlin 2.1.20
    
  • 2.0.0

    protected Release: 2.0.0 • Arrow 2, Ktor 3, Java 11, random and context cleanup
    Arrow 2, Ktor 3, Java 11, random and context cleanup
    
    ## Breaking changes
    
    ### The CoroutineContext becomes part of the test configuration
    
    Replace:
    ```kotlin
    test("Foo", yourCoroutineContext) {
        // your test
    }
    ```
    by:
    ```kotlin
    test("Foo", Context(yourCoroutineContext)) {
        // your test
    }
    ```
    
    ### Random generation
    
    All random generation methods have been moved from package `opensavvy.prepared.suite` to `opensavvy.prepared.suite.random`.
    Users will need to update all imports to these functions, but they are otherwise unchanged (#48, !113).
    
    ## Other changes
    
    ### Runners
    
    - First prototype of the Kotlin Test Initiative runner (!114)
    
    ### Compatibility modules
    
    - Supports Ktor 3 (!109)
    
    ### Documentation
    
    - Fixed documentation of the Truthish library (!111)
    - The documentation website now contains the API reference (!119)
    - The documentation website now contains the News section
    
    ### Dependencies
    
    - Downgraded minimal JDK requirement from 21 to 11 (!123, thanks Dave A.!)
    - Kotlin 2.1.10
    - KotlinX.Coroutines 1.10.1
    - Ktor 3.0.3
    - Arrow 2.0.0
    
  • 2.0.0-rc.1

    protected Release: 2.0.0-rc.1 • Support for Java 11 in all modules
    First release candidate for Prepared 2.0
    
    ### Deployment
    
    - Support Java 11 in all modules (previously Java 21—thanks Dave A.!) (!123)
    
    ### Documentation
    
    - Added the project changelog to the documentation website (73ad1089)
    
    ### Dependencies
    
    - Kotlin 2.1.10 (143f6dd3)
    - KotlinX.Coroutines 1.10.1 (79f5e763, !122)
    - Ktor 3.0.3 (c1f2cd02, !122)
    - Arrow 2.0.0 (c1b3ebb6, !122)
    
  • 2.0.0-alpha.2

    protected Release: 2.0.0-alpha.2 • Test context configuration, documentation improvements
    Test context configuration, documentation improvements
    
    ### Breaking changes
    
    Replace:
    ```kotlin
    test("Foo", yourCoroutineContext) {
        // your test
    }
    ```
    by
    ```kotlin
    test("Foo", Context(yourCoroutineContext)) {
        // your test
    }
    ```
    
    ### Suite
    
    - Removed the 'context' parameter to 'test' and added the Context configuration (#75, !115)
    
    ### Documentation
    
    - Removed the empty 'Best practices' section (!118)
    - The documentation website now contains the reference (!119)
    
    ### Dependencies
    
    - Kotlin 2.1.0
    
  • 2.0.0-alpha.1

    protected Release: 2.0.0-alpha.1 • Ktor 3, random in its own package
    Ktor 3, random in its own package
    
    ### Breaking
    
    - All random management methods have been moved to another package. Other than that, they are unchanged (#48, !113)
    - Ktor 3 support
    
    ### Kotlin Test Initiative
    
    - First prototype of the KTI runner (!114)
    
    ### Documentation
    
    - Fixed documentation of the Truthish library (!111)
    
    ### Dependencies
    
    - Ktor 3.0.1 (!109)
    - KotlinX.Coroutines 1.9.0 (!109)
    
  • 1.5.2

    protected Release: 1.5.2 • Dependency upgrades
    Dependency upgrades
    
    ### Dependencies
    
    - Kotlin 2.0.20
    - KotlinX.Datetime 0.6.1
    - Parameterize 0.3.3
    - Gradle TestKit 8.10.1
    
  • 1.5.1

    protected Release: 1.5.1 • Minor documentation improvements
    Minor documentation improvements
    
    ### Documentation website
    
    - Fix typos (!103)
    - Add missing links (!103)