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

Upgrading Kotlin and Gradle #22

Open
wants to merge 6 commits into
base: master
Choose a base branch
from

Conversation

severn-everett
Copy link

Kotlin has been upgraded to 1.9.23; Gradle has been upgraded to 8.7 and now uses checksum to verify the wrapper artifact; The Gradle files have been converted to use the Kotlin DSL

@severn-everett
Copy link
Author

A couple of comments:

  • I moved the configuration code in publish.gradle into build.gradle.kts so that all configuration code resides in that file
  • If I've missed any functionality when converting the configuration code to dogfood on the Kotlin DSL, please let me know
  • Likewise, I'd imagine that the required Gradle and Kotlin versions in InfraPlugin need to be upped, but I'd need some input as to what values they should be incremented to
  • Using the built-in Gradle code for parsing versions was deprecated with no native replacement, so I included the Semver4J library to replace that functionality
  • The semantics of the functionality to print out before a task if teamcity has been enabled has slightly changed: if there is no source set to conduct any task on (e.g. running tests), then nothing will be printed out. Might not be ideal, but at least it removed the deprecated Gradle code
  • There are quite a few deprecation warnings in NativeMultiplatform.kt that I have left alone; I was planning to address them in issue Implement new way to configure targets #23, the build issue that drew me over here while I was looking to contribute to kotlinx.datetime

@ilya-g
Copy link
Member

ilya-g commented Apr 5, 2024

I wouldn't rush upgrading versions of Gradle and Kotlin here higher than those used in the libraries that use this plugin to avoid potential incompatibilities.

@severn-everett
Copy link
Author

severn-everett commented Apr 5, 2024

From what I can tell, the libraries that use this plugin are:

  • kotlinx-benchmark - Kotlin 1.9.21/Gradle 7.4.2
  • kotlinx-cli - Kotlin 1.9.10/Gradle 7.6.2
  • kotlinx.collections.immutable - Kotlin 1.9.21/Gradle 7.4.2
  • kotlin-datetime - Kotlin 1.9.21/Gradle 8.0.2

I don't think that Kotlin being at the latest minor version would affect kotlinx-cli, but I can drop Gradle to 7.6.4, given that's the greatest common major version.

EDIT: kotlinx-cli has been marked as obsolete, so that leaves the other three libraries

@ilya-g
Copy link
Member

ilya-g commented Apr 8, 2024

According to the versions above, I think it would be reasonable to use Gradle 7.4.2 and Kotlin 1.9.21.

@severn-everett
Copy link
Author

Would I be able to get this closed soon so that I can work on the other issue I mentioned?

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.

2 participants