-
Notifications
You must be signed in to change notification settings - Fork 24
Make the project multi-modules #725
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
Conversation
8c712dc
to
1b46ff1
Compare
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.
The project now publishes a Maven artifact under artifact id lightning-kmp-core
instead of lightning-kmp
, which affects dependant projects.
We could copy eclair, with publishes a top-level eclair
module and also several artifacts like eclair-core
or eclair-node
. So we'd have:
lightning-kmp
root projectlightning-kmp-core
modulelightning-kmp-db
module
If you only need the core dependency, you would run ./gradlew :lightning-kmp-core:publishToMavenLocal
. If you need core+db, you run ./gradlew publishToMavenLocal
. Not quite sure how to do make this happen in gradle though.
Another option could be to modify the MavenPublication task and rename the lightning-kmp-core
Maven artifact to lightning-kmp
, so that we keep the same id as before.
|
True but CI takes a long time to build... |
Actually, linking the root |
Instead of using a root project, using https://github.com/Kotlin/kotlinx-io project as reference.
Using modules allows a finer control of classes visibility and will be especially useful for a future
db
module containing a default sqldelight implementation (see sqldelight/sqldelight#1333 (comment)).src
directory.