Skip to content

Commit

Permalink
bump to java 17, kotlin 1.9.10 and libraries (#191)
Browse files Browse the repository at this point in the history
- Bump to gradle 8.4 and jvm toolchain 17
- Change ci and code to jvm 17 and kotlin to 1.9.20
- Bump several libraries.
- Plugin replace ktfmt with Spotless (with ktfmt)
- Bumped Infinitic version to 0.11.7
- Separate build and test and lint

Co-authored-by: @Ouriel and @geomagilles
  • Loading branch information
Ouriel authored Nov 6, 2023
1 parent a37f35b commit 7471689
Show file tree
Hide file tree
Showing 141 changed files with 6,321 additions and 1,343 deletions.
60 changes: 30 additions & 30 deletions .addlicense.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,66 +10,66 @@ hasLicensePatterns:

# File extension commenting format configuration
fileExtensions:
- extensions: [".c", ".h"]
- extensions: [ ".c", ".h" ]
top: "/*"
mid: " * "
bot: "*/"
- extensions: [".js", ".mjs", ".cjs", ".jsx", ".tsx", ".css", ".tf", ".ts", ".java", ".kt", ".kts"]
- extensions: [ ".js", ".mjs", ".cjs", ".jsx", ".tsx", ".css", ".tf", ".ts", ".java", ".kt", ".kts" ]
top: "/**"
mid: " * "
bot: " */"
- extensions:
[
".cc",
".cpp",
".cs",
".go",
".hh",
".hpp",
".m",
".mm",
".proto",
".rs",
".scala",
".swift",
".dart",
".groovy",
".php",
".cc",
".cpp",
".cs",
".go",
".hh",
".hpp",
".m",
".mm",
".proto",
".rs",
".scala",
".swift",
".dart",
".groovy",
".php",
]
top: ""
mid: "// "
bot: ""
- extensions:
[
".py",
".sh",
".yaml",
".yml",
".dockerfile",
"dockerfile",
".rb",
"gemfile",
".py",
".sh",
".yaml",
".yml",
".dockerfile",
"dockerfile",
".rb",
"gemfile",
]
top: ""
mid: "# "
bot: ""
- extensions: [".el", ".lisp"]
- extensions: [ ".el", ".lisp" ]
top: ""
mid: ";; "
bot: ""
- extensions: [".erl"]
- extensions: [ ".erl" ]
top: ""
mid: "% "
bot: ""
- extensions: [".hs", ".sql"]
- extensions: [ ".hs", ".sql" ]
top: ""
mid: "-- "
bot: ""
- extensions: [".html", ".xml", ".vue"]
- extensions: [ ".html", ".xml", ".vue" ]
top: "<!--"
mid: " "
bot: "-->"
- extensions: [".ml", ".mli", ".mll", ".mly"]
- extensions: [ ".ml", ".mli", ".mll", ".mly" ]
top: "(**"
mid: " "
bot: "*)"
2 changes: 1 addition & 1 deletion .github/stale.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ daysUntilStale: 60
daysUntilClose: 7

# Only issues or pull requests with all of these labels are check if stale. Defaults to `[]` (disabled)
onlyLabels: []
onlyLabels: [ ]

# Issues or Pull Requests with these labels will never be considered stale. Set to `[]` to disable
exemptLabels:
Expand Down
24 changes: 20 additions & 4 deletions .github/workflows/engine-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,11 +38,27 @@ jobs:
- name: Checkout Repository
uses: actions/checkout@v2

- name: Setup Java 11
- name: Setup Java 17
uses: actions/setup-java@v1
with:
java-version: 11
java-version: 17

- name: Build with Gradle
run: ./gradlew build # <= -d used to debug if needed
timeout-minutes: 15 # max time allocated (useful if some tests hang)
run: ./gradlew build --no-daemon -x test -x spotlessCheck --parallel --max-workers=8 # <= -d used to debug if needed
timeout-minutes: 5 # max time allocated (useful if some tests hang)

test:
runs-on: ubuntu-latest

steps:
- name: Checkout Repository
uses: actions/checkout@v2

- name: Setup Java 17
uses: actions/setup-java@v1
with:
java-version: 17

- name: Test with Gradle
run: ./gradlew test --no-daemon --parallel --max-workers=8 # <= -d used to debug if needed
timeout-minutes: 20 # max time allocated (useful if some tests hang)
4 changes: 2 additions & 2 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,10 +35,10 @@ jobs:
- name: Checkout Repository
uses: actions/checkout@v2

- name: Setup Java 11
- name: Setup Java 17
uses: actions/setup-java@v1
with:
java-version: 11
java-version: 17

# - name: Run gradle build
# uses: eskatos/gradle-command-action@v1
Expand Down
18 changes: 17 additions & 1 deletion .github/workflows/repository.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ on:
- main

jobs:
lint:
license:
runs-on: ubuntu-latest

steps:
Expand All @@ -39,3 +39,19 @@ jobs:
uses: ./.github/actions/addlicense-action
env:
OPTIONS: "-s -c infinitic.io -f .license-header -config .addlicense.yml -check"

linter:
runs-on: ubuntu-latest

steps:
- name: Checkout Repository
uses: actions/checkout@v2

- name: Setup Java 17
uses: actions/setup-java@v1
with:
java-version: 17

- name: Check lint with Gradle Spotless
run: ./gradlew spotlessCheck --no-daemon --parallel --max-workers=8 # <= -d used to debug if needed
timeout-minutes: 5 # max time allocated (useful if some tests hang)
10 changes: 7 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,15 @@ Infinitic is still in active development. Subscribe [here](https://infinitic.sub

## What is it?

Infinitic is a framework based on [Apache Pulsar](https://pulsar.apache.org/) that considerably eases building asynchronous distributed apps.
Infinitic is a framework based on [Apache Pulsar](https://pulsar.apache.org/) that considerably eases building
asynchronous distributed apps.

Many issues arise when we build and scale a distributed system - issues we don’t have in a single-process one. Infinitic provides simple but powerful libraries that let developers build distributed applications as if they were run on an infallible single-process system. It does this on top of Pulsar to benefit from its scalability and reliability.
Many issues arise when we build and scale a distributed system - issues we don’t have in a single-process one. Infinitic
provides simple but powerful libraries that let developers build distributed applications as if they were run on an
infallible single-process system. It does this on top of Pulsar to benefit from its scalability and reliability.

Infinitic is very good at orchestrating workflows, ie. at managing the execution of tasks on distributed servers according to any complex scenario. Moreover, Infinitic ensures that a failure somewhere will never break your workflows.
Infinitic is very good at orchestrating workflows, ie. at managing the execution of tasks on distributed servers
according to any complex scenario. Moreover, Infinitic ensures that a failure somewhere will never break your workflows.

At last, Infinitic lets us monitor everything occurring inside your app through dashboards.

Expand Down
12 changes: 10 additions & 2 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -32,16 +32,24 @@ buildscript {
plugins {
id(Plugins.Kotlin.id) version Plugins.Kotlin.version
id(Plugins.Serialization.id) version Plugins.Serialization.version apply false
id(Plugins.Ktfmt.id) version Plugins.Ktfmt.version apply true
id(Plugins.TestLogger.id) version Plugins.TestLogger.version apply true
id(Plugins.Spotless.id) version Plugins.Spotless.version apply true
}

// code quality
spotless {
kotlin { ktfmt() }
kotlinGradle { ktfmt() }
}

kotlin { jvmToolchain(17) }

repositories { mavenCentral() }

subprojects {
apply(plugin = Plugins.Kotlin.id)
apply(plugin = Plugins.Serialization.id)
apply(plugin = Plugins.Ktfmt.id)
apply(plugin = Plugins.Spotless.id)
apply(plugin = Plugins.TestLogger.id)

group = Libs.org
Expand Down
31 changes: 12 additions & 19 deletions buildSrc/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,32 +1,25 @@
/**
* "Commons Clause" License Condition v1.0
*
* The Software is provided to you by the Licensor under the License, as defined
* below, subject to the following condition.
* The Software is provided to you by the Licensor under the License, as defined below, subject to
* the following condition.
*
* Without limiting other conditions in the License, the grant of rights under the
* License will not include, and the License does not grant to you, the right to
* Sell the Software.
* Without limiting other conditions in the License, the grant of rights under the License will not
* include, and the License does not grant to you, the right to Sell the Software.
*
* For purposes of the foregoing, “Sell” means practicing any or all of the rights
* granted to you under the License to provide to third parties, for a fee or
* other consideration (including without limitation fees for hosting or
* consulting/ support services related to the Software), a product or service
* whose value derives, entirely or substantially, from the functionality of the
* Software. Any license notice or attribution required by the License must also
* include this Commons Clause License Condition notice.
* For purposes of the foregoing, “Sell” means practicing any or all of the rights granted to you
* under the License to provide to third parties, for a fee or other consideration (including
* without limitation fees for hosting or consulting/ support services related to the Software), a
* product or service whose value derives, entirely or substantially, from the functionality of the
* Software. Any license notice or attribution required by the License must also include this
* Commons Clause License Condition notice.
*
* Software: Infinitic
*
* License: MIT License (https://opensource.org/licenses/MIT)
*
* Licensor: infinitic.io
*/
repositories { mavenCentral() }

repositories {
mavenCentral()
}

plugins {
`kotlin-dsl`
}
plugins { `kotlin-dsl` }
2 changes: 1 addition & 1 deletion buildSrc/src/main/kotlin/Ci.kt
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ object Ci {

// this is the version used for building snapshots
// .GITHUB_RUN_NUMBER-snapshot will be appended
const val base = "0.11.6"
const val base = "0.11.7"

private val githubRunNumber = System.getenv("GITHUB_RUN_NUMBER")

Expand Down
24 changes: 12 additions & 12 deletions buildSrc/src/main/kotlin/Libs.kt
Original file line number Diff line number Diff line change
Expand Up @@ -29,53 +29,53 @@ object Libs {
}

object Coroutines {
private const val version = "1.7.1"
private const val version = "1.7.3"
const val core = "org.jetbrains.kotlinx:kotlinx-coroutines-core:$version"
const val jdk8 = "org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:$version"
}

object Caffeine {
const val caffeine = "com.github.ben-manes.caffeine:caffeine:3.1.6"
const val caffeine = "com.github.ben-manes.caffeine:caffeine:3.1.8"
}

object Serialization {
const val json = "org.jetbrains.kotlinx:kotlinx-serialization-json:1.5.1"
const val json = "org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.0"
}

object JsonPath {
const val jayway = "com.jayway.jsonpath:json-path:2.8.0"
}

object Jackson {
private const val version = "2.15.2"
private const val version = "2.15.3"
const val core = "com.fasterxml.jackson.core:jackson-core:$version"
const val databind = "com.fasterxml.jackson.core:jackson-databind:$version"
const val kotlin = "com.fasterxml.jackson.module:jackson-module-kotlin:$version"
const val jsr310 = "com.fasterxml.jackson.datatype:jackson-datatype-jsr310:$version"
}

object Kotest {
private const val version = "5.6.2"
private const val version = "5.7.2"
const val property = "io.kotest:kotest-property-jvm:$version"
const val junit5 = "io.kotest:kotest-runner-junit5-jvm:$version"
}

object Mockk {
const val mockk = "io.mockk:mockk:1.13.5"
const val mockk = "io.mockk:mockk:1.13.8"
}

object Avro4k {
const val core = "com.github.avro-kotlin.avro4k:avro4k-core:1.7.0"
const val core = "com.github.avro-kotlin.avro4k:avro4k-core:1.10.0"
}

object Hoplite {
private const val version = "2.7.4"
private const val version = "2.7.5"
const val core = "com.sksamuel.hoplite:hoplite-core:$version"
const val yaml = "com.sksamuel.hoplite:hoplite-yaml:$version"
}

object Pulsar {
private const val version = "2.11.1"
private const val version = "3.1.0"
const val client = "org.apache.pulsar:pulsar-client:$version"
const val clientAdmin = "org.apache.pulsar:pulsar-client-admin:$version"
const val functions = "org.apache.pulsar:pulsar-functions-api:$version"
Expand All @@ -84,15 +84,15 @@ object Libs {
}

object Kweb {
const val core = "io.kweb:kweb-core:1.4.0"
const val core = "io.kweb:kweb-core:1.4.8"
}

object EasyRandom {
const val core = "org.jeasy:easy-random-core:5.0.0"
}

object Slf4j {
private const val version = "2.0.7"
private const val version = "2.0.9"
const val simple = "org.slf4j:slf4j-simple:$version"
const val api = "org.slf4j:slf4j-api:$version"
}
Expand All @@ -102,6 +102,6 @@ object Libs {
}

object Compress {
const val commons = "org.apache.commons:commons-compress:1.23.0"
const val commons = "org.apache.commons:commons-compress:1.24.0"
}
}
14 changes: 7 additions & 7 deletions buildSrc/src/main/kotlin/Plugins.kt
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
*
* Licensor: infinitic.io
*/
const val kotlinVersion = "1.8.10"
const val kotlinVersion = "1.9.20"

object Plugins {
object Kotlin {
Expand All @@ -33,13 +33,13 @@ object Plugins {
const val version = kotlinVersion
}

object Ktfmt {
const val id = "com.ncorti.ktfmt.gradle"
const val version = "0.12.0"
}

object TestLogger {
const val id = "com.adarshr.test-logger"
const val version = "3.2.0"
const val version = "4.0.0"
}

object Spotless {
const val id = "com.diffplug.spotless"
const val version = "6.22.0"
}
}
Binary file modified gradle/wrapper/gradle-wrapper.jar
Binary file not shown.
Loading

0 comments on commit 7471689

Please sign in to comment.