Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update Kotlin Native targets #65

Merged
merged 3 commits into from
Feb 8, 2023
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -41,62 +41,77 @@ if (isKotlinMultiplatform) {
nodejs()
}

// TIER 1
linuxX64()

mingwX64()

iosArm32()
iosArm64()
macosX64()
macosArm64()
iosSimulatorArm64()
iosX64()
macosArm64()
macosX64()
tvosArm64()
tvosSimulatorArm64()
tvosX64()
watchosArm32()
watchosArm64()
iosArm64() // soon in tier 1

// TIER 2
linuxArm64()
watchosSimulatorArm64()
watchosX64()
watchosX86()
Copy link
Member

@nomisRev nomisRev Feb 8, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should just do a hard removal targets like this 🤔
I can see on sonatype that we get very little downloads for watchosX86, but we're getting some... These targets are getting < 500 downloads every month, so arguably its all toy projects.

I think there are 3 options:

  • Follow same deprecation - removal process as Kotlin itself
  • Remove in 2.x.x, regardless of what Kotlin is doing
  • Hard remove in 1.2.0

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Probably watchosX86 projects are not using that target; they are just targeting all targets that exist as coroutines library does (and other JetBrains libraries).

And that is the real problem, when we remove those targets all of those libraries will break. I would keep this PR as a draft and merge it in the future following Kotlin (and probably coroutines) practices.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What do you think about not removing any target, but adding the new ones? They won’t be removed until 1.9 at least.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@JavierSegoviaCordoba I think we should merge (and release a new version of this library) now, so we can start targeting those targets in 1.8.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Up to you :)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we're not removing anything then it's definitely not an issue. We need to make sure to update the CI workflow of Arrow when we update.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Follow same deprecation - removal process as Kotlin itself
Remove in 2.x.x, regardless of what Kotlin is doing

Then we can follow either of these two strategies, whichever comes first.

watchosArm32()
watchosArm64()
tvosSimulatorArm64()
tvosX64()
tvosArm64()

// TIER 3
androidNativeArm32()
androidNativeArm64()
androidNativeX86()
androidNativeX64()
mingwX64()
watchosDeviceArm64()

sourceSets {
val commonMain by getting
val mingwX64Main by getting
val linuxX64Main by getting
val iosArm32Main by getting
val iosArm64Main by getting
val macosX64Main by getting
val macosArm64Main by getting
val iosSimulatorArm64Main by getting
val iosX64Main by getting
val macosArm64Main by getting
val macosX64Main by getting
val tvosArm64Main by getting
val tvosSimulatorArm64Main by getting
val tvosX64Main by getting
val watchosArm32Main by getting
val watchosArm64Main by getting
val iosArm64Main by getting
val linuxArm64Main by getting
val watchosSimulatorArm64Main by getting
val watchosX64Main by getting
val watchosX86Main by getting
val watchosArm32Main by getting
val watchosArm64Main by getting
val tvosSimulatorArm64Main by getting
val tvosX64Main by getting
val tvosArm64Main by getting
val androidNativeArm32Main by getting
val androidNativeArm64Main by getting
val androidNativeX86Main by getting
val androidNativeX64Main by getting
val mingwX64Main by getting
val watchosDeviceArm64Main by getting

create("nativeMain") {
dependsOn(commonMain)
mingwX64Main.dependsOn(this)
linuxX64Main.dependsOn(this)
iosArm32Main.dependsOn(this)
iosArm64Main.dependsOn(this)
macosX64Main.dependsOn(this)
macosArm64Main.dependsOn(this)
iosSimulatorArm64Main.dependsOn(this)
iosX64Main.dependsOn(this)
macosArm64Main.dependsOn(this)
macosX64Main.dependsOn(this)
tvosArm64Main.dependsOn(this)
tvosSimulatorArm64Main.dependsOn(this)
tvosX64Main.dependsOn(this)
watchosArm32Main.dependsOn(this)
watchosArm64Main.dependsOn(this)
iosArm64Main.dependsOn(this)
linuxArm64Main.dependsOn(this)
watchosSimulatorArm64Main.dependsOn(this)
watchosX64Main.dependsOn(this)
watchosX86Main.dependsOn(this)
watchosArm32Main.dependsOn(this)
watchosArm64Main.dependsOn(this)
tvosSimulatorArm64Main.dependsOn(this)
tvosX64Main.dependsOn(this)
tvosArm64Main.dependsOn(this)
androidNativeArm32Main.dependsOn(this)
androidNativeArm64Main.dependsOn(this)
androidNativeX86Main.dependsOn(this)
androidNativeX64Main.dependsOn(this)
mingwX64Main.dependsOn(this)
watchosDeviceArm64Main.dependsOn(this)
}
}
}
Expand Down