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
Initial Kotlin Multiplatform setup #196
base: master
Are you sure you want to change the base?
Conversation
…m root build.gradle.kts)
…lugins to match existing version
…ing for 'fetcher' subprojects
…atform # Conflicts: # assertions/build.gradle.kts # build.gradle.kts # buildSrc/build.gradle.kts # buildSrc/src/main/kotlin/buildsrc/convention/kotlin-jvm.gradle.kts # buildSrc/src/main/kotlin/buildsrc/convention/kotlin-multiplatform.gradle.kts # dsl/build.gradle.kts # fetcher/async-fetcher/build.gradle.kts # fetcher/base-fetcher/build.gradle.kts # fetcher/browser-fetcher/build.gradle.kts # fetcher/http-fetcher/build.gradle.kts # html-parser/build.gradle.kts # test-utils/build.gradle.kts
…atform # Conflicts: # buildSrc/src/main/kotlin/Deps.kt # html-parser/src/commonMain/kotlin/it/skrape/selects/DocElement.kt # html-parser/src/jvmMain/kotlin/it/skrape/selects/Doc.kt # html-parser/src/jvmMain/kotlin/it/skrape/selects/DomTreeElement.kt
I've picked this back up again, but I've come across an issue with Kover. 0.5 had a bug Kotlin/kotlinx-kover#183, and now 0.6 does too Kotlin/kotlinx-kover#221 |
Hey awesome news you proceed working on the PR 🙏🚀 Is kover / make the gradle plugins work the last thing that is missing to finish the PR? And big thanks again for your contribution 🔥 I really appreciate. |
Apologies for the delay, and thanks for the nudge! :) I'll try and get this ready-for-review in the next couple of hours. I've got an idea of how to fix Kover, so I'll give that a go. I've updated the main description with the TODOs. |
publishing { | ||
repositories { | ||
// publish to local dir, for testing | ||
maven(rootProject.layout.buildDirectory.dir("maven-internal")) { | ||
name = "LocalProjectDir" | ||
} | ||
} | ||
publications.withType<MavenPublication>().configureEach { | ||
artifact(javadocJar) | ||
|
||
createSkrapeItPom { | ||
name.set("skrape{it} ${project.name}") | ||
} | ||
} | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For some reason Sonatype isn't defined here..
I would expect to see something like this:
The same in the publish-jvm
convention plugin...
Was it removed, and it should be re-added now?
Initial groundwork for Kotlin Multiplatform #192
Depends on #194
I was expect this to be a lot more difficult! I indended just to do one module, but I found that they were all very easy to migrate.
html-parser
was the most involved.That said, I can't run most of the tests (I'm on Windows), so I could have broken some stuff. And the really hard work of actually implementing JS and/or Native code can be done later.
WIP
Configure Maven publishing buildSrc plugin (shouldn't be too much work to do, I can copy & paste some existing config that works)I've briefly tested this locally and it seems to work as expected.Notes
expect
/actual
definitions - so check them out and see if they make sense. Theexpect
definitions are essentially like interfaces that the platform code will implement.HttpFetcher
andBrowserFetcher
objects are pretty redundant, as they don't significantly extend from theBlockingFetcher
interface. I think you can refactor the common code to only rely on the interface.