Auto-pipeline: a source code generator, it will generate your component's pipeline

Related tags

App auto-pipeline
Overview

auto-pipeline 🚀

auto-pipeline is a source code generator, it will generate your component's pipeline, help you to keep your project smaller, simpler, and more extensible 💡

auto-pipeline is a annotation-processor for Pipeline generator, which is inspired by google's Auto. ❤️

a quick example

please check the example project and it's test case.

WIP...

quick start

auto-pipeline require java 8 or above.

WIP...

License

Apache License 2.0

Comments
  • support IntelliJ auto-pipeline plugin

    support IntelliJ auto-pipeline plugin

    When using @Autopipeline, I found that classes such as HandlerContext/Pipeline are generated only after compiling the code, which is not smooth enough for the developer experience.For readers who open the project for the first time, he will find various compilation warnings, which will confuse which classes showing red warnings are where.

    IntelliJ lombok plugin does just that. For example, after adding the @Setting annotation to the class, the developer can use the set method immediately

    Looking forward to the birth of IntelliJ autopipeline plugin

    opened by codesnowstorm 12
  • chore(deps): bump kotlin-compile-testing from 1.4.8 to 1.4.9

    chore(deps): bump kotlin-compile-testing from 1.4.8 to 1.4.9

    Bumps kotlin-compile-testing from 1.4.8 to 1.4.9.

    Release notes

    Sourced from kotlin-compile-testing's releases.

    1.4.9

    No release notes provided.

    1.4.9-alpha01

    Updated Kotlin and KSP to 1.7.0

    Commits
    • cd4ab56 Update to Kotlin 1.7.0 and release (#283)
    • 61e5fda Bump assertj-core from 3.22.0 to 3.23.1
    • b49ba22 Bump mockito-core from 4.6.0 to 4.6.1
    • 0c96e5d Bump ksp_version from 1.7.0-RC-1.0.5 to 1.7.0-RC2-1.0.5
    • b00e5f1 Bump mockito-core from 4.5.1 to 4.6.0
    • 7293b86 Bump classgraph from 4.8.146 to 4.8.147
    • 55bdfca Update Kotlin to 1.7.0-RC
    • 6e24e9d Bump ksp_version from 1.7.0-Beta-87-1.0.5-SNAPSHOT to 1.7.0-RC-1.0.5
    • f5a6e50 Bump embedded_kotlin_version from 1.7.0-dev-3025 to 1.7.255-SNAPSHOT
    • 04a5677 Undo version increment
    • 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 java 
    opened by dependabot[bot] 5
  • chore(deps): bump slf4j-api from 1.7.36 to 2.0.2

    chore(deps): bump slf4j-api from 1.7.36 to 2.0.2

    Bumps slf4j-api from 1.7.36 to 2.0.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 java 
    opened by dependabot[bot] 4
  • support duplexing pipeline

    support duplexing pipeline

    Implement a two-way pipeline to solve request/response-like scenarios.

    e.g.

    
    interface RequestOperation {
        Future invoke(Request request, RpcContext ctx)
    }
    
    interface ResponseOperation {
        Future onResponse(Request request, Response response, RpcContext ctx)
    }
    
    
    interface RPCHandler extends RequestOperation, ResponseOperation {
    }
    

    after apply @AutoPipeline to RPCHandler (we need to add some metadata for auto-pipeline) :

    • invoke method will start from head to tail
    • while onResponse will start from tail to head
    • may be invoke and onResponse operation will in separate interfaces, and some handler can just implement one of the interfaces
    • auto-pipeline will auto detect whether the handler is duplexing or not, and will call or skip the handler adaptively
    enhancement 
    opened by zavakid 3
  • chore(deps): bump kotlin.version from 1.7.10 to 1.7.21

    chore(deps): bump kotlin.version from 1.7.10 to 1.7.21

    Bumps kotlin.version from 1.7.10 to 1.7.21. Updates kotlin-bom from 1.7.10 to 1.7.21

    Release notes

    Sourced from kotlin-bom'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 kotlin-bom'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

    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

    Updates kotlin-maven-plugin from 1.7.10 to 1.7.21

    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 java 
    opened by dependabot[bot] 2
  • chore(deps): bump slf4j-api from 1.7.36 to 2.0.1

    chore(deps): bump slf4j-api from 1.7.36 to 2.0.1

    Bumps slf4j-api from 1.7.36 to 2.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 java 
    opened by dependabot[bot] 2
  • chore(deps): bump kotlin-bom from 1.6.21 to 1.7.0 in /auto-pipeline-examples

    chore(deps): bump kotlin-bom from 1.6.21 to 1.7.0 in /auto-pipeline-examples

    Bumps kotlin-bom from 1.6.21 to 1.7.0.

    Release notes

    Sourced from kotlin-bom'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 kotlin-bom'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
    • e4b2a81 Add changelog for 1.7.0
    • ec73f40 Fix Gradle plugin inputs validation issue
    • 5f3b1e3 Fix IDEA import error in 'jps-plugin' module
    • a6df421 Add changelog for 1.7.0-RC2
    • 79cabc5 Bump klib ABI version
    • b16d44a [Parcelize] Remove sources of FIR parcelize plugin
    • 9aef691 [FE 1.0] Check callable reference return type safety during resolution
    • 1adc50b Revert "[FE 1.0] Take care callable reference candidates with recursive candi...
    • 1df9fea Add test for KT-50498
    • 1a8e994 [FE 1.0] Take care standalone lambdas during updating types in the builder in...
    • 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 java 
    opened by dependabot[bot] 2
  • chore(deps): bump netty-bom from 4.1.77.Final to 4.1.78.Final

    chore(deps): bump netty-bom from 4.1.77.Final to 4.1.78.Final

    Bumps netty-bom from 4.1.77.Final to 4.1.78.Final.

    Commits
    • c87c911 [maven-release-plugin] prepare release netty-4.1.78.Final
    • c18fc2b Allow controlling time flow for EmbeddedEventLoop (#12459)
    • db8d5c5 Fix race in FlowControlHandlerTest that could lead to a NPE (#12457)
    • bc085b0 Update SslHandler to set bio fd member to facilitate openssl tracing (Pixie i...
    • a1c9cce Update tcnative version (#12454)
    • bffac7b correct comment of date from cate (#12448)
    • c42a207 Remove the last references to JUnit 4 (#12442)
    • 56f7c50 Allow blocking calls in JdkSslContext class initializer (#12435)
    • 8098219 Makes Brotli more native compilation friendly (#12409)
    • 27e0f52 Guard usage with null check to prevent possible NPE during finalization. (#12...
    • 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 java 
    opened by dependabot[bot] 2
  • chore(deps): bump kotlin.version from 1.6.21 to 1.7.0

    chore(deps): bump kotlin.version from 1.6.21 to 1.7.0

    Bumps kotlin.version from 1.6.21 to 1.7.0. Updates kotlin-bom from 1.6.21 to 1.7.0

    Release notes

    Sourced from kotlin-bom'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 kotlin-bom'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
    • e4b2a81 Add changelog for 1.7.0
    • ec73f40 Fix Gradle plugin inputs validation issue
    • 5f3b1e3 Fix IDEA import error in 'jps-plugin' module
    • a6df421 Add changelog for 1.7.0-RC2
    • 79cabc5 Bump klib ABI version
    • b16d44a [Parcelize] Remove sources of FIR parcelize plugin
    • 9aef691 [FE 1.0] Check callable reference return type safety during resolution
    • 1adc50b Revert "[FE 1.0] Take care callable reference candidates with recursive candi...
    • 1df9fea Add test for KT-50498
    • 1a8e994 [FE 1.0] Take care standalone lambdas during updating types in the builder in...
    • Additional commits viewable in compare view

    Updates kotlin-maven-plugin from 1.6.21 to 1.7.0

    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 java 
    opened by dependabot[bot] 2
  • chore(deps): bump kotestVersion from 5.2.1 to 5.2.2 in /auto-pipeline-examples

    chore(deps): bump kotestVersion from 5.2.1 to 5.2.2 in /auto-pipeline-examples

    Bumps kotestVersion from 5.2.1 to 5.2.2. Updates kotest-runner-junit5-jvm from 5.2.1 to 5.2.2

    Commits

    Updates kotest-assertions-core-jvm from 5.2.1 to 5.2.2

    Commits

    Updates kotest-property-jvm from 5.2.1 to 5.2.2

    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 java 
    opened by dependabot[bot] 2
  • chore(deps): bump compile-testing from 0.19.11 to 0.19.12

    chore(deps): bump compile-testing from 0.19.11 to 0.19.12

    Bumps compile-testing from 0.19.11 to 0.19.12.

    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 java 
    opened by dependabot[bot] 2
  • chore(deps): bump kotlin.version from 1.7.10 to 1.8.0

    chore(deps): bump kotlin.version from 1.7.10 to 1.8.0

    Bumps kotlin.version from 1.7.10 to 1.8.0. Updates kotlin-bom from 1.7.10 to 1.8.0

    Release notes

    Sourced from kotlin-bom's releases.

    Kotlin 1.8.0-RC2

    Changelog

    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

    Checksums

    File Sha256
    kotlin-compiler-1.8.0-RC2.zip 149492cac31a94e8ee5173035520bb31286f6f6eb004cc0306b47127f7a72ce9
    kotlin-native-linux-x86_64-1.8.0-RC2.tar.gz 859031d2f8dc86398a3484a9103eea3dffbe546be658063bff69913c2d1d7233
    kotlin-native-macos-x86_64-1.8.0-RC2.tar.gz cb25632ddc061c04a0a7a23a3afdf9dcc5a8c5d4a536fd8b5396be700ad87b38
    kotlin-native-macos-aarch64-1.8.0-RC2.tar.gz 9ba55a4e4ca3fc263d9758bd5f5ded732c0ef53fae7920a495715907c9a43c33
    kotlin-native-windows-x86_64-1.8.0-RC2.zip 2c6a2b11523929563845b945faa8b7c481727d0408d18e41dcd48bf6bdf7e570

    Kotlin 1.8.0-RC

    Changelog

    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

    • KT-48516 Forbid @Synchronized annotation on suspend functions

    ... (truncated)

    Changelog

    Sourced from kotlin-bom'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

    Updates kotlin-maven-plugin from 1.7.10 to 1.8.0

    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 java 
    opened by dependabot[bot] 0
  • Retain annotations of my interface like @NotNull in generated classes.

    Retain annotations of my interface like @NotNull in generated classes.

    Hi, when using autopipeline, I encountered a little difficulty about using annotation.

    The annotations in my interface like @NotNull cannot be retained in the generated classes (including the implementations of my interface and the Handler interface), which makes it impossible for me to constrain the Handler implementations at the interface level. code sample:

    @AutoPipeline
    public interface ConfigSource {
        @NotNull
        String get(@NotNull String key);
    }
    
    // I hope the implementations of ConfigSourceHandler can also be constrained by @NotNull.
    public class ConfigSourceHandlerImpl implements ConfigSourceHandler {
        @Override
        public String get(String key, ConfigSourceHandlerContext configSourceHandlerContext) {
            return null;
        }
    }
    
    enhancement 
    opened by Snowbae1017 2
Releases(v0.2.0)
  • v0.2.0(Mar 29, 2022)

    Maven Central Java support

    Feature

    • support duplexing pipeline #1

    Fix

    • fix compiler error with no-arg method in pipeline
      • for issue #32 submitted by @happyomg
    • improve error message of annotation processor

    Documentation

    • add example: singleton INSTANCE for SystemConfigSourceHandler
    • improve README.md
      • add quick start section
    • update example readme, add example link
    • fix sample code and improve wording
    • add JavaDoc to AutoPipeline

    Test

    • test AutoPipelineProcessor using lib kotlin-compile-testing

    Chore

    • upgrade dependencies/plugins
    • reorder pom properties
    • create dependabot.yml, checking dependency/plugin versions
    • add bump-auto-pipeline-version script
    • support build javadoc by java 8
    Source code(tar.gz)
    Source code(zip)
  • v0.1.0(Jan 1, 2022)

Owner
Zava
不怕日晒,不怕雨淋,吃苦作吃甜
Zava
Shreyas Patil 2.1k Dec 30, 2022
Source code of JekyllEx Android App which can manage your Jekyll blog directly from your Android device!

JekyllEx Android App Built with ❤︎ by Gourav Khunger ?? Introduction JekyllEx is an Android App that allows you to manage a Jekyll Blog directly from

JekyllEx 24 Nov 8, 2022
ANTLR is a powerful parser generator for reading, processing, executing, or translating structured text or binary files.

ANTLR (ANother Tool for Language Recognition) is a powerful parser generator for reading, processing, executing, or translating structured text or binary files.

Tunnel Vision Laboratories, LLC 53 Dec 18, 2022
A random meme generator and can be shared , each click will show yo a different meme.

AlphaMemes(random meme sharing app) A android app which display new meme on each click. used API which is dynamic/ Glide library used / Recycler view

SUMIT KUMAR 4 Jan 18, 2022
Auto T-Shirt Shop that uses Google Pay API.

GooglePayApp Offer simpler and secure payments with Google Pay Google Pay lets your customers pay with the press of a button—using payment methods sav

Muhammad Saqib 0 Oct 20, 2021
Auto App Consent for Android Developers (GDPR/CCPA)

Auto App Consent for App Developers (Alpha release) Developed by Konrad Kollnig, Department of Computer Science, University of Oxford This repository

Konrad Kollnig 15 Dec 2, 2022
Auto App Consent for Android Developers (GDPR/CCPA)

Auto App Consent for App Developers (Alpha release) Developed by Konrad Kollnig, Department of Computer Science, University of Oxford This repository

Konrad Kollnig 14 Aug 19, 2022
MVVM News Application with clean code architecture & android jetpack components.

Android - Clean Architecture - Kotlin The purpose of this repo is to follow up Clean Architecture principles by bringing them to Android. The repo con

Rafsan Ahmad 38 Aug 8, 2022
Synth is CRED's inbuilt library for using Neumorphic components in your app.

Synth Synth is CRED's inbuilt library for using Neumorphic components in your app. What really is Neumorphism? It's an impressionistic style, playing

CRED 947 Dec 30, 2022
Android application that allows users to take or import photo of chessboard, recognizes the pieces and generate the Forsyth-Edwards Notation.

♛ ChessBoard Importer Frontend ♛ Repository for the frontend part of project "Chessboard Importer". The project is realized by the team of 4 students

null 8 Feb 26, 2022
Java/Kotlin lightweight implementation of RFC-6238 and RFC-4226 to generate and validate time-based one-time passwords (TOTP).

1time Java/Kotlin lightweight implementation of RFC-6238 and RFC-4226 to generate and validate time-based one-time passwords (TOTP). Maven / gradle de

Atlassian Labs 31 Dec 21, 2022
Source Code Tutorial Aplikasi Al-Quran Android

Al-Quran-Android SOURCE CODE APLIKASI AL-QURAN DENGAN ANDROID STUDIO Source Code ini sudah di update. Untuk source code versi lama, silahkan lihat di

Azhar Rivaldi 33 Dec 27, 2022
Source code behind the site kobweb.varabyte.com

Kobweb Site This is a Kobweb project for generating the Kobweb site itself. The goal of this site will be to highlight the features provided by the fr

Varabyte 5 Nov 24, 2022
Android + Kotlin Project for the 2022 edition of the Open Source Contribution competition, JGEC Winter of Code aka JWoC.

QuotesApp-JWoC Android + Kotlin Project for the 2022 edition of the Open Source Contribution competition, JGEC Winter of Code aka JWoC. ?? Project Obj

null 4 Feb 16, 2022
ArchGuard Scanner for scan Git change history, scan source code by Chapi for Java, TypeScript, Kotlin, Go..、Java bytecode use for JVM languages, scan Jacoco test coverage.

Arch Scanner Requirements: JDK 12 Scanner: scan_git - Git commit history scan scan_jacoco - Jacoco scan scan_bytecode - for JVM languages known issues

ArchGuard 27 Jul 28, 2022
:movie_camera: Movie discovery app showcasing Android best practices with Google's recommended architecture: MVVM + Repository + Offline support + Android Architecture Components + Paging library & Retrofit2.

Popular Movies Stage 1 + Stage 2 Discover the most popular and top rated movies playing. Movies data fetched using themoviedb.org API. ✨ Screenshots M

Yassin AJDI 189 Nov 26, 2022
📚 Sample Android Components Architecture on a modular word focused on the scalability, testability and maintainability written in Kotlin, following best practices using Jetpack.

Android Components Architecture in a Modular Word Android Components Architecture in a Modular Word is a sample project that presents modern, 2020 app

Madalin Valceleanu 2.3k Jan 3, 2023
Patter Lock using Hilt, Coroutines, Flow and Custom View Components based on MVVM architecture.

Pattern Lock App Sample project for created Pattern Lock View using custom view. Preview Usage Step 1 Add the PatterLockView in your XML layout file.

Furkan Özcan 5 Aug 22, 2021