From 4c15176b34cd6d77ef5b4867c41d2773e3f09e90 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Thu, 15 May 2025 21:47:24 -0700 Subject: [PATCH 1/3] Bump Kotlin to version 2.1.21 --- .github/workflows/bld.yml | 2 +- README.md | 2 +- pom.xml | 10 +++++----- src/bld/java/net/thauvin/erik/MobibotBuild.java | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/bld.yml b/.github/workflows/bld.yml index cf0302b..4e857aa 100644 --- a/.github/workflows/bld.yml +++ b/.github/workflows/bld.yml @@ -25,7 +25,7 @@ jobs: strategy: matrix: java-version: [17, 21, 24] - kotlin-version: [1.9.25, 2.0.20, 2.1.20] + kotlin-version: [1.9.25, 2.0.20, 2.1.21] steps: - name: Checkout source repository diff --git a/README.md b/README.md index d43ba67..119c03e 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # mobibot [![License (3-Clause BSD)](https://img.shields.io/badge/license-BSD%203--Clause-blue.svg)](https://opensource.org/licenses/BSD-3-Clause) -[![Kotlin](https://img.shields.io/badge/kotlin-2.1.20-7f52ff.svg)](https://kotlinlang.org) +[![Kotlin](https://img.shields.io/badge/kotlin-2.1.21-7f52ff.svg)](https://kotlinlang.org) [![bld](https://img.shields.io/badge/2.2.1-FA9052?label=bld&labelColor=2392FF)](https://rife2.com/bld) [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=ethauvin_mobibot&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=ethauvin_mobibot) [![GitHub CI](https://github.com/ethauvin/mobibot/actions/workflows/bld.yml/badge.svg)](https://github.com/ethauvin/mobibot/actions/workflows/bld.yml) diff --git a/pom.xml b/pom.xml index 7d916f4..b515fba 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ 4.0.0 net.thauvin.erik.mobibot mobibot - 0.8.0-rc+20250509073816 + 0.8.0-rc+20250515203523 mobibot @@ -54,25 +54,25 @@ org.jetbrains.kotlin kotlin-stdlib - 2.1.20 + 2.1.21 compile org.jetbrains.kotlin kotlin-stdlib-common - 2.1.20 + 2.1.21 compile org.jetbrains.kotlin kotlin-stdlib-jdk7 - 2.1.20 + 2.1.21 compile org.jetbrains.kotlin kotlin-stdlib-jdk8 - 2.1.20 + 2.1.21 compile diff --git a/src/bld/java/net/thauvin/erik/MobibotBuild.java b/src/bld/java/net/thauvin/erik/MobibotBuild.java index dde5dc8..3792fa1 100644 --- a/src/bld/java/net/thauvin/erik/MobibotBuild.java +++ b/src/bld/java/net/thauvin/erik/MobibotBuild.java @@ -82,7 +82,7 @@ public class MobibotBuild extends Project { SONATYPE_SNAPSHOTS_LEGACY); var log4j = version(2, 24, 3); - var kotlin = version(2, 1, 20); + var kotlin = version(2, 1, 21); var langchain = version(0, 36, 2); scope(compile) // PircBotX From 2e6778a29b5e4ef84c00f6aaf2b8c65e67284dad Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Thu, 15 May 2025 21:48:00 -0700 Subject: [PATCH 2/3] Generate and convert JUnit test reports for xunit-viewer --- lib/bld/bld-wrapper.properties | 1 + .../java/net/thauvin/erik/MobibotBuild.java | 28 ++++++++++++++++--- 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/lib/bld/bld-wrapper.properties b/lib/bld/bld-wrapper.properties index 8b96558..2ff628d 100644 --- a/lib/bld/bld-wrapper.properties +++ b/lib/bld/bld-wrapper.properties @@ -2,6 +2,7 @@ bld.downloadExtensionJavadoc=false bld.downloadExtensionSources=true bld.downloadLocation= bld.extension-detekt=com.uwyn.rife2:bld-detekt:0.9.10-SNAPSHOT +bld.extension-exec=com.uwyn.rife2:bld-exec:1.0.5 bld.extension-gv=com.uwyn.rife2:bld-generated-version:1.0.1 bld.extension-jacoco=com.uwyn.rife2:bld-jacoco-report:0.9.10 bld.extension-kotlin=com.uwyn.rife2:bld-kotlin:1.1.0-SNAPSHOT diff --git a/src/bld/java/net/thauvin/erik/MobibotBuild.java b/src/bld/java/net/thauvin/erik/MobibotBuild.java index 3792fa1..45f0c6b 100644 --- a/src/bld/java/net/thauvin/erik/MobibotBuild.java +++ b/src/bld/java/net/thauvin/erik/MobibotBuild.java @@ -34,10 +34,7 @@ package net.thauvin.erik; import rife.bld.BuildCommand; import rife.bld.Project; import rife.bld.dependencies.Repository; -import rife.bld.extension.CompileKotlinOperation; -import rife.bld.extension.DetektOperation; -import rife.bld.extension.GeneratedVersionOperation; -import rife.bld.extension.JacocoReportOperation; +import rife.bld.extension.*; import rife.bld.operations.exceptions.ExitStatusException; import rife.bld.publish.PomBuilder; import rife.tools.FileUtils; @@ -45,6 +42,8 @@ import rife.tools.exceptions.FileUtilsErrorException; import java.io.File; import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.ArrayList; @@ -240,4 +239,25 @@ public class MobibotBuild extends Project { .extension(".kt") .execute(); } + + @Override + public void test() throws Exception { + var testResultsDir = "build/test-results/test/"; + + var op = testOperation().fromProject(this); + op.testToolOptions().reportsDir(new File(testResultsDir)); + op.execute(); + + var xunitViewer = new File("/usr/bin/xunit-viewer"); + if (xunitViewer.exists() && xunitViewer.canExecute()) { + var reportsDir = "build/reports/tests/test/"; + + Files.createDirectories(Path.of(reportsDir)); + + new ExecOperation() + .fromProject(this) + .command(xunitViewer.getPath(), "-r", testResultsDir, "-o", reportsDir + "index.html") + .execute(); + } + } } From 38cf75f8c9833c88b4df61818638f0ad11e9fc88 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Thu, 15 May 2025 22:06:27 -0700 Subject: [PATCH 3/3] Bump LangChain4J to version 1.0.0 --- pom.xml | 10 +++++----- src/bld/java/net/thauvin/erik/MobibotBuild.java | 4 ++-- .../net/thauvin/erik/mobibot/modules/ChatGpt2.kt | 2 +- .../kotlin/net/thauvin/erik/mobibot/modules/Gemini2.kt | 2 +- .../net/thauvin/erik/mobibot/modules/ChatGpt2Test.kt | 1 + 5 files changed, 10 insertions(+), 9 deletions(-) diff --git a/pom.xml b/pom.xml index b515fba..323022e 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ 4.0.0 net.thauvin.erik.mobibot mobibot - 0.8.0-rc+20250515203523 + 0.8.0-rc+20250515215148 mobibot @@ -114,25 +114,25 @@ dev.langchain4j langchain4j-open-ai - 0.36.2 + 1.0.0 compile dev.langchain4j langchain4j-google-ai-gemini - 0.36.2 + 1.0.0-beta5 compile dev.langchain4j langchain4j-core - 0.36.2 + 1.0.0 compile dev.langchain4j langchain4j - 0.36.2 + 1.0.0 compile diff --git a/src/bld/java/net/thauvin/erik/MobibotBuild.java b/src/bld/java/net/thauvin/erik/MobibotBuild.java index 45f0c6b..0cdac32 100644 --- a/src/bld/java/net/thauvin/erik/MobibotBuild.java +++ b/src/bld/java/net/thauvin/erik/MobibotBuild.java @@ -82,7 +82,7 @@ public class MobibotBuild extends Project { var log4j = version(2, 24, 3); var kotlin = version(2, 1, 21); - var langchain = version(0, 36, 2); + var langchain = version(1, 0, 0); scope(compile) // PircBotX .include(dependency("com.github.pircbotx", "pircbotx", "2.3.1")) @@ -108,7 +108,7 @@ public class MobibotBuild extends Project { .include(dependency("org.apache.logging.log4j", "log4j-slf4j2-impl", log4j)) // LangChain4J .include(dependency("dev.langchain4j", "langchain4j-open-ai", langchain)) - .include(dependency("dev.langchain4j", "langchain4j-google-ai-gemini", langchain)) + .include(dependency("dev.langchain4j", "langchain4j-google-ai-gemini", "1.0.0-beta5")) .include(dependency("dev.langchain4j", "langchain4j-core", langchain)) .include(dependency("dev.langchain4j", "langchain4j", langchain)) // Misc. diff --git a/src/main/kotlin/net/thauvin/erik/mobibot/modules/ChatGpt2.kt b/src/main/kotlin/net/thauvin/erik/mobibot/modules/ChatGpt2.kt index c31cbaf..078eb3c 100644 --- a/src/main/kotlin/net/thauvin/erik/mobibot/modules/ChatGpt2.kt +++ b/src/main/kotlin/net/thauvin/erik/mobibot/modules/ChatGpt2.kt @@ -77,7 +77,7 @@ class ChatGpt2 : AbstractModule() { .maxTokens(maxTokens) .build() - return model.generate(query) + return model.chat(query) } catch (e: Exception) { throw ModuleException( "$CHATGPT_CMD($query): IO", diff --git a/src/main/kotlin/net/thauvin/erik/mobibot/modules/Gemini2.kt b/src/main/kotlin/net/thauvin/erik/mobibot/modules/Gemini2.kt index a690e26..6707b73 100644 --- a/src/main/kotlin/net/thauvin/erik/mobibot/modules/Gemini2.kt +++ b/src/main/kotlin/net/thauvin/erik/mobibot/modules/Gemini2.kt @@ -90,7 +90,7 @@ class Gemini2 : AbstractModule() { .maxOutputTokens(maxTokens) .build() - return gemini.generate(query) + return gemini.chat(query) } catch (e: Exception) { throw ModuleException("$GEMINI_CMD($query): IO", IO_ERROR, e) } diff --git a/src/test/kotlin/net/thauvin/erik/mobibot/modules/ChatGpt2Test.kt b/src/test/kotlin/net/thauvin/erik/mobibot/modules/ChatGpt2Test.kt index 573dfa2..f12e1dd 100644 --- a/src/test/kotlin/net/thauvin/erik/mobibot/modules/ChatGpt2Test.kt +++ b/src/test/kotlin/net/thauvin/erik/mobibot/modules/ChatGpt2Test.kt @@ -71,6 +71,7 @@ class ChatGpt2Test : LocalProperties() { .isInstanceOf(ModuleException::class.java) .hasNoCause() } + private val apiKey = getProperty(ChatGpt2.API_KEY_PROP) @Test