Skip to content

Commit 22fb1ae

Browse files
authored
Merge 2.4.0 to master (#600)
2 parents 783e035 + 8a093df commit 22fb1ae

File tree

83 files changed

+892
-230
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

83 files changed

+892
-230
lines changed

.github/workflows/CI.yml

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ jobs:
6969
7070
- name: Upload Test Reports
7171
uses: actions/upload-artifact@v4
72-
if: ${{ always() }}
72+
if: always()
7373
with:
7474
name: test-report-${{ matrix.os }}-java${{ matrix.java-version }}
7575
path: '**/build/reports/tests/**'
@@ -79,7 +79,7 @@ jobs:
7979
strategy:
8080
fail-fast: false
8181
matrix:
82-
api-level: [ 21, 24, 29, 33 ]
82+
api-level: [ 21, 24, 29, 33, 34, 35 ]
8383
runs-on: ubuntu-latest
8484
steps:
8585
- name: Checkout Repository
@@ -106,12 +106,14 @@ jobs:
106106
emulator-boot-timeout: 300 # 5 minutes
107107
api-level: ${{ matrix.api-level }}
108108
arch: x86_64
109-
script: ./gradlew connectedCheck -PKMP_TARGETS="ANDROID,JVM"
109+
script: ./gradlew connectedCheck -PKMP_TARGETS="ANDROID,ANDROID_ARM32,ANDROID_ARM64,ANDROID_X64,ANDROID_X86,JVM"
110110

111111
- name: Upload Test Reports
112112
uses: actions/upload-artifact@v4
113-
if: ${{ always() }}
113+
if: always()
114114
with:
115115
name: test-report-android-${{ matrix.api-level }}
116-
path: '**/build/reports/androidTests/**'
116+
path: |
117+
**/build/reports/androidTests/**
118+
**/build/outputs/androidTest-results/connected/debug/*/logcat-*.txt
117119
retention-days: 1

.kotlin-js-store/yarn.lock

Lines changed: 37 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -116,9 +116,9 @@ color-name@~1.1.4:
116116
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
117117

118118
debug@^4.3.5:
119-
version "4.4.0"
120-
resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.0.tgz#2b3f2aea2ffeb776477460267377dc8710faba8a"
121-
integrity sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==
119+
version "4.4.1"
120+
resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.1.tgz#e5a8bc6cbc4c6cd3e64308b0693a3d4fa550189b"
121+
integrity sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==
122122
dependencies:
123123
ms "^2.1.3"
124124

@@ -274,40 +274,40 @@ js-yaml@^4.1.0:
274274
dependencies:
275275
argparse "^2.0.1"
276276

277-
kmp-tor.resource-exec-tor.all@408.16.1:
278-
version "408.16.1"
279-
resolved "https://registry.yarnpkg.com/kmp-tor.resource-exec-tor.all/-/kmp-tor.resource-exec-tor.all-408.16.1.tgz#bdc84861f1651c74cd1990ff4a49de7dc6a20f4f"
280-
integrity sha512-AepGIGoUS3YhakZJzlm9+87rls2AqqjM0PmLq83h+sSYEbMteWQIm02ac+6OzVkAQfC56nLdtYL93N6zXG8szA==
281-
dependencies:
282-
kmp-tor.resource-exec-tor.linux-android "408.16.1"
283-
kmp-tor.resource-exec-tor.linux-libc "408.16.1"
284-
kmp-tor.resource-exec-tor.macos "408.16.1"
285-
kmp-tor.resource-exec-tor.mingw "408.16.1"
286-
287-
kmp-tor.resource-exec-tor.linux-android@408.16.1:
288-
version "408.16.1"
289-
resolved "https://registry.yarnpkg.com/kmp-tor.resource-exec-tor.linux-android/-/kmp-tor.resource-exec-tor.linux-android-408.16.1.tgz#a7fbc5c2a144fa03f86872a4c5d86dc95ff94ab2"
290-
integrity sha512-Lx8Lq2AQwjsIwXgb2UDibhk73t/eSVNk4jNjk+fSmW3C+d6Rt9pX1yxH/UqLkwIB6cAKkRorttvD1F1BmvvP8g==
291-
292-
kmp-tor.resource-exec-tor.linux-libc@408.16.1:
293-
version "408.16.1"
294-
resolved "https://registry.yarnpkg.com/kmp-tor.resource-exec-tor.linux-libc/-/kmp-tor.resource-exec-tor.linux-libc-408.16.1.tgz#90ae992b915c3145021447a060538b3fed85e384"
295-
integrity sha512-wBLj3+ATORrD5cZqOdBZ+olrvm8ElvKASb3n38Q3ekS9/FbVzf7mJHa4rdR1hhZEUBZ6RqyWnfVKrDtPCeXK5A==
296-
297-
kmp-tor.resource-exec-tor.macos@408.16.1:
298-
version "408.16.1"
299-
resolved "https://registry.yarnpkg.com/kmp-tor.resource-exec-tor.macos/-/kmp-tor.resource-exec-tor.macos-408.16.1.tgz#8ec23ae3c4b2a0a775bc6aeeca53bf2a28e486e9"
300-
integrity sha512-Wx5eXJKqst3SJ2T2N3JZ/ZLnvef+IGhYu60kXnMQdbQeJAJARX8wIkDvBpiB0y8IjsL/fY4tcZS9DX6ewdoIcg==
301-
302-
kmp-tor.resource-exec-tor.mingw@408.16.1:
303-
version "408.16.1"
304-
resolved "https://registry.yarnpkg.com/kmp-tor.resource-exec-tor.mingw/-/kmp-tor.resource-exec-tor.mingw-408.16.1.tgz#2d0eed2da543695a0c692be6607b5ebb63dc3818"
305-
integrity sha512-Wb7yAv1cUtZLLvOPajuEKhKHqrtCQxX0rNZIg3cZtTA+kMe+9y4R1WI2VqSnFoOg1gO7wWd6Tnuuv4gOzpOuSw==
306-
307-
kmp-tor.resource-geoip@408.16.1:
308-
version "408.16.1"
309-
resolved "https://registry.yarnpkg.com/kmp-tor.resource-geoip/-/kmp-tor.resource-geoip-408.16.1.tgz#759d308a58042e5ffa65d20f471409851687fdfd"
310-
integrity sha512-JiNkSOZsQRHfy7VJzy/ofIx2hCPzspgNpWjrOComG5JgwPm/vWq9oG6vZoYashvZMJRN34/iluIBPVY1AYOaWw==
277+
kmp-tor.resource-exec-tor.all@408.16.4:
278+
version "408.16.4"
279+
resolved "https://registry.yarnpkg.com/kmp-tor.resource-exec-tor.all/-/kmp-tor.resource-exec-tor.all-408.16.4.tgz#07bc82b12d93e8d42f0fb0fcc653bb9c38eb1e45"
280+
integrity sha512-OpgOs2V4eCfSsHjWv9zvfAs6X5Faqj7rGuMFTBRA7xJv8I5Zh1XO/uq6yK+fhPOSI6+6BPxlspAXAAi4yOPbZA==
281+
dependencies:
282+
kmp-tor.resource-exec-tor.linux-android "408.16.4"
283+
kmp-tor.resource-exec-tor.linux-libc "408.16.4"
284+
kmp-tor.resource-exec-tor.macos "408.16.4"
285+
kmp-tor.resource-exec-tor.mingw "408.16.4"
286+
287+
kmp-tor.resource-exec-tor.linux-android@408.16.4:
288+
version "408.16.4"
289+
resolved "https://registry.yarnpkg.com/kmp-tor.resource-exec-tor.linux-android/-/kmp-tor.resource-exec-tor.linux-android-408.16.4.tgz#b2da022942cafd8aa8a486edaf7f455e8f6a231d"
290+
integrity sha512-067ppCwcgUf/g5bbQmUytBOKTJRY6oABHab1BbK8Jr4g1lO76RjxrZfkobghncW7Dx/v+dw8UJQwoDXzNRXjsg==
291+
292+
kmp-tor.resource-exec-tor.linux-libc@408.16.4:
293+
version "408.16.4"
294+
resolved "https://registry.yarnpkg.com/kmp-tor.resource-exec-tor.linux-libc/-/kmp-tor.resource-exec-tor.linux-libc-408.16.4.tgz#95313918f1db3849049ac692593a35ad28bd5097"
295+
integrity sha512-CsaE5YvZrpQC8hsl9uSKuH1Imjz6R0WVkgLGZNwcEjXZpKx3h0kU8ECu8tjtS/FJ3SkMgaNHTI4tYSekB1bkgw==
296+
297+
kmp-tor.resource-exec-tor.macos@408.16.4:
298+
version "408.16.4"
299+
resolved "https://registry.yarnpkg.com/kmp-tor.resource-exec-tor.macos/-/kmp-tor.resource-exec-tor.macos-408.16.4.tgz#eb4b4c634a4c30f36a75533d8fd1f461b149851b"
300+
integrity sha512-mUBxHBknKLs0FEGVDKGQNqdRB4rRdrp6ruknzWZ8chz61fvW9Vv/oaJ0TAl2WFGo3HVztu+tCBL9JQJjk+Ho5g==
301+
302+
kmp-tor.resource-exec-tor.mingw@408.16.4:
303+
version "408.16.4"
304+
resolved "https://registry.yarnpkg.com/kmp-tor.resource-exec-tor.mingw/-/kmp-tor.resource-exec-tor.mingw-408.16.4.tgz#2857507726ac9f8e63fdb675f0c76cf6f351e3e7"
305+
integrity sha512-xmf0PGnjrjD2UqlLAKRL+dNS7RG6yWuvImam1mns2xhpm099smiPS6F6v6V6Fws4KpXlPiDiM692eGSFaSUdPA==
306+
307+
kmp-tor.resource-geoip@408.16.4:
308+
version "408.16.4"
309+
resolved "https://registry.yarnpkg.com/kmp-tor.resource-geoip/-/kmp-tor.resource-geoip-408.16.4.tgz#2769a048174dd7a43dae22628da237908e7754c1"
310+
integrity sha512-1ERUhik4veZlpA8A11Z/pi3M/biwpSZke2zo/UGVTfBFortt35GICvP84qrHKBdePu37CH9nZ861QEtb1ueGAA==
311311

312312
kotlin-web-helpers@2.0.0:
313313
version "2.0.0"

README.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ runtime.enqueue(
9797
- Add runtime dependency
9898
```kotlin
9999
dependencies {
100-
implementation("io.matthewnelson.kmp-tor:runtime:2.3.0")
100+
implementation("io.matthewnelson.kmp-tor:runtime:2.4.0-SNAPSHOT")
101101
}
102102
```
103103

@@ -120,19 +120,19 @@ runtime.enqueue(
120120
See [kmp-tor-samples][url-kmp-tor-samples]
121121

122122
<!-- TAG_VERSION -->
123-
[badge-latest-release]: https://img.shields.io/badge/latest--release-2.3.0-5d2f68.svg?logo=torproject&style=flat&logoColor=5d2f68
123+
[badge-latest-release]: https://img.shields.io/badge/latest--release-2.4.0--SNAPSHOT-5d2f68.svg?logo=torproject&style=flat&logoColor=5d2f68
124124
[badge-license]: https://img.shields.io/badge/license-Apache%20License%202.0-blue.svg?style=flat
125125

126126
<!-- TAG_DEPENDENCIES -->
127127
[badge-androidx-startup]: https://img.shields.io/badge/androidx.startup-1.1.1-6EDB8D.svg?logo=android
128128
[badge-coroutines]: https://img.shields.io/badge/kotlinx.coroutines-1.10.2-blue.svg?logo=kotlin
129129
[badge-encoding]: https://img.shields.io/badge/encoding-2.4.0-blue.svg?style=flat
130-
[badge-kmp-process]: https://img.shields.io/badge/kmp--process-0.2.1-blue.svg?style=flat
131-
[badge-kmp-tor-common]: https://img.shields.io/badge/kmp--tor--common-2.2.0-blue.svg?style=flat
132-
[badge-kotlin]: https://img.shields.io/badge/kotlin-2.1.10-blue.svg?logo=kotlin
130+
[badge-kmp-process]: https://img.shields.io/badge/kmp--process-0.3.0-blue.svg?style=flat
131+
[badge-kmp-tor-common]: https://img.shields.io/badge/kmp--tor--common-2.3.0-blue.svg?style=flat
132+
[badge-kotlin]: https://img.shields.io/badge/kotlin-2.1.21-blue.svg?logo=kotlin
133133
[badge-kotlincrypto-bitops]: https://img.shields.io/badge/kotlincrypto.bitops-0.2.0-blue.svg?style=flat
134134
[badge-kotlincrypto-hash]: https://img.shields.io/badge/kotlincrypto.hash-0.7.0-blue.svg?style=flat
135-
[badge-kotlincrypto-random]: https://img.shields.io/badge/kotlincrypto.random-0.5.0-blue.svg?style=flat
135+
[badge-kotlincrypto-random]: https://img.shields.io/badge/kotlincrypto.random-0.5.1-blue.svg?style=flat
136136

137137
<!-- TAG_PLATFORMS -->
138138
[badge-platform-android]: https://img.shields.io/badge/-android-6EDB8D.svg?style=flat

build-logic/src/main/kotlin/-KmpConfigurationExtension.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ fun KmpConfigurationExtension.configureShared(
6565
}
6666
}
6767

68+
androidNativeAll()
6869
iosAll()
6970
linuxAll()
7071
macosAll()
@@ -90,8 +91,8 @@ fun KmpConfigurationExtension.configureShared(
9091

9192
fun KmpConfigurationContainerDsl.androidLibrary(
9293
namespace: String,
93-
buildTools: String? = "34.0.0",
94-
compileSdk: Int = 34,
94+
buildTools: String? = "35.0.1",
95+
compileSdk: Int = 35,
9596
minSdk: Int = 16,
9697
javaVersion: JavaVersion = JavaVersion.VERSION_1_8,
9798
action: (Action<TargetAndroidContainer.Library>)? = null,

build-logic/src/main/kotlin/publication.gradle.kts

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,18 +13,10 @@
1313
* See the License for the specific language governing permissions and
1414
* limitations under the License.
1515
**/
16-
import org.gradle.plugins.signing.SigningExtension
17-
1816
plugins {
1917
id("com.vanniktech.maven.publish")
2018
}
2119

22-
if (!version.toString().endsWith("-SNAPSHOT")) {
23-
extensions.configure<SigningExtension>("signing") {
24-
// useGpgCmd()
25-
}
26-
}
27-
2820
tasks.withType<AbstractArchiveTask>().configureEach {
2921
isPreserveFileTimestamps = false
3022
isReproducibleFileOrder = true

gh-pages/publish.sh

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,8 @@ cd ..
3030
cp -aR build/dokka/html/* gh-pages/$REPO_NAME
3131

3232
cd "$DIR_SCRIPT/$REPO_NAME"
33-
sed -i "s|module:|module:library/|g" "package-list"
33+
PACKAGE_LIST="$(sed "s|module:|module:library/|g" "package-list")"
34+
echo "$PACKAGE_LIST" > "package-list"
3435

3536
git add --all
3637
git commit -S --message "Update dokka docs"

gradle.properties

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,10 @@ POM_DEVELOPER_ID=05nelsonm
3535
POM_DEVELOPER_NAME=Matthew Nelson
3636
POM_DEVELOPER_URL=https://github.com/05nelsonm/
3737

38-
VERSION_NAME=2.3.1-SNAPSHOT
38+
VERSION_NAME=2.4.0-SNAPSHOT
3939
# 0.1.0-alpha01 = 00 01 00 11
4040
# 0.1.0-beta01 = 00 01 00 21
4141
# 0.1.0-rc01 = 00 01 00 31
4242
# 0.1.0 = 00 01 00 99
4343
# 1.1.0 = 01 01 00 99
44-
VERSION_CODE=02030199
44+
VERSION_CODE=02040099

gradle/libs.versions.toml

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -11,25 +11,23 @@ bouncy-castle = "1.80"
1111

1212
encoding = "2.4.0"
1313

14-
gradle-android = "8.7.3"
14+
gradle-android = "8.9.3"
1515
gradle-binary-compat = "0.17.0"
1616
gradle-dokka = "2.0.0"
17-
gradle-kmp-configuration = "0.4.0"
18-
gradle-kotlin = "2.1.10"
19-
gradle-publish-maven = "0.30.0"
17+
gradle-kmp-configuration = "0.4.1"
18+
gradle-kotlin = "2.1.21"
19+
gradle-publish-maven = "0.32.0"
2020

2121
immutable = "0.2.0"
2222

2323
jetbrains-skiko = "0.9.4.2"
2424

25-
kmp-process = "0.2.1"
26-
kmp-tor-common = "2.2.0"
27-
kmp-tor-resource = "408.16.1" # Upgrade yarn.lock when updating via `./gradlew kotlinUpgradeYarnLock`
28-
kotlincrypto-catalog = "0.7.0" # Utilized from settings.gradle.kts
25+
kmp-process = "0.3.0"
26+
kmp-tor-common = "2.3.0"
27+
kmp-tor-resource = "408.16.4" # Upgrade yarn.lock when updating via `./gradlew kotlinUpgradeYarnLock`
28+
kotlincrypto-catalog = "0.7.1" # Utilized from settings.gradle.kts
2929
kotlinx-coroutines = "1.10.2"
30-
ktor = "3.1.0"
31-
32-
okio = "3.10.2"
30+
ktor = "3.1.3"
3331

3432
[libraries]
3533
androidx-startup-runtime = { module = "androidx.startup:startup-runtime", version.ref = "androidx-startup" }
@@ -60,15 +58,13 @@ bouncy-castle = { module = "org.bouncycastle:bcprov-jdk18on", vers
6058

6159
jetbrains-skiko = { module = "org.jetbrains.skiko:skiko-awt", version.ref = "jetbrains-skiko" }
6260

61+
kmp-tor-resource-android-unit-test-tor = { module = "io.matthewnelson.kmp-tor:resource-android-unit-test-tor", version.ref = "kmp-tor-resource" }
62+
kmp-tor-resource-compilation-exec-tor = { module = "io.matthewnelson.kmp-tor:resource-compilation-exec-tor", version.ref = "kmp-tor-resource" }
6363
kmp-tor-resource-exec-tor = { module = "io.matthewnelson.kmp-tor:resource-exec-tor", version.ref = "kmp-tor-resource" }
6464
kmp-tor-resource-noexec-tor = { module = "io.matthewnelson.kmp-tor:resource-noexec-tor", version.ref = "kmp-tor-resource" }
65-
kmp-tor-resource-android-unit-test-tor = { module = "io.matthewnelson.kmp-tor:resource-android-unit-test-tor", version.ref = "kmp-tor-resource" }
6665
kotlinx-coroutines-test = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-test", version.ref = "kotlinx-coroutines" }
6766
ktor-network = { module = "io.ktor:ktor-network", version.ref = "ktor" }
6867

69-
okio-okio = { module = "com.squareup.okio:okio", version.ref = "okio" }
70-
okio-node = { module = "com.squareup.okio:okio-nodefilesystem", version.ref = "okio" }
71-
7268
[plugins]
7369
android-library = { id = "com.android.library", version.ref = "gradle-android" }
7470
binary-compat = { id = "org.jetbrains.kotlinx.binary-compatibility-validator", version.ref = "gradle-binary-compat" }

library/runtime-core/api/runtime-core.klib.api

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// Klib ABI Dump
2-
// Targets: [iosArm64, iosSimulatorArm64, iosX64, js, linuxArm64, linuxX64, macosArm64, macosX64]
3-
// Alias: native => [iosArm64, iosSimulatorArm64, iosX64, linuxArm64, linuxX64, macosArm64, macosX64]
2+
// Targets: [androidNativeArm32, androidNativeArm64, androidNativeX64, androidNativeX86, iosArm64, iosSimulatorArm64, iosX64, js, linuxArm64, linuxX64, macosArm64, macosX64]
3+
// Alias: native => [androidNativeArm32, androidNativeArm64, androidNativeX64, androidNativeX86, iosArm64, iosSimulatorArm64, iosX64, linuxArm64, linuxX64, macosArm64, macosX64]
44
// Rendering settings:
55
// - Signature version: 2
66
// - Show manifest properties: true

library/runtime-core/build.gradle.kts

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@
1313
* See the License for the specific language governing permissions and
1414
* limitations under the License.
1515
**/
16+
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget
17+
import org.jetbrains.kotlin.konan.target.Family
18+
1619
plugins {
1720
id("configuration")
1821
}
@@ -87,5 +90,32 @@ kmpConfiguration {
8790
}
8891
}
8992
}
93+
94+
kotlin {
95+
val cInteropDir = projectDir
96+
.resolve("src")
97+
.resolve("nativeInterop")
98+
.resolve("cinterop")
99+
100+
targets.filterIsInstance<KotlinNativeTarget>().forEach target@ { target ->
101+
when (target.konanTarget.family) {
102+
Family.ANDROID, Family.IOS, Family.TVOS, Family.WATCHOS -> {}
103+
else -> return@target
104+
}
105+
106+
target.compilations["main"].cinterops.create("network") {
107+
definitionFile.set(cInteropDir.resolve("$name.def"))
108+
}
109+
}
110+
111+
project.afterEvaluate {
112+
val commonizeTask = project.tasks.findByName("commonizeCInterop") ?: return@afterEvaluate
113+
114+
project.tasks.all {
115+
if (!name.endsWith("MetadataElements")) return@all
116+
dependsOn(commonizeTask)
117+
}
118+
}
119+
}
90120
}
91121
}

0 commit comments

Comments
 (0)