Commit Graph

403 Commits

Author SHA1 Message Date
Michael Bull
b19894a08c Deprecate suspending variant of "binding" in favour of "coroutineBinding"
This matches the internally-called function named coroutineScope, and helps
consumers distinguish between the blocking variant that is otherwise only
differing in package name.

This should also help convey to readers that structured concurrency will
occur within the block.
2024-03-11 00:06:46 +00:00
Michael Bull
dd5c96f983 Deprecate "ResultBinding" in favour of "BindingScope"
This matches the Kotlin stdlib naming convention used for
sequences[1] and coroutines[2].

[1] https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.sequences/-sequence-scope/
[2] https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines/-coroutine-scope/
2024-03-11 00:06:46 +00:00
Michael Bull
09818a7d50 Remove redundant call to coroutineScope in SuspendBindingBenchmark 2024-03-11 00:06:46 +00:00
Michael Bull
ab06a2a3fc Run coroutine tests on all platforms
Some were previously restricted to specific platforms, however
kotlinx-coroutines-test now targets them all.
2024-03-11 00:06:46 +00:00
Michael Bull
0b21b7361f Replace lateinit with null in binding variants 2024-03-11 00:06:46 +00:00
Michael Bull
fec8c03313 Use delegation for SuspendableResultBindingImpl
The Kotlin docs for CoroutineScope[1] explicitly state that:

"Manual implementation of this interface is not recommended,
implementation by delegation should be preferred instead."

[1] https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines/-coroutine-scope/
2024-03-11 00:06:46 +00:00
Michael Bull
8d6b0a9eb3 Update Gradle
See: https://github.com/gradle/gradle/pull/27851
2024-03-11 00:06:45 +00:00
YuitoSato
716109aa84 Return List of errors for all variants of zipOrAccumulate
The four-arg and five-arg variants were returning Collection instead of
List.
2024-03-10 15:02:41 +00:00
Michael Bull
c46a2925b1 Add transpose
See: https://doc.rust-lang.org/std/result/enum.Result.html#method.transpose
2024-03-09 00:22:51 +00:00
Michael Bull
aca9ad92f8 Deprecate get{All,AllErrors} in favour of filter{Values,Errors} 2024-03-08 23:55:47 +00:00
Michael Bull
f091f507d9 Add Iterable#{filterValues,filterValuesTo,filterErrors,filterErrorsTo} 2024-03-08 23:55:47 +00:00
Michael Bull
6e62d9f97d Add Iterable#{allOk,allErr,anyOk,anyErr,countOk,countErr} 2024-03-08 23:40:07 +00:00
Michael Bull
15fc1ff013 Add mapCatching
See: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/map-catching.html
2024-03-08 20:42:44 +00:00
Michael Bull
f208f5ee79 Simplify predicate-based functions 2024-03-08 20:36:09 +00:00
Michael Bull
0b85cc2aad Reuse runCatching in recoverCatching 2024-03-08 20:29:41 +00:00
Michael Bull
d2932de547 Reformat Iterable 2024-03-08 14:46:59 +00:00
Michael Bull
01c8c00f98 Rename error to result in binding impls 2024-03-08 14:46:59 +00:00
Michael Bull
5c4635b655 Reformat project 2024-03-08 14:46:59 +00:00
Michael Bull
104f6a8ecd Mark objects as data objects in tests 2024-03-08 14:46:59 +00:00
Michael Bull
d8ea6e1c04 Move binding type declarations to lefthand of callsite 2024-03-08 14:46:59 +00:00
Michael Bull
f7c9f605f1 Tidy up MapTest 2024-03-08 14:46:59 +00:00
Michael Bull
f05ce6e0c7 Improve consistency across unit tests 2024-03-08 14:46:59 +00:00
Michael Bull
4e5cdeede7 Add flatMap{Both,Either} 2024-03-08 14:46:59 +00:00
Michael Bull
5d2c732ae7 Include os name in workflow jobs 2024-03-05 05:43:19 +00:00
Michael Bull
f91b7c1efa Run publish step only on main repository 2024-03-04 22:19:19 +00:00
Michael Bull
2acedfa898 Bump version 2024-03-03 15:58:07 +00:00
Michael Bull
89ed2955ba Release v1.1.20 2024-03-03 15:52:20 +00:00
Michael Bull
a522fbd3e7 Update copyright year in LICENSE 2024-03-03 15:51:50 +00:00
Michael Bull
da96ceef8e Add more build targets for coroutines extensions
kotlinx-coroutines has since started publishing more native build
targets since we first became multiplatform. This commit ensures we also
build native targets for the platforms that were previously missing,
namely:

- androidNativeArm32
- androidNativeArm64
- androidNativeX64
- androidNativeX86
- linuxArm64
- wasmJs

This ensures that we are now supporting all three tiers of Kotlin/Native
target support.

See: https://kotlinlang.org/docs/native-target-support.html
2024-03-03 15:24:15 +00:00
Michael Bull
a4fe9f6fa8 Set env vars only on publish step 2024-03-03 14:51:03 +00:00
Michael Bull
8893187a3a Pin GitHub actions by commit hash
See: https://docs.github.com/en/actions/security-guides/security-hardening-for-github-actions#using-third-party-actions
2024-03-03 14:49:28 +00:00
Michael Bull
ebf7eedb14 Add names to workflow jobs 2024-03-03 14:24:20 +00:00
Michael Bull
c3d28ed771 Simplify configuration of KotlinNpmInstallTask 2024-03-03 14:24:20 +00:00
Michael Bull
76a69a50e8 Merge GitHub workflows 2024-03-03 06:16:38 +00:00
Michael Bull
9f93f45541 Fix build url in Maven POM 2024-03-03 01:56:55 +00:00
Michael Bull
bbf1c5d08c Fix workflow badge in README 2024-03-03 01:44:28 +00:00
Michael Bull
34cb35ffd5 Use import in build.gradle.kts 2024-03-03 01:42:25 +00:00
Michael Bull
f19b0a9b11 Bump version 2024-03-03 01:41:42 +00:00
Michael Bull
779479b2d9 Release v1.1.19 2024-03-03 01:22:43 +00:00
Michael Bull
546abbfb96 Fix missing url in maven POM 2024-03-03 01:22:43 +00:00
Michael Bull
67990a3b0b Stop running build workflow twice on push to master
The deploy workflow depends on the build one, so it is already
responsible for running it via workflow_call.
2024-03-03 00:17:47 +00:00
Michael Bull
a90c0fc92e Update github actions 2024-03-03 00:16:33 +00:00
Michael Bull
88e31cd1ac Extract shared build logic to convention plugins
See: https://docs.gradle.org/current/userguide/sharing_build_logic_between_subprojects.html#sec:convention_plugins
2024-03-03 00:02:54 +00:00
Michael Bull
bae2d88e3d Adopt dependencyResolutionManagement in settings.gradle 2024-03-02 21:37:21 +00:00
Michael Bull
fca4ec6cab Merge tasks into single runner in workflows 2024-03-02 21:33:27 +00:00
Michael Bull
350ef94e5d Run deploy workflow on every push to master 2024-03-02 19:49:01 +00:00
Michael Bull
a73b69a54a Remove kotlin-js-store from gitignore
The official docs[1] recommend comitting the kotlin-js-store directory
and its contents to ensure the application is being built with the same
dependency tree on all machines.

[1] https://kotlinlang.org/docs/js-project-setup.html#version-locking-via-kotlin-js-store
2024-03-02 19:25:12 +00:00
Michael Bull
402999a1da Refactor Gradle workflows
Uses the actions found in the Kotlin mpp template gallery[1].

[1] https://kmp.jetbrains.com/#templateGallery
2024-03-02 19:18:07 +00:00
Michael Bull
d3d0381d2c Restrict CI workflow permissions to readonly contents 2024-03-02 18:13:29 +00:00
Michael Bull
13dfdae6ab Only run CI workflow on master branch 2024-03-02 18:13:29 +00:00