Starter project to create a simple RESTful web service in Kotlin

Overview

Build

Modified:

  • Adding Koin for DI
  • Using JWT for authentication and authorization
  • Dropping proprietary FlyAway tool
  • Single Page Application support

Starter project to create a simple RESTful web service in Kotlin

Updated for Kotlin 1.5.10 and Ktor 1.6.0

Companion article: https://ryanharrison.co.uk/2018/04/14/kotlin-ktor-exposed-starter.html

Getting Started

  1. Clone the repo.
  2. In the root directory execute ./gradlew run
  3. By default, the server will start on port 8080. See below Routes section for more information.

Libraries used:

The starter project creates a new in-memory H2 database with one table for Widget instances.

As ktor is async and based on coroutines, standard blocking JDBC may cause performance issues when used directly on the main thread pool (as threads must be reused for other requests). Therefore, another dedicated thread pool is created for all database queries, alongside connection pooling with HikariCP.

Routes:

GET /widget --> get all widgets in the database

GET /widget/{id} --> get one widget instance by id (integer)

POST /widget --> add a new widget to the database by providing a JSON object (converted to a NewWidget instance). e.g -

{
    "name": "new widget",
    "quantity": 64
}

returns

{
    "id": 4,
    "name": "new widget",
    "quantity": 64,
    "dateCreated": 1519926898
}

PUT /widget --> update an existing widgets name or quantity. Pass in the id in the JSON request to determine which record to update

DELETE /widget/{id} --> delete the widget with the specified id

Notifications (WebSocket)

All updates (creates, updates and deletes) to Widget instances are served as notifications through a WebSocket endpoint:

WS /updates --> returns Notification instances containing the change type, id and entity (if applicable) e.g:

{ 
    "type": "CREATE", 
    "id": 12, 
    "entity": { 
      "id": 12, 
      "name": "widget1", 
      "quantity": 5, 
      "dateUpdated": 1533583858169 
    }
}

Testing

The sample Widget service and corresponding endpoints are also tested with 100% coverage. Upon startup of the main JUnit suite (via the test source folder), the server is started ready for testing and is torn down after all tests are run.

  • Unit testing of services with AssertJ - DAO and business logic
  • Integration testing of endpoints using running server with Rest Assured - routing tests/status codes/response structure
Comments
  • Bump plugin.serialization from 1.5.10 to 1.7.22

    Bump plugin.serialization from 1.5.10 to 1.7.22

    Bumps plugin.serialization from 1.5.10 to 1.7.22.

    Release notes

    Sourced from plugin.serialization's releases.

    Kotlin 1.7.22

    This is a technical release. It doesn't contain any fixes that aren't included in Kotlin 1.7.21. Version 1.7.22 of the Kotlin plugin will not be available for downloading or installing in any IDEs.

    Checksums

    File Sha256
    kotlin-compiler-1.7.22.zip 9db4b467743c1aea8a21c08e1c286bc2aeb93f14c7ba2037dbd8f48adc357d83
    kotlin-native-linux-x86_64-1.7.22.tar.gz dd004d520056aba67f2955a3bec5af75f8f2d78b179d4b5f733a77e3eef57aff
    kotlin-native-macos-x86_64-1.7.22.tar.gz 153fa411fa8c993ce2635e2504e9b102cb05362cc794b66ef9def26a78b427b5
    kotlin-native-macos-aarch64-1.7.22.tar.gz 4ffcd76c77cc824eff8addd5e2a73da4f3bbd3584fa9ef282b3f669c45426b1e
    kotlin-native-windows-x86_64-1.7.22.zip 3bccd23479848ec61c56ed5760010456d17acbe88a00a1f10fb38eae256f2e92

    Kotlin 1.7.21

    Changelog

    Compiler

    • KT-54463 Delegating to a field with a platform type causes java.lang.NoSuchFieldError: value$delegate
    • KT-54509 Ir Interpreter: unable to evaluate string concatenation with "this" as argument
    • KT-54004 Builder type inference does not work correctly with variable assignment and breaks run-time
    • KT-54393 Change in behavior from 1.7.10 to 1.7.20 for java field override.
    • KT-54615 JVM: Internal error in file lowering: java.lang.AssertionError: Error occurred while optimizing an expression
    • KT-54581 JVM: "VerifyError: Bad type on operand stack" with generic inline function and when inside try-catch block
    • KT-53146 JVM IR: unnecessary checkcast of null leads to NoClassDefFoundError if the type isn't available at runtime
    • KT-54600 NPE on passing nullable Kotlin lambda as Java's generic SAM interface with super type bound
    • KT-54707 "VerifyError: Bad type on operand stack" in inline call chain on a nullable array value
    • KT-54650 Binary incompatible ABI change in Kotlin 1.7.20
    • KT-54802 "VerifyError: Bad type on operand stack" for inline functions on arrays

    Native. Runtime. Memory

    • KT-54498 Deprecation message of 'FreezingIsDeprecated' is not really helpful

    Tools. Gradle. Multiplatform

    • KT-54387 Remove MPP alpha stability warning
    • KT-48436 False positive "The Kotlin source set androidAndroidTestRelease was configured but not added to any Kotlin compilation"

    Tools. JPS

    • KT-45474 False positive NO_ELSE_IN_WHEN on sealed class with incremental compilation

    Checksums

    File Sha256

    ... (truncated)

    Changelog

    Sourced from plugin.serialization's changelog.

    1.7.21

    Compiler

    • KT-54463 Delegating to a field with a platform type causes java.lang.NoSuchFieldError: value$delegate
    • KT-54509 Ir Interpreter: unable to evaluate string concatenation with "this" as argument
    • KT-54004 Builder type inference does not work correctly with variable assignment and breaks run-time
    • KT-54393 Change in behavior from 1.7.10 to 1.7.20 for java field override.
    • KT-54615 JVM: Internal error in file lowering: java.lang.AssertionError: Error occurred while optimizing an expression
    • KT-54581 JVM: "VerifyError: Bad type on operand stack" with generic inline function and when inside try-catch block
    • KT-53146 JVM IR: unnecessary checkcast of null leads to NoClassDefFoundError if the type isn't available at runtime
    • KT-54600 NPE on passing nullable Kotlin lambda as Java's generic SAM interface with super type bound
    • KT-54707 "VerifyError: Bad type on operand stack" in inline call chain on a nullable array value
    • KT-54650 Binary incompatible ABI change in Kotlin 1.7.20
    • KT-54802 "VerifyError: Bad type on operand stack" for inline functions on arrays

    Native. Runtime. Memory

    • KT-54498 Deprecation message of 'FreezingIsDeprecated' is not really helpful

    Tools. Gradle. Multiplatform

    • KT-54387 Remove MPP alpha stability warning
    • KT-48436 False positive "The Kotlin source set androidAndroidTestRelease was configured but not added to any Kotlin compilation"

    Tools. JPS

    • KT-45474 False positive NO_ELSE_IN_WHEN on sealed class with incremental compilation

    1.7.20

    Analysis API

    • KT-52667 FIR IDE: fun interfaces (SAM interfaces) are not properly resolved
    • KT-52136 FIR: Implicit type declaration from the other module cannot be used for overloading

    Analysis API. FE1.0

    • KT-51962 Analysis API: Finish Analysis API for FE1.0

    Analysis API. FIR

    • KT-52779 FIR IDE: Import Optimizer cannot handle generic type qualifiers
    • KT-50236 Fix OOB modification trackers for non-Kotlin code
    • KT-51240 Analysis API: KtAnalysisSession for a specific module cannot create a symbol for PSI that cannot be seen from that module.
    • KT-50868 Analysis API: decompiled type aliases are not resolved

    Compiler

    ... (truncated)

    Commits
    • be3c5a5 Instruction for building 1.7.21 release
    • 80eb82a Instructions for building 1.7.20 release
    • cb51803 Scripts for building Kotlin repository
    • 7784d10 Change bootstrap to 1.7.21-release-254
    • e7f77e9 Keep track of array types in OptimizationBasicInterpreter
    • 7deaab9 Edit changelog for 1.7.21
    • 0b49dc2 Fix binary compatibility for inlined local delegated properies
    • 90b3e21 Advance bootstrap to 1.7.21
    • c55a197 Edit changelog for 1.7.21
    • b1b18c2 Add regression test for KT-54707
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Bump plugin.serialization from 1.5.10 to 1.7.21

    Bump plugin.serialization from 1.5.10 to 1.7.21

    Bumps plugin.serialization from 1.5.10 to 1.7.21.

    Release notes

    Sourced from plugin.serialization's releases.

    Kotlin 1.7.21

    Changelog

    Compiler

    • KT-54463 Delegating to a field with a platform type causes java.lang.NoSuchFieldError: value$delegate
    • KT-54509 Ir Interpreter: unable to evaluate string concatenation with "this" as argument
    • KT-54004 Builder type inference does not work correctly with variable assignment and breaks run-time
    • KT-54393 Change in behavior from 1.7.10 to 1.7.20 for java field override.
    • KT-54615 JVM: Internal error in file lowering: java.lang.AssertionError: Error occurred while optimizing an expression
    • KT-54581 JVM: "VerifyError: Bad type on operand stack" with generic inline function and when inside try-catch block
    • KT-53146 JVM IR: unnecessary checkcast of null leads to NoClassDefFoundError if the type isn't available at runtime
    • KT-54600 NPE on passing nullable Kotlin lambda as Java's generic SAM interface with super type bound
    • KT-54707 "VerifyError: Bad type on operand stack" in inline call chain on a nullable array value
    • KT-54650 Binary incompatible ABI change in Kotlin 1.7.20
    • KT-54802 "VerifyError: Bad type on operand stack" for inline functions on arrays

    Native. Runtime. Memory

    • KT-54498 Deprecation message of 'FreezingIsDeprecated' is not really helpful

    Tools. Gradle. Multiplatform

    • KT-54387 Remove MPP alpha stability warning
    • KT-48436 False positive "The Kotlin source set androidAndroidTestRelease was configured but not added to any Kotlin compilation"

    Tools. JPS

    • KT-45474 False positive NO_ELSE_IN_WHEN on sealed class with incremental compilation

    Checksums

    File Sha256
    kotlin-compiler-1.7.21.zip 8412b31b808755f0c0d336dbb8c8443fa239bf32ddb3cdb81b305b25f0ad279e
    kotlin-native-linux-x86_64-1.7.21.tar.gz 0f9eb04a5ee0665a195c1f1093c778f5696216660feb638b29f923f586093dd0
    kotlin-native-macos-x86_64-1.7.21.tar.gz 9530cadcf05cfd6111ef35725115009283b1a0292427261b78d43853c35ccd44
    kotlin-native-macos-aarch64-1.7.21.tar.gz f75e1a68e193b0cd9df56f15166fb4e721641b408065531b620cf204d78922e5
    kotlin-native-windows-x86_64-1.7.21.zip 5e76301f6c386ea83dc668e171887244908c18da636f7237d5371b56d8fec8da

    Kotlin 1.7.20

    1.7.20

    Analysis API

    • KT-52667 FIR IDE: fun interfaces (SAM interfaces) are not properly resolved
    • KT-52136 FIR: Implicit type declaration from the other module cannot be used for overloading

    Analysis API. FE1.0

    ... (truncated)

    Changelog

    Sourced from plugin.serialization's changelog.

    1.7.21

    Compiler

    • KT-54463 Delegating to a field with a platform type causes java.lang.NoSuchFieldError: value$delegate
    • KT-54509 Ir Interpreter: unable to evaluate string concatenation with "this" as argument
    • KT-54004 Builder type inference does not work correctly with variable assignment and breaks run-time
    • KT-54393 Change in behavior from 1.7.10 to 1.7.20 for java field override.
    • KT-54615 JVM: Internal error in file lowering: java.lang.AssertionError: Error occurred while optimizing an expression
    • KT-54581 JVM: "VerifyError: Bad type on operand stack" with generic inline function and when inside try-catch block
    • KT-53146 JVM IR: unnecessary checkcast of null leads to NoClassDefFoundError if the type isn't available at runtime
    • KT-54600 NPE on passing nullable Kotlin lambda as Java's generic SAM interface with super type bound
    • KT-54707 "VerifyError: Bad type on operand stack" in inline call chain on a nullable array value
    • KT-54650 Binary incompatible ABI change in Kotlin 1.7.20
    • KT-54802 "VerifyError: Bad type on operand stack" for inline functions on arrays

    Native. Runtime. Memory

    • KT-54498 Deprecation message of 'FreezingIsDeprecated' is not really helpful

    Tools. Gradle. Multiplatform

    • KT-54387 Remove MPP alpha stability warning
    • KT-48436 False positive "The Kotlin source set androidAndroidTestRelease was configured but not added to any Kotlin compilation"

    Tools. JPS

    • KT-45474 False positive NO_ELSE_IN_WHEN on sealed class with incremental compilation

    1.7.20

    Analysis API

    • KT-52667 FIR IDE: fun interfaces (SAM interfaces) are not properly resolved
    • KT-52136 FIR: Implicit type declaration from the other module cannot be used for overloading

    Analysis API. FE1.0

    • KT-51962 Analysis API: Finish Analysis API for FE1.0

    Analysis API. FIR

    • KT-52779 FIR IDE: Import Optimizer cannot handle generic type qualifiers
    • KT-50236 Fix OOB modification trackers for non-Kotlin code
    • KT-51240 Analysis API: KtAnalysisSession for a specific module cannot create a symbol for PSI that cannot be seen from that module.
    • KT-50868 Analysis API: decompiled type aliases are not resolved

    Compiler

    ... (truncated)

    Commits
    • e7f77e9 Keep track of array types in OptimizationBasicInterpreter
    • 7deaab9 Edit changelog for 1.7.21
    • 0b49dc2 Fix binary compatibility for inlined local delegated properies
    • 90b3e21 Advance bootstrap to 1.7.21
    • c55a197 Edit changelog for 1.7.21
    • b1b18c2 Add regression test for KT-54707
    • 7a25213 KT-53465, KT-53677 Get rid of unnecessary checkcasts to array of reified type
    • 2587f3e Edit changelog for 1.7.21
    • 62dfe43 Add changelog for 1.7.21
    • 34ae02b K1: add more tests for BI assignment checker, fix corner cases
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Bump plugin.serialization from 1.5.10 to 1.7.20

    Bump plugin.serialization from 1.5.10 to 1.7.20

    Bumps plugin.serialization from 1.5.10 to 1.7.20.

    Release notes

    Sourced from plugin.serialization's releases.

    Kotlin 1.7.20-RC

    Changelog

    Compiler

    • KT-53739 Builder inference, extension hides members
    • KT-53733 Kotlin/Native: update source documentation for the new default memory manager
    • KT-53667 Compiler crashes on attempt to alloc a string on the stack in new MM
    • KT-53480 Internal error in file lowering: java.lang.ClassNotFoundException: com.android.systemui.R$string
    • KT-52843 Compose: NPE at Parameters.getParameterByDeclarationSlot if inline function with default arguments takes a lambda which captures value class represented by Long
    • KT-51868 JVM / IR: Inconsistent behaviour between lambda expression and SAM interface conversion for the same interface
    • KT-53475 Kotlin/Native for iOS: "IllegalArgumentException: Sequence has more than one element"

    Libraries

    • KT-52910 Provide visit extension functions for java.nio.file.Path
    • KT-52909 Implement a walk extension function for java.nio.file.Path

    Native

    • KT-53346 MPP project with kotlinx-serialization-json:1.4.0-RC is not built

    Native. C and ObjC Import

    Native. Runtime

    • KT-53534 Kotlin/Native: -Xruntime-logs=gc=info flag doesn't work with compiler caches in 1.7.20-beta

    Tools. Gradle

    • KT-53670 Gradle: Cyclic dependency between kotlin-gradle-plugin-idea-1.7.20-Beta and kotlin-gradle-plugin-idea-proto-1.7.20-Beta
    • KT-53615 Gradle: Fix deprecation warnings in CleanableStoreImpl
    • KT-53118 Fully up-to-date builds are slower with Kotlin 1.7.0

    Tools. Gradle. Cocoapods

    • KT-53337 Add warning about future changing default linking type of framework provided via cocoapods plugin

    Tools. Incremental Compile

    • KT-53266 Increment Compilation: "IllegalStateException: The following LookupSymbols are not yet converted to ProgramSymbols" when changing companion object constant field
    • KT-53231 New IC reports build failures for missing classpath snapshots

    Tools. Kapt

    • KT-52761 Kotlin 1.7.0 breaks kapt processing for protobuf generated java sources

    Checksums

    ... (truncated)

    Changelog

    Sourced from plugin.serialization's changelog.

    1.7.0

    Analysis API. FIR

    • KT-50864 Analysis API: ISE: "KtCallElement should always resolve to a KtCallInfo" is thrown on call resolution inside plusAssign target
    • KT-50252 Analysis API: Implement FirModuleResolveStates for libraries
    • KT-50862 Analsysis API: do not create use site subsitution override symbols

    Analysis API. FIR Low Level API

    • KT-50729 Type bound is not fully resolved
    • KT-50728 Lazy resolve of extension function from 'kotlin' package breaks over unresolved type
    • KT-50271 Analysis API: get rid of using FirRefWithValidityCheck

    Backend. Native. Debug

    • KT-50558 K/N Debugger. Error is not displayed in variables view for catch block

    Compiler

    New Features

    • KT-26245 Add ability to specify generic type parameters as not-null
    • KT-45165 Remove JVM target version 1.6
    • KT-27435 Allow implementation by delegation to inlined value of inline class
    • KT-47939 Support method references to functional interface constructors
    • KT-50775 Support IR partial linkage in Kotlin/Native (disabled by default)
    • KT-51737 Kotlin/Native: Remove unnecessary safepoints on watchosArm32 and iosArm32 targets
    • KT-44249 NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER with type usage in higher order function

    Performance Improvements

    • KT-48233 Switching to JVM IR backend increases compilation time by more than 15%
    • KT-51699 Kotlin/Native: runtime has no LTO in debug binaries
    • KT-34466 Use optimized switch over enum only when all entries are constant enum entry expressions
    • KT-50861 FIR: Combination of array set convention and plusAssign works exponentially
    • KT-47171 For loop doesn't avoid boxing with value class iterators (JVM)
    • KT-29199 'next' calls for iterators of merged primitive progressive values are not specialized
    • KT-50585 JVM IR: Array constructor loop should use IINC
    • KT-22429 Optimize 'for' loop code generation for reversed arrays
    • KT-50074 Performance regression in String-based 'when' with single equality clause
    • KT-22334 Compiler backend could generate smaller code for loops using range such as integer..array.size -1
    • KT-35272 Unnecessary null check on unsafe cast after not-null assertion operator
    • KT-27427 Optimize nullable check introduced with 'as' cast

    Fixes

    • KT-46762 Finalize support for jspecify
    • KT-51499 @​file:OptIn doesn't cover override methods
    • KT-52037 FIR: add error in 1.7.0 branch if run with non-compatible plugins

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Bump plugin.serialization from 1.5.10 to 1.7.10

    Bump plugin.serialization from 1.5.10 to 1.7.10

    Bumps plugin.serialization from 1.5.10 to 1.7.10.

    Release notes

    Sourced from plugin.serialization's releases.

    Kotlin 1.7.0

    Changelog

    Analysis API. FIR

    • KT-50864 Analysis API: ISE: "KtCallElement should always resolve to a KtCallInfo" is thrown on call resolution inside plusAssign target
    • KT-50252 Analysis API: Implement FirModuleResolveStates for libraries
    • KT-50862 Analsysis API: do not create use site subsitution override symbols

    Analysis API. FIR Low Level API

    • KT-50729 Type bound is not fully resolved
    • KT-50728 Lazy resolve of extension function from 'kotlin' package breaks over unresolved type
    • KT-50271 Analysis API: get rid of using FirRefWithValidityCheck

    Backend. Native. Debug

    • KT-50558 K/N Debugger. Error is not displayed in variables view for catch block

    Compiler

    New Features

    • KT-26245 Add ability to specify generic type parameters as not-null
    • KT-45165 Remove JVM target version 1.6
    • KT-27435 Allow implementation by delegation to inlined value of inline class
    • KT-47939 Support method references to functional interface constructors
    • KT-50775 Support IR partial linkage in Kotlin/Native (disabled by default)
    • KT-51737 Kotlin/Native: Remove unnecessary safepoints on watchosArm32 and iosArm32 targets
    • KT-44249 NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER with type usage in higher order function

    Performance Improvements

    • KT-48233 Switching to JVM IR backend increases compilation time by more than 15%
    • KT-51699 Kotlin/Native: runtime has no LTO in debug binaries
    • KT-34466 Use optimized switch over enum only when all entries are constant enum entry expressions
    • KT-50861 FIR: Combination of array set convention and plusAssign works exponentially
    • KT-47171 For loop doesn't avoid boxing with value class iterators (JVM)
    • KT-29199 'next' calls for iterators of merged primitive progressive values are not specialized
    • KT-50585 JVM IR: Array constructor loop should use IINC
    • KT-22429 Optimize 'for' loop code generation for reversed arrays
    • KT-50074 Performance regression in String-based 'when' with single equality clause
    • KT-22334 Compiler backend could generate smaller code for loops using range such as integer..array.size -1
    • KT-35272 Unnecessary null check on unsafe cast after not-null assertion operator
    • KT-27427 Optimize nullable check introduced with 'as' cast

    Fixes

    • KT-46762 Finalize support for jspecify
    • KT-51499 @file:OptIn doesn't cover override methods

    ... (truncated)

    Changelog

    Sourced from plugin.serialization's changelog.

    1.7.0

    Analysis API. FIR

    • KT-50864 Analysis API: ISE: "KtCallElement should always resolve to a KtCallInfo" is thrown on call resolution inside plusAssign target
    • KT-50252 Analysis API: Implement FirModuleResolveStates for libraries
    • KT-50862 Analsysis API: do not create use site subsitution override symbols

    Analysis API. FIR Low Level API

    • KT-50729 Type bound is not fully resolved
    • KT-50728 Lazy resolve of extension function from 'kotlin' package breaks over unresolved type
    • KT-50271 Analysis API: get rid of using FirRefWithValidityCheck

    Backend. Native. Debug

    • KT-50558 K/N Debugger. Error is not displayed in variables view for catch block

    Compiler

    New Features

    • KT-26245 Add ability to specify generic type parameters as not-null
    • KT-45165 Remove JVM target version 1.6
    • KT-27435 Allow implementation by delegation to inlined value of inline class
    • KT-47939 Support method references to functional interface constructors
    • KT-50775 Support IR partial linkage in Kotlin/Native (disabled by default)
    • KT-51737 Kotlin/Native: Remove unnecessary safepoints on watchosArm32 and iosArm32 targets
    • KT-44249 NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER with type usage in higher order function

    Performance Improvements

    • KT-48233 Switching to JVM IR backend increases compilation time by more than 15%
    • KT-51699 Kotlin/Native: runtime has no LTO in debug binaries
    • KT-34466 Use optimized switch over enum only when all entries are constant enum entry expressions
    • KT-50861 FIR: Combination of array set convention and plusAssign works exponentially
    • KT-47171 For loop doesn't avoid boxing with value class iterators (JVM)
    • KT-29199 'next' calls for iterators of merged primitive progressive values are not specialized
    • KT-50585 JVM IR: Array constructor loop should use IINC
    • KT-22429 Optimize 'for' loop code generation for reversed arrays
    • KT-50074 Performance regression in String-based 'when' with single equality clause
    • KT-22334 Compiler backend could generate smaller code for loops using range such as integer..array.size -1
    • KT-35272 Unnecessary null check on unsafe cast after not-null assertion operator
    • KT-27427 Optimize nullable check introduced with 'as' cast

    Fixes

    • KT-46762 Finalize support for jspecify
    • KT-51499 @​file:OptIn doesn't cover override methods
    • KT-52037 FIR: add error in 1.7.0 branch if run with non-compatible plugins

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Bump plugin.serialization from 1.5.10 to 1.7.0

    Bump plugin.serialization from 1.5.10 to 1.7.0

    Bumps plugin.serialization from 1.5.10 to 1.7.0.

    Release notes

    Sourced from plugin.serialization's releases.

    Kotlin 1.7.0-RC2

    Changelog

    Compiler

    • KT-52311 java.lang.VerifyError: Bad type on operand stack
    • KT-52503 New green code appeared at the callable reference resolution

    JavaScript

    • KT-52518 Kotlin/JS IR: project with 1.6.21 fails to consume library built with 1.7.0-RC: ISE "Unexpected IrType kind: KIND_NOT_SET" at IrDeclarationDeserializer.deserializeIrTypeData()

    Tools. CLI

    • KT-52409 Report error when use-k2 with Multiplatform

    Tools. Gradle

    • KT-52509 Main variant published to Gradle plugin portal uses unshadowed artifact
    • KT-52392 Gradle: 1.7.0 does not support custom gradle build configuration on Windows OS

    Tools. Kapt

    • KT-52284 FIR: add error in 1.7.0 branch if run with Kapt

    Checksums

    File Sha256
    kotlin-compiler-1.7.0-RC2.zip 264b86c9d91d15a6eba0b720d759861adaab886ce37ae2dc8081af634eefba71
    kotlin-native-linux-x86_64-1.7.0-RC2.tar.gz 650812727f1ce1c585d109e9435872ffa89316714ecde472cdf0927d5efc4a1c
    kotlin-native-macos-x86_64-1.7.0-RC2.tar.gz c4bfc7332ccd2ea952a201f489d1ff57fa0b2ae93dccac5a2459c545e5655cf3
    kotlin-native-macos-aarch64-1.7.0-RC2.tar.gz 753e0ea090bc190eb63f6caf4bacf69817253aaa0d2f4eb6e7e79267a3041cb6
    kotlin-native-windows-x86_64-1.7.0-RC2.zip 58c824f3e0fdbd358584b87745d918518513ab83b5e0c67ca072f5402477946e

    Kotlin 1.7.0-RC

    Changelog

    Compiler

    • KT-51640 FIR: remove warning about "far from being production ready"
    • KT-52404 Prolong deprecation cycle for errors at contravariant usages of star projected argument from Java
    • KT-51844 New errors in overload resolution involving vararg extension methods
    • KT-50877 Inconsistent flexible type
    • KT-51988 "NPE: getContainingDeclaration…lDeclarationType.REGULAR) must not be null" when using @BuilderInference with multiple type arguments
    • KT-51925 Native: "IllegalStateException: Symbol for kotlinx.cinterop/CStructVar|null[0] is unbound" caused by inline function
    • KT-52035 FIR: add error in 1.7.0 branch if run on JS / Native configuration
    • KT-52037 FIR: add error in 1.7.0 branch if run with non-compatible plugins

    JavaScript

    ... (truncated)

    Changelog

    Sourced from plugin.serialization's changelog.

    1.6.20

    Compiler

    New Features

    • KT-48217 Add an annotation JvmDefaultWithCompatibility to allow generating DefaultImpls classes if -Xjvm-default=all option is used
    • KT-49929 [FIR] Support programmatic creation of annotation class instances
    • KT-49276 Warn about potential overload resolution change if Range/Progression starts implementing Collection
    • KT-47902 Do not propagate method deprecation through overrides
    • KT-49857 Require Xcode 13 for building Kotlin/Native compiler
    • KT-47701 Support instantiation of annotation classes on Native
    • KT-46085 Support experimental parallel compilation of a single module in the JVM backend
    • KT-46603 Generate SAM-conversions to Java interfaces extending 'java.io.Serializable' as serializable using java.lang.invoke.LambdaMetafactory

    Performance Improvements

    • KT-50156 HMPP: Slow frontend/ide performance in OKIO (ExpectActualDeclarationChecker)
    • KT-50073 Performance regression in adapted function references
    • KT-50076 Performance regression in super call to an interface member in $DefaultImpls
    • KT-50080 Performance regression in string template with generic property with primitive upper bound
    • KT-50084 Performance regression in concatenation with 'String?'
    • KT-50078 Performance regression in for-in-array loop
    • KT-50039 Performance regression in inner class constructor call with default parameters
    • KT-48784 An anonymous class has fields for variables that are only used in the constructor
    • KT-42010 Generate IINC instruction for postfix increment in JVM_IR
    • KT-48433 JVM_IR don't generate null check on 'this$0' parameter of inner class constructor
    • KT-48435 JVM_IR ConstForLoopBenchmark performance regression
    • KT-48507 JVM_IR ForLoopBenchmark regressions
    • KT-48640 Performance regression in 'longDownToLoop' benchmarks
    • KT-29822 Generate specialized bytecode for loops withIndex over unsigned arrays
    • KT-48669 Generate optimizable counter loop for loops over indices of unsigned arrays
    • KT-49444 Possible performance degradation with UInt downTo loop
    • KT-48944 Possible performance regression with comparison of local KFunctions
    • KT-17111 Eliminate redundant store/load instructions when the value stored is simple
    • KT-36837 Generate more compact code for for-in-range loop in JVM_IR
    • KT-48947 JVM / IR Possible performance regression with string templates
    • KT-48931 JVM / IR: Performance degradation with string concatenation
    • KT-36654 Generate more compact bytecode for safe call in JVM_IR

    Fixes

    • KT-24643 Prohibit using a type parameter declared for an extension property inside delegate
    • KT-51747 Make KtCallableDeclaration.getContextReceivers default to preserve compatibility
    • KT-49658 NI: False negative TYPE_MISMATCH on nullable type with when
    • KT-43493 NI: @​BuilderInference prevents compilation error of "Operator '==' cannot be applied to 'Long' and 'Int'"
    • KT-51649 Kotlin/Native: reduce binary size of watchosArm32 and iosArm32 targets by limiting inlining of runtime functions
    • KT-48626 JVM IR: incorrect behavior for captured for-loop parameter since 1.6.20-dev-723
    • KT-51036 JVM / IR: "NullPointerException: Parameter specified as non-null is null" with synchronized and companion object
    • KT-51471 Native: incorrect debug information when inheriting suspend fun invoke implementation

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Bump arrow-core from 1.0.0 to 1.1.2

    Bump arrow-core from 1.0.0 to 1.1.2

    Bumps arrow-core from 1.0.0 to 1.1.2.

    Release notes

    Sourced from arrow-core's releases.

    1.0.1

    What's Changed

    New Contributors

    Full Changelog: https://github.com/arrow-kt/arrow/compare/1.0.0...1.0.1

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Bump arrow-core from 1.0.0 to 1.1.0

    Bump arrow-core from 1.0.0 to 1.1.0

    Bumps arrow-core from 1.0.0 to 1.1.0.

    Release notes

    Sourced from arrow-core's releases.

    1.0.1

    What's Changed

    New Contributors

    Full Changelog: https://github.com/arrow-kt/arrow/compare/1.0.0...1.0.1

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Bump plugin.serialization from 1.5.10 to 1.6.21

    Bump plugin.serialization from 1.5.10 to 1.6.21

    Bumps plugin.serialization from 1.5.10 to 1.6.21.

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Bump plugin.serialization from 1.5.10 to 1.6.20

    Bump plugin.serialization from 1.5.10 to 1.6.20

    Bumps plugin.serialization from 1.5.10 to 1.6.20.

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Bump plugin.serialization from 1.5.10 to 1.6.10

    Bump plugin.serialization from 1.5.10 to 1.6.10

    Bumps plugin.serialization from 1.5.10 to 1.6.10.

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Bump plugin.serialization from 1.5.10 to 1.6.0

    Bump plugin.serialization from 1.5.10 to 1.6.0

    Bumps plugin.serialization from 1.5.10 to 1.6.0.

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Bump plugin.serialization from 1.5.10 to 1.8.0

    Bump plugin.serialization from 1.5.10 to 1.8.0

    Bumps plugin.serialization from 1.5.10 to 1.8.0.

    Release notes

    Sourced from plugin.serialization's releases.

    Kotlin 1.8.0

    Changelog

    Analysis API

    • KT-50255 Analysis API: Implement standalone mode for the Analysis API

    Analysis API. FIR

    • KT-54292 Symbol Light classes: implement PsiVariable.computeConstantValue for light field
    • KT-54293 Analysis API: fix constructor symbol creation when its accessed via type alias

    Android

    • KT-53342 TCS: New AndroidSourceSet layout for multiplatform
    • KT-53013 Increase AGP compile version in KGP to 4.1.3
    • KT-54013 Report error when using deprecated Kotlin Android Extensions compiler plugin
    • KT-53709 MPP, Android SSL2: Conflicting warnings for androidTest/kotlin source set folder

    Backend. Native. Debug

    • KT-53561 Invalid LLVM module: "inlinable function call in a function with debug info must have a !dbg location"

    Compiler

    New Features

    • KT-52817 Add @JvmSerializableLambda annotation to keep old behavior of non-invokedynamic lambdas
    • KT-54460 Implementation of non-local break and continue
    • KT-53916 Support Xcode 14 and new Objective-C frameworks in Kotlin/Native compiler
    • KT-32208 Generate method annotations into bytecode for suspend lambdas (on invokeSuspend)
    • KT-53438 Introduce a way to get SourceDebugExtension attribute value via JVMTI for profiler and coverage

    Performance Improvements

    • KT-53347 Get rid of excess allocations in parser
    • KT-53689 JVM: Optimize equality on class literals
    • KT-53119 Improve String Concatenation Lowering

    Fixes

    • KT-53465 Unnecessary checkcast to array of reified type is not optimized since Kotlin 1.6.20
    • KT-49658 NI: False negative TYPE_MISMATCH on nullable type with when
    • KT-48162 NON_VARARG_SPREAD isn't reported on *toTypedArray() call
    • KT-43493 NI: False negative: no compilation error "Operator '==' cannot be applied to 'Long' and 'Int'" is reported in builder inference lambdas
    • KT-54393 Change in behavior from 1.7.10 to 1.7.20 for java field override.
    • KT-55357 IllegalStateException when reading a class that delegates to a Java class with a definitely-not-null type with a flexible upper bound
    • KT-55068 Kotlin Gradle DSL: No mapping for symbol: VALUE_PARAMETER SCRIPT_IMPLICIT_RECEIVER on JVM IR backend
    • KT-51284 SAM conversion doesn't work if method has context receivers
    • KT-48532 Remove old JVM backend

    ... (truncated)

    Changelog

    Sourced from plugin.serialization's changelog.

    1.8.0-RC2

    Compiler

    • KT-55357 IllegalStateException when reading a class that delegates to a Java class with a definitely-not-null type with a flexible upper bound
    • KT-55068 Kotlin Gradle DSL: No mapping for symbol: VALUE_PARAMETER SCRIPT_IMPLICIT_RECEIVER on JVM IR backend
    • KT-51284 SAM conversion doesn't work if method has context receivers
    • KT-55065 Kotlin Gradle DSL: Reflection cannot find class data for lambda, produced by JVM IR backend

    Tools. Compiler plugins. Serialization

    • KT-55340 Argument for kotlinx.serialization.UseSerializers does not implement KSerializer or does not provide serializer for concrete type

    Tools. Gradle

    • KT-55334 kaptGenerateStubs passes wrong android variant module names to compiler
    • KT-55255 Gradle: stdlib version alignment fails build on dynamic stdlib version.
    • KT-55363 [K1.8.0-Beta] Command line parsing treats plugin parameters as source files

    1.8.0-RC

    Compiler

    • KT-55108 IR interpreter: Error occurred while optimizing an expression: VARARG
    • KT-54884 "StackOverflowError: null" caused by Enum constant name in constructor of the same Enum constant
    • KT-55013 State checker use-after-free with XCode 14.1
    • KT-54275 K2: "IllegalArgumentException: KtParameter is not a subtype of class KtAnnotationEntry for factory REPEATED_ANNOTATION"

    JavaScript

    • KT-55097 KJS / IR + IC: Using an internal function from a friend module throws an unbound symbol exception
    • KT-54934 KJS / IR + IC: Suspend abstract function stubs are generated with unstable lowered ic signatures
    • KT-54895 KJS / IR + IC: broken cross module references for function default param wrappers

    Language Design

    Libraries

    • KT-54835 Document that Iterable.all(emptyCollection) returns TRUE.
    • KT-54168 Expand on natural order in comparator docs

    Native. Platform Libraries

    Tools. Compiler plugins. Serialization

    ... (truncated)

    Commits
    • da1a843 Add ChangeLog for 1.8.0-RC2
    • d325cf8 Call additional publishToMavenLocal in maven build scripts and enable info
    • 0403d70 Don't leave Gradle daemons after build scripts
    • 52b225d Fix task module-name is not propagated to compiler arguments
    • d40ebc3 Specify versions-maven-plugin version explicitly
    • 2e829ed Fix version parsing crash on Gradle rich version string
    • f603c0e Scripting, IR: fix capturing of implicit receiver
    • 06cbf8f Scripting, tests: enable custom script tests with IR
    • d61cef0 Fix deserialization exception for DNN types from Java
    • ea33e72 JVM IR: script is a valid container for local delegated properties
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Bump arrow-core from 1.0.0 to 1.1.3

    Bump arrow-core from 1.0.0 to 1.1.3

    Bumps arrow-core from 1.0.0 to 1.1.3.

    Release notes

    Sourced from arrow-core's releases.

    1.1.3

    What's Changed

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Bump koinVersion from 3.1.2 to 3.1.3

    Bump koinVersion from 3.1.2 to 3.1.3

    Bumps koinVersion from 3.1.2 to 3.1.3. Updates koin-core from 3.1.2 to 3.1.3

    Changelog

    Sourced from koin-core's changelog.

    3.1.3

    • [UPDATED] [core] - update to Kotlin 1.5.30
    • [UPDATED] [android] - update to latest ktx lib
    • [UPDATED] [android-compose] - update to lifecycle-viewmodel-compose 1.0.3
    • [FIXED] [android] - ViewModel instances are reinjected into Koin scopes
    • [FIXED] [android] - Scope can help inject current Activity/Fragment (no need of explicit inject from the source)
    • [ADDED] [android] - added koin-androidx-navigation with
    • [DEPRECATED] [android] - by stateViewModel() is merged in by viewModel(), to inject SavedStateHandle
    • [FIXED] [android] - ViewModel API to get back owner property and write it against Activity/Fragment
    • [ADDED] [test] - introduce new checkKoinModules and DSL to help verify modules
    • [DEPRECATED] [test] - deprecate old checkModules function, in faver of new API checkKoinModules
    Commits

    Updates koin-ktor from 3.1.2 to 3.1.3

    Changelog

    Sourced from koin-ktor's changelog.

    3.1.3

    • [UPDATED] [core] - update to Kotlin 1.5.30
    • [UPDATED] [android] - update to latest ktx lib
    • [UPDATED] [android-compose] - update to lifecycle-viewmodel-compose 1.0.3
    • [FIXED] [android] - ViewModel instances are reinjected into Koin scopes
    • [FIXED] [android] - Scope can help inject current Activity/Fragment (no need of explicit inject from the source)
    • [ADDED] [android] - added koin-androidx-navigation with
    • [DEPRECATED] [android] - by stateViewModel() is merged in by viewModel(), to inject SavedStateHandle
    • [FIXED] [android] - ViewModel API to get back owner property and write it against Activity/Fragment
    • [ADDED] [test] - introduce new checkKoinModules and DSL to help verify modules
    • [DEPRECATED] [test] - deprecate old checkModules function, in faver of new API checkKoinModules
    Commits

    Updates koin-logger-slf4j from 3.1.2 to 3.1.3

    Changelog

    Sourced from koin-logger-slf4j's changelog.

    3.1.3

    • [UPDATED] [core] - update to Kotlin 1.5.30
    • [UPDATED] [android] - update to latest ktx lib
    • [UPDATED] [android-compose] - update to lifecycle-viewmodel-compose 1.0.3
    • [FIXED] [android] - ViewModel instances are reinjected into Koin scopes
    • [FIXED] [android] - Scope can help inject current Activity/Fragment (no need of explicit inject from the source)
    • [ADDED] [android] - added koin-androidx-navigation with
    • [DEPRECATED] [android] - by stateViewModel() is merged in by viewModel(), to inject SavedStateHandle
    • [FIXED] [android] - ViewModel API to get back owner property and write it against Activity/Fragment
    • [ADDED] [test] - introduce new checkKoinModules and DSL to help verify modules
    • [DEPRECATED] [test] - deprecate old checkModules function, in faver of new API checkKoinModules
    Commits

    Updates koin-test from 3.1.2 to 3.1.3

    Changelog

    Sourced from koin-test's changelog.

    3.1.3

    • [UPDATED] [core] - update to Kotlin 1.5.30
    • [UPDATED] [android] - update to latest ktx lib
    • [UPDATED] [android-compose] - update to lifecycle-viewmodel-compose 1.0.3
    • [FIXED] [android] - ViewModel instances are reinjected into Koin scopes
    • [FIXED] [android] - Scope can help inject current Activity/Fragment (no need of explicit inject from the source)
    • [ADDED] [android] - added koin-androidx-navigation with
    • [DEPRECATED] [android] - by stateViewModel() is merged in by viewModel(), to inject SavedStateHandle
    • [FIXED] [android] - ViewModel API to get back owner property and write it against Activity/Fragment
    • [ADDED] [test] - introduce new checkKoinModules and DSL to help verify modules
    • [DEPRECATED] [test] - deprecate old checkModules function, in faver of new API checkKoinModules
    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Bump reflections from 0.10.1 to 0.10.2

    Bump reflections from 0.10.1 to 0.10.2

    Bumps reflections from 0.10.1 to 0.10.2.

    Release notes

    Sourced from reflections's releases.

    0.10.2

    reflections-0.10.2

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Bump exposedVersion from 0.35.1 to 0.36.1

    Bump exposedVersion from 0.35.1 to 0.36.1

    Bumps exposedVersion from 0.35.1 to 0.36.1. Updates exposed-core from 0.35.1 to 0.36.1

    Release notes

    Sourced from exposed-core's releases.

    Release 0.35.3

    Change log

    Release 0.35.2

    Change log

    Changelog

    Sourced from exposed-core's changelog.

    0.36.1

    Deprecations:

    • NotRegexpOp/notRegexp was removed
    • ResultRow.tryGet was removed
    • ResiltSet.create(rs: ResultSet, fields: List<Expression<*>>) was removed
    • Seq data class was removed
    • EntityID, IdTable, IntIdTable, LongIdTable, UUIDTable from org.jetbrains.exposed.dao package were removed
    • All classes and functions from org.jetbrains.exposed.sql.java-time were removed in favour to org.jetbrains.exposed.sql.javatime
    • Column.primaryKey function was removed in favor to explicit Table.primaryKey declaration

    Breaking Changes:

    • All inheritors of IdTable (IntIdTable, LongIdTable, UUIDTable) have their id and primaryKey fields are final

    Features:

    • DatabaseConfig.defaultSchema was introduced to set schema before first call in transaction
    • Coalesce now accepts any number for arguments

    Bug fixes:

    • EntityCache was reinitialized on explicit Transaction.commit

    0.35.3

    Bug fixes:

    • Invalid column's default value check in SchemaUtils.addMissingColumnsStatements could lead unneeded column modification

    0.35.2

    Feature:

    • DatabaseConfig.explicitDialect param added to predefine dialect for a Database

    Bug fixes:

    • Don't fail when getting dialectName for user's defined drivers
    • [Spring] Possible connection leak within SpringTransactionManager #1355
    • Referrers cache wasn't invalidated when statement was executed on reference table (via use-case)
    • New entity was flushed on Entity.reload(flush = false) what can lead to unexpected results
    • ResultSet stayed unclosed if Query's result was not iterated till the end
    Commits

    Updates exposed-jdbc from 0.35.1 to 0.36.1

    Release notes

    Sourced from exposed-jdbc's releases.

    Release 0.35.3

    Change log

    Release 0.35.2

    Change log

    Changelog

    Sourced from exposed-jdbc's changelog.

    0.36.1

    Deprecations:

    • NotRegexpOp/notRegexp was removed
    • ResultRow.tryGet was removed
    • ResiltSet.create(rs: ResultSet, fields: List<Expression<*>>) was removed
    • Seq data class was removed
    • EntityID, IdTable, IntIdTable, LongIdTable, UUIDTable from org.jetbrains.exposed.dao package were removed
    • All classes and functions from org.jetbrains.exposed.sql.java-time were removed in favour to org.jetbrains.exposed.sql.javatime
    • Column.primaryKey function was removed in favor to explicit Table.primaryKey declaration

    Breaking Changes:

    • All inheritors of IdTable (IntIdTable, LongIdTable, UUIDTable) have their id and primaryKey fields are final

    Features:

    • DatabaseConfig.defaultSchema was introduced to set schema before first call in transaction
    • Coalesce now accepts any number for arguments

    Bug fixes:

    • EntityCache was reinitialized on explicit Transaction.commit

    0.35.3

    Bug fixes:

    • Invalid column's default value check in SchemaUtils.addMissingColumnsStatements could lead unneeded column modification

    0.35.2

    Feature:

    • DatabaseConfig.explicitDialect param added to predefine dialect for a Database

    Bug fixes:

    • Don't fail when getting dialectName for user's defined drivers
    • [Spring] Possible connection leak within SpringTransactionManager #1355
    • Referrers cache wasn't invalidated when statement was executed on reference table (via use-case)
    • New entity was flushed on Entity.reload(flush = false) what can lead to unexpected results
    • ResultSet stayed unclosed if Query's result was not iterated till the end
    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
Owner
novice from Henan University,School of Software
null
A simple (and naive) RESTful API made with Ktor, jasync-sql and JWT.

A simple (and naive) RESTful API made with Ktor, jasync-sql and JWT. Route Method Description /account POST Create a new account /account DELETE Delet

null 2 Nov 4, 2021
Test tv - A marketing company needs a simple pluggable application with a RESTful interface

Demo project A marketing company needs a simple pluggable application with a RES

null 0 Jan 18, 2022
Team management service is a production ready and fully tested service that can be used as a template for a microservices development.

team-mgmt-service Description Team management service is a production ready and fully tested service that can be used as a template for a microservice

Albert Llousas Ortiz 18 Oct 10, 2022
Accessibility-Service - Filter url from browser by using accessibility service

Accessibility Service example Filter url from browser by using accessibility ser

AmirMohammad Yazdanmanesh 8 Nov 29, 2022
A Modern Kotlin-Ktor RESTful API example. Connects to a PostgreSQL database and uses Exposed framework for database operations.

kotlin-ktor-rest-api A Modern Kotlin-Ktor RESTful API example. Connects to a PostgreSQL database and uses Exposed framework for database operations. F

Selim Atasoy 32 Dec 20, 2022
🌱 A test implementation of a Minecraft server using RESTful API taking advantage of the interoperability between Kotlin and Java.

?? Norin A test implementation of a Minecraft server using RESTful API taking advantage of the interoperability between Kotlin and Java. This project

Gabriel 1 Jan 4, 2022
Restful Toolkit for IntelliJ IDEA

restful-toolkit Template ToDo list Create a new IntelliJ Platform Plugin Template project. Get known with the template documentation. Verify the plugi

KeepWalking... 56 Dec 14, 2022
Web Container: A simple web container library for Android to help fellow developer to open WebView easily

WebContainer Description Web Container is a simple web container library for And

Achmad Ichsan Thaib 8 Nov 22, 2022
Template for a modern spring web service.

Spring Service Scaffold A scaffold for a web service operating with a Spring Framework backend, reactjs as frontend and a continuous testing and build

null 0 Nov 15, 2021
A simple starter project for Minecraft Spigot Plugin using KotlinBukkitAPI.

KBAPI-StarterProject A simple starter project for Minecraft Spigot Plugin using KotlinBukkitAPI. The starter comes with the following KotlinBukkitAPI

null 0 Nov 2, 2021
Buggy buggy kotlin MVVM starter project

贪吃蛇 - MVVM - Kotlin Introduciton project was inspired and initialized by youtube

null 0 Dec 28, 2021
A starter project to build command-line tools in Kotlin Multiplatform

A starter project to build command-line tools in Kotlin Multiplatform Contains a re-implementation of a real world CLI tool: git-standup Installation

null 0 May 2, 2022
Starter project with PEKK stack.

Running the project To run the project, you need to run the server and the frontend. Running the server In the terminal, run ./gradlew narcore-server:

Narbase Technologies 2 Sep 9, 2022
A simple reference example Kotlin GraphQL service

A simple reference example Kotlin GraphQL service, written for colleagues coming over from Python & FastAPI/Flask + Ariadne/Graphene.

Dan Pozmanter 5 Mar 20, 2022
Aagent-new-service-parent - A Springboot Rest Webservice Project that can be deployed to a Docker container

Webservice in a Docker Container A Springboot Rest Webservice Project that can b

ReeceRiley-aa 0 Jan 4, 2022
Generated with spring boot kotlin starter kit

Kotlin backend Generated with spring boot kotlin starter kit The idea is to: Get a microservice written in kotlin for managing users and roles. To be

Oriol Subirana 1 Oct 19, 2021
Starter code for Android Basics in Kotlin

Inventory - Starter Code Starter code for Android Basics in Kotlin. Introduction This app is an stater code for an Inventory tracking app. Demos how t

Nora 0 Dec 8, 2021
Starter code for Android Basics in Kotlin

Inventory - Starter Code Starter code for Android Basics in Kotlin. Introduction This app is an stater code for an Inventory tracking app. Demos how t

Sajini Sadanand 0 Dec 9, 2021
Inventory-App - Starter code for Android Basics in Kotlin

Inventory - Starter Code Starter code for Android Basics in Kotlin. Introduction

null 0 Jan 8, 2022