Kotlin / kotlinx.collections.immutable

Immutable persistent collections for Kotlin
Apache License 2.0
1.12k stars 56 forks source link

feat: add jpms support with `module-info.java` #175

Open sgammon opened 4 months ago

sgammon commented 4 months ago

Summary

This PR adds a module-info.java definition, bringing kotlinx-collections-immutable to full JPMS support; downstream users can use the new module with the following directive:

module-info.java

module your.module.here {
  requires kotlinx.collections.immutable;
}

Fixes and closes #157

Other changes

In general, the build was cleaned up, and Dependency Locking and Dependency Verification are now turned on, as is the case for other Kotlin projects.

Trying it out

This is still a draft because it is being tested downstream. If you would like to test this module, you can do so with:

build.gradle.kts

dependencies {
  implementation("org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.8-rc-1")
}

settings.gradle.kts

dependencyResolutionManagement {
  repositories {
    mavenCentral()

    // 👇  this repo
    maven {
      name = "elide-snapshots"
      url = uri("https://elide-snapshots.storage-download.googleapis.com/repository/v3/")
    }
  }
}

Changelog

sgammon commented 4 months ago

cc / @qurbonzoda @daniel-jasinski @Sporking @qwwdfsad

daniel-jasinski commented 4 months ago

Good PR, but there is a lot of housekeeping and the original intention gets lost in all the minutiae. I would suggest splitting this PR, at least into the chore and feature parts.

sgammon commented 3 months ago

@daniel-jasinski Thank you for that review

@ilya-g Okay, no problem. I will apply those changes. Thank you as well