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

Remove legacy Meta, bring Optics KSP #2599

Merged
merged 28 commits into from Dec 22, 2021
Merged

Remove legacy Meta, bring Optics KSP #2599

merged 28 commits into from Dec 22, 2021

Conversation

nomisRev
Copy link
Member

@nomisRev nomisRev commented Dec 16, 2021

(Disclaimer: edited by @serras)

This PR cleans the slate for the Meta story:

  • Completely removes Meta from the repo, everything is now in https://github.com/arrow-kt/arrow-meta.
  • The Optics plug-in based on KSP now lives in this repo, since it does not use Meta anymore. As a result, a few functions from the arrow-meta-test package have been copied there.
  • Updates the Kotlin version to 1.6.10 (the latest at this moment), this is required by both the ksp and kotlin-compile-testing packages.

The update of kotlinx-coroutines was tried, but it has been unsuccessful due to breaking changes in version 1.6. This would need further investigation.

@serras
Copy link
Member

serras commented Dec 16, 2021

Should we move the Optics KSP module here? It no longer depends on Meta, but the docs here do depend on the plug-in.

@nomisRev
Copy link
Member Author

We could move it into the Arrow Optics module yes, it will probably make the most sense to develop the compiler plugin there that. I hope it goes green with the bumped versions 🤞

@@ -32,12 +32,6 @@ project(":arrow-core-test").projectDir = file("arrow-libs/core/arrow-core-test")
include("arrow-continuations")
project(":arrow-continuations").projectDir = file("arrow-libs/core/arrow-continuations")

include("arrow-meta")
Copy link
Member

Choose a reason for hiding this comment

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

🥳

)

dokkaGfmMultiModule { removeChildTasks(undocumentedProjects) }
dokkaHtmlMultiModule { removeChildTasks(undocumentedProjects) }
dokkaJekyllMultiModule { removeChildTasks(undocumentedProjects) }
}

apiValidation {
ignoredProjects.addAll(listOf("arrow-optics-ksp", "arrow-optics-test", "arrow-site"))
Copy link
Member Author

Choose a reason for hiding this comment

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

👌

@serras serras mentioned this pull request Dec 20, 2021
1 task
@serras serras changed the title Optics ksp & remove legacy meta Remove legacy Meta, bring Optics KSP Dec 20, 2021
@nomisRev
Copy link
Member Author

@serras IT'S GREEEN!!! 😍 😍 😍

@serras
Copy link
Member

serras commented Dec 21, 2021

Finally! I’ll approve it, but I think you and @raulraja should have a look too and merge it if you are OK.

@@ -14,7 +14,7 @@ kotlin {
dependencies {
api(projects.arrowContinuations)
api(projects.arrowAnnotations)
implementation(libs.kotlin.stdlibCommon)
api(libs.kotlin.stdlibCommon)
Copy link
Member Author

@nomisRev nomisRev Dec 21, 2021

Choose a reason for hiding this comment

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

@JavierSegoviaCordoba do you know if this is correct?
Since we expose types from Kotlin Std from public API, it should be marked as api right?

Copy link
Member Author

@nomisRev nomisRev left a comment

Choose a reason for hiding this comment

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

Couple of small left overs we need to clean up.
Thank you for looking into this @serras! This is great 👏 👏 👏 🥳

@@ -36,7 +36,7 @@ class EitherTest : UnitSpec() {
init {
testLaws(
MonoidLaws.laws(Monoid.either(Monoid.string(), Monoid.int()), ARB),
FxLaws.suspended<EitherEffect<String, *>, Either<String, Int>, Int>(
/*FxLaws.suspended<EitherEffect<String, *>, Either<String, Int>, Int>(
Copy link
Member Author

Choose a reason for hiding this comment

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

Can these not be uncommented without failing the build @serras ?

Copy link
Member

Choose a reason for hiding this comment

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

Unfortunately not :(

@@ -0,0 +1,106 @@
//package arrow.optics.arrow.optics
Copy link
Member Author

Choose a reason for hiding this comment

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

This file can be deleted, it's duplicated with DSLTest.kt inside arrow-optics/test

@nomisRev
Copy link
Member Author

@serras I cannot approve since I originally opened this PR. If we clean up these last leftovers it's ready to merge.

serras and others added 2 commits December 21, 2021 13:25
Co-authored-by: Simon Vergauwen <nomisRev@users.noreply.github.com>
@serras
Copy link
Member

serras commented Dec 21, 2021

There seems to be a flaky test in arrow-fx-stm

@nomisRev
Copy link
Member Author

@serras mmm, I saw TMapTest failed for a property that has multiple conflicting keys 🤔
Don't think we should block this PR for it, since it should be unrelated. I retriggered CI.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants