05nelsonm / kotlin-components Goto Github PK
View Code? Open in Web Editor NEWBuild & publishing tools for several Kotlin Multiplatform Libraries
Home Page: https://kotlin-components.matthewnelson.io
License: Apache License 2.0
Build & publishing tools for several Kotlin Multiplatform Libraries
Home Page: https://kotlin-components.matthewnelson.io
License: Apache License 2.0
Kotlin 1.8.0
introduced a new source set layout version for android to mitigate naming conflicts. This change should be applied automatically for kotlin-component
consumers.
Shouldn't be a big issue as androidMain
stays the same, and is the only thing considered in the publications.
Move dependencies to to the /kotlin
directory in their own individual files. This will help with CI caching, and make it a bit more pleasant to work with as there will be no more need utilize imports.
New target just dropped in Kotlin 1.8.0
... watchosDeviceArm64
Currently, JavaVersion
is specifically declared in all module's KmpTarget
.
Removing such declaration will rely on the default JavaVersion
(11) used by KmpTarget
s.
the jvmJsCommon
source set is not being enabled when property KMP_TARGETS
does not contain both JVM
and JS
.
publish.sh --host darwin
only builds ios
+ macos
+ tvos
+ watchos
KMP_TARGETS
. It should also build JVM and JS targets so that tests are run to ensure any platform specific code for those are working properly.
kmp
plugin needs some work.
ios
shortcut target)iosSimulator
issueCurrently, all androidNative
targets depend on intermediate source set native
. They should actually depend on the intermediate source set unix
.
Add support for npm-publish plugin for publishing js projects to the respective npm registry. Should also include ability to publish to a local npm instances for testing/development purposes.
Add to doc macosCommonMain
in hierarchical structure diagram
There is a need to add an additional argument to setupModule
via the kmpConfiguration
plugin extension. It is to apply plugins after source sets are configured, such as the kotlinx-atomicfu
plugin.
Instead of having to declare each individual target:
kmpConfiguration {
setupMultiplatform(targets=
setOf(
KmpTarget.Jvm.Jvm.DEFAULT,
KmpTarget.NonJvm.JS.DEFAULT,
// ...
)
)
}
Add the ability to use the +
operator to add all targets for a given platform
kmpConfiguration {
setupMultiplatform(targets=
setOf(
KmpTarget.Jvm.Jvm.DEFAULT,
KmpTarget.NonJvm.JS.DEFAULT,
) +
KmpTarget.NonJvm.Native.Unix.Darwin.Ios.ALL_DEFAULT +
KmpTarget.NonJvm.Native.Unix.Darwin.Macos.ALL_DEFAULT +
KmpTarget.NonJvm.Native.Unix.Darwin.Tvos.ALL_DEFAULT +
KmpTarget.NonJvm.Native.Unix.Darwin.Watchos.ALL_DEFAULT +
KmpTarget.NonJvm.Native.Unix.Linux.ALL_DEFAULT +
KmpTarget.NonJvm.Native.Mingw.ALL_DEFAULT,
commonMainSourceSet = {
dependencies {
// ...
}
}
)
}
Currently, if applying dependencies via
setupModule(
// ...
commonMainSourceSet = {
dependencies {
// my common dependencies
}
}
)
the dependencies are not propagated to the intermediary source sets, because the commonMainSourceSet
argument is invoked before anything is setup. The invocation should come after setting up intermediary source sets.
https://kotlinlang.org/docs/multiplatform-dsl-reference.html#targets
androidNativeArm32
androidNativeArm64
androidNativeX86
androidNativeX64
Refactor the Android
Kmp target by adding default configurations
Artifacts for group io.matthewnelson
have been migrated from oss.sonatype.org
to s01.oss.sonatype.org
. As such, need to update publishing plugin from SonatypeHost.DEFAULT
to SonatypeHost.S01
.
add support for the following new targets:
linuxArm64
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.