From 4b4f778490a9ddd20ce2a946d9ac47b7aa76a069 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Sun, 16 Mar 2025 17:29:06 -0700 Subject: [PATCH 01/14] Version 1.0.0 --- README.md | 4 ++-- pom.xml | 2 +- src/bld/java/net/thauvin/erik/JokeApiBuild.java | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index a4e6631..1d5a1f4 100644 --- a/README.md +++ b/README.md @@ -98,7 +98,7 @@ To use with [bld](https://rife2.com/bld), include the following dependency in yo repositories = List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS_LEGACY); scope(compile) - .include(dependency("net.thauvin.erik", "jokeapi", "1.0.0-SNAPSHOT")); + .include(dependency("net.thauvin.erik", "jokeapi", "1.0.0")); ``` Be sure to use the [bld Kotlin extension](https://github.com/rife2/bld-kotlin) in your project. @@ -112,7 +112,7 @@ repositories { } dependencies { - implementation("net.thauvin.erik:jokeapi:1.0.0-SNAPSHOT") + implementation("net.thauvin.erik:jokeapi:1.0.0") } ``` diff --git a/pom.xml b/pom.xml index 2a9d9e6..52e318e 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ 4.0.0 net.thauvin.erik jokeapi - 1.0.0-SNAPSHOT + 1.0.0 jokeapi Retrieve jokes from Sv443's JokeAPI https://github.com/ethauvin/jokeapi diff --git a/src/bld/java/net/thauvin/erik/JokeApiBuild.java b/src/bld/java/net/thauvin/erik/JokeApiBuild.java index be69f63..1d01225 100644 --- a/src/bld/java/net/thauvin/erik/JokeApiBuild.java +++ b/src/bld/java/net/thauvin/erik/JokeApiBuild.java @@ -60,7 +60,7 @@ public class JokeApiBuild extends Project { public JokeApiBuild() { pkg = "net.thauvin.erik"; name = "jokeapi"; - version = version(1, 0, 0, "SNAPSHOT"); + version = version(1, 0, 0); javaRelease = 11; downloadSources = true; From f16d54fd5327275c5927e3baccf4c5c4ffb4246a Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Sun, 16 Mar 2025 20:43:54 -0700 Subject: [PATCH 02/14] Fix yaml example --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 1d5a1f4..0539e27 100644 --- a/README.md +++ b/README.md @@ -127,7 +127,7 @@ For example for YAML: var jokes = getRawJokes(format = Format.YAML, idRange = IdRange(22)) println(jokes.data) ``` -``` + ```yaml error: false category: "Programming" @@ -143,8 +143,8 @@ flags: id: 22 safe: true lang: "en" - ``` + - View more [examples](https://github.com/ethauvin/jokeapi/blob/master/src/test/kotlin/net/thauvin/erik/jokeapi/GetRawJokesTest.kt#L46)... ## Extending From e211159757dfacf6a87629801921188ef8950278 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Tue, 18 Mar 2025 04:24:15 -0700 Subject: [PATCH 03/14] Add Junit Platform Launcher dependency --- src/bld/java/net/thauvin/erik/JokeApiBuild.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/bld/java/net/thauvin/erik/JokeApiBuild.java b/src/bld/java/net/thauvin/erik/JokeApiBuild.java index 1d01225..dfb9478 100644 --- a/src/bld/java/net/thauvin/erik/JokeApiBuild.java +++ b/src/bld/java/net/thauvin/erik/JokeApiBuild.java @@ -76,6 +76,7 @@ public class JokeApiBuild extends Project { .include(dependency("org.jetbrains.kotlin", "kotlin-test-junit5", kotlin)) .include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 12, 1))) .include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 12, 1))) + .include(dependency("org.junit.platform", "junit-platform-launcher", version(1, 12, 1))) .include(dependency("com.willowtreeapps.assertk", "assertk-jvm", version(0, 28, 1))); publishOperation() From d39542478fc23314b37a6d4a04bc1925ac917324 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Tue, 18 Mar 2025 23:51:16 -0700 Subject: [PATCH 04/14] JDK 24 --- .github/workflows/bld.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/bld.yml b/.github/workflows/bld.yml index 08a73b4..36e3f2b 100644 --- a/.github/workflows/bld.yml +++ b/.github/workflows/bld.yml @@ -13,7 +13,7 @@ jobs: strategy: matrix: - java-version: [17, 21, 23] + java-version: [17, 21, 24] kotlin-version: [1.9.25, 2.1.10] steps: From 7ba1b0ecf69ef05936bb08e6eacd368e7bb347d9 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Thu, 20 Mar 2025 08:53:06 -0700 Subject: [PATCH 05/14] Bump Kotlin to version 2.1.20 --- .github/workflows/bld.yml | 2 +- README.md | 2 +- src/bld/java/net/thauvin/erik/JokeApiBuild.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/bld.yml b/.github/workflows/bld.yml index 36e3f2b..64fbb4d 100644 --- a/.github/workflows/bld.yml +++ b/.github/workflows/bld.yml @@ -14,7 +14,7 @@ jobs: strategy: matrix: java-version: [17, 21, 24] - kotlin-version: [1.9.25, 2.1.10] + kotlin-version: [1.9.25, 2.1.20] steps: - name: Checkout source repository diff --git a/README.md b/README.md index 0539e27..bb86972 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ [![License (3-Clause BSD)](https://img.shields.io/badge/license-BSD%203--Clause-blue.svg?style=flat-square)](https://opensource.org/licenses/BSD-3-Clause) -[![Kotlin](https://img.shields.io/badge/kotlin-2.1.10-7f52ff)](https://kotlinlang.org/) +[![Kotlin](https://img.shields.io/badge/kotlin-2.1.20-7f52ff)](https://kotlinlang.org/) [![bld](https://img.shields.io/badge/2.2.1-FA9052?label=bld&labelColor=2392FF)](https://rife2.com/bld) [![Release](https://img.shields.io/github/release/ethauvin/jokeapi.svg)](https://github.com/ethauvin/jokeapi/releases/latest) [![Maven Central](https://img.shields.io/maven-central/v/net.thauvin.erik/jokeapi?color=blue)](https://central.sonatype.com/artifact/net.thauvin.erik/jokeapi) diff --git a/src/bld/java/net/thauvin/erik/JokeApiBuild.java b/src/bld/java/net/thauvin/erik/JokeApiBuild.java index dfb9478..5500301 100644 --- a/src/bld/java/net/thauvin/erik/JokeApiBuild.java +++ b/src/bld/java/net/thauvin/erik/JokeApiBuild.java @@ -67,7 +67,7 @@ public class JokeApiBuild extends Project { autoDownloadPurge = true; repositories = List.of(MAVEN_LOCAL, MAVEN_CENTRAL); - final var kotlin = version(2, 1, 10); + final var kotlin = version(2, 1, 20); scope(compile) .include(dependency("org.jetbrains.kotlin", "kotlin-stdlib", kotlin)) .include(dependency("org.json", "json", "20250107")) From b2163c7ee7af7ac43e00e9618b0ef06c30a20f64 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Thu, 20 Mar 2025 08:53:29 -0700 Subject: [PATCH 06/14] 1.0.1-SNAPSHOT --- src/bld/java/net/thauvin/erik/JokeApiBuild.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bld/java/net/thauvin/erik/JokeApiBuild.java b/src/bld/java/net/thauvin/erik/JokeApiBuild.java index 5500301..b2b0054 100644 --- a/src/bld/java/net/thauvin/erik/JokeApiBuild.java +++ b/src/bld/java/net/thauvin/erik/JokeApiBuild.java @@ -60,7 +60,7 @@ public class JokeApiBuild extends Project { public JokeApiBuild() { pkg = "net.thauvin.erik"; name = "jokeapi"; - version = version(1, 0, 0); + version = version(1, 0, 1, "SNAPSHOT"); javaRelease = 11; downloadSources = true; From 40568463dd98f8bc67c74003b241b245ec9797db Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Thu, 20 Mar 2025 09:19:03 -0700 Subject: [PATCH 07/14] Add Kotlin compile options for JDK 24 --- src/bld/java/net/thauvin/erik/JokeApiBuild.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/bld/java/net/thauvin/erik/JokeApiBuild.java b/src/bld/java/net/thauvin/erik/JokeApiBuild.java index b2b0054..ac5db7c 100644 --- a/src/bld/java/net/thauvin/erik/JokeApiBuild.java +++ b/src/bld/java/net/thauvin/erik/JokeApiBuild.java @@ -39,6 +39,7 @@ import rife.bld.extension.DokkaOperation; import rife.bld.extension.JacocoReportOperation; import rife.bld.extension.dokka.LoggingLevel; import rife.bld.extension.dokka.OutputFormat; +import rife.bld.extension.kotlin.CompileOptions; import rife.bld.operations.exceptions.ExitStatusException; import rife.bld.publish.PomBuilder; import rife.bld.publish.PublishDeveloper; @@ -121,8 +122,11 @@ public class JokeApiBuild extends Project { @BuildCommand(summary = "Compiles the Kotlin project") @Override public void compile() throws Exception { + final var options = new CompileOptions(); + options.jvmOptions().add("--enable-native-access=ALL-UNNAMED"); new CompileKotlinOperation() .fromProject(this) + .compileOptions(options) .execute(); } From f737077b1db190d7af2b9a85000adeaf1934030f Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Thu, 20 Mar 2025 09:19:14 -0700 Subject: [PATCH 08/14] Update root POM --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 52e318e..e480d48 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ 4.0.0 net.thauvin.erik jokeapi - 1.0.0 + 1.0.1-SNAPSHOT jokeapi Retrieve jokes from Sv443's JokeAPI https://github.com/ethauvin/jokeapi @@ -18,7 +18,7 @@ org.jetbrains.kotlin kotlin-stdlib - 2.1.10 + 2.1.20 compile From 7df1c20e821bd45f9bd8a12ae9c2dc13ae5cc660 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Thu, 20 Mar 2025 09:21:50 -0700 Subject: [PATCH 09/14] Replace deprecated URL(url) with URI(url) --- src/main/kotlin/net/thauvin/erik/jokeapi/JokeUtil.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/kotlin/net/thauvin/erik/jokeapi/JokeUtil.kt b/src/main/kotlin/net/thauvin/erik/jokeapi/JokeUtil.kt index 9bd8ac1..8315010 100644 --- a/src/main/kotlin/net/thauvin/erik/jokeapi/JokeUtil.kt +++ b/src/main/kotlin/net/thauvin/erik/jokeapi/JokeUtil.kt @@ -39,6 +39,7 @@ import net.thauvin.erik.jokeapi.models.* import org.json.JSONObject import java.io.IOException import java.net.HttpURLConnection +import java.net.URI import java.net.URL import java.util.logging.Level @@ -50,7 +51,7 @@ internal fun fetchUrl(url: String, auth: String = ""): JokeResponse { JokeApi.logger.fine(url) } - val connection = URL(url).openConnection() as HttpURLConnection + val connection = URI(url).toURL().openConnection() as HttpURLConnection try { connection.setRequestProperty( "User-Agent", "Mozilla/5.0 (X11; Linux x86_64; rv:130.0) Gecko/20100101 Firefox/130.0" From a2ab48e67ca9a6535ed404ef13c0e6f23d1797cc Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Thu, 20 Mar 2025 20:42:09 -0700 Subject: [PATCH 10/14] Combine Kotlin compile options --- src/bld/java/net/thauvin/erik/JokeApiBuild.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/bld/java/net/thauvin/erik/JokeApiBuild.java b/src/bld/java/net/thauvin/erik/JokeApiBuild.java index ac5db7c..2289949 100644 --- a/src/bld/java/net/thauvin/erik/JokeApiBuild.java +++ b/src/bld/java/net/thauvin/erik/JokeApiBuild.java @@ -122,8 +122,7 @@ public class JokeApiBuild extends Project { @BuildCommand(summary = "Compiles the Kotlin project") @Override public void compile() throws Exception { - final var options = new CompileOptions(); - options.jvmOptions().add("--enable-native-access=ALL-UNNAMED"); + var options = new CompileOptions().jvmOptions("--enable-native-access=ALL-UNNAMED"); new CompileKotlinOperation() .fromProject(this) .compileOptions(options) From 708550ad5cbfa9ad6f2a448b4295a223a3031648 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Wed, 26 Mar 2025 12:19:41 -0700 Subject: [PATCH 11/14] Update to latest snapshot --- lib/bld/bld-wrapper.properties | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/bld/bld-wrapper.properties b/lib/bld/bld-wrapper.properties index 154abb0..fc9463a 100644 --- a/lib/bld/bld-wrapper.properties +++ b/lib/bld/bld-wrapper.properties @@ -1,10 +1,10 @@ bld.downloadExtensionJavadoc=false bld.downloadExtensionSources=true bld.downloadLocation= -bld.extension-detekt=com.uwyn.rife2:bld-detekt:0.9.9 -bld.extension-dokka=com.uwyn.rife2:bld-dokka:1.0.3 -bld.extension-jacoco=com.uwyn.rife2:bld-jacoco-report:0.9.9 -bld.extension-kotlin=com.uwyn.rife2:bld-kotlin:1.0.4 +bld.extension-detekt=com.uwyn.rife2:bld-detekt:0.9.10-SNAPSHOT +bld.extension-dokka=com.uwyn.rife2:bld-dokka:1.0.4-SNAPSHOT +bld.extension-jacoco=com.uwyn.rife2:bld-jacoco-report:0.9.10-SNAPSHOT +bld.extension-kotlin=com.uwyn.rife2:bld-kotlin:1.1.0-SNAPSHOT bld.repositories=MAVEN_LOCAL,MAVEN_CENTRAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES bld.sourceDirectories= bld.version=2.2.1 From af753c7ac3afe09aca11a0b447195349eeb1deba Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Wed, 26 Mar 2025 12:20:03 -0700 Subject: [PATCH 12/14] Add extensions logging --- src/bld/java/net/thauvin/erik/JokeApiBuild.java | 16 ++++++++++++++-- .../kotlin/net/thauvin/erik/jokeapi/JokeUtil.kt | 1 - 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/bld/java/net/thauvin/erik/JokeApiBuild.java b/src/bld/java/net/thauvin/erik/JokeApiBuild.java index 2289949..62b9d9a 100644 --- a/src/bld/java/net/thauvin/erik/JokeApiBuild.java +++ b/src/bld/java/net/thauvin/erik/JokeApiBuild.java @@ -50,6 +50,9 @@ import rife.tools.exceptions.FileUtilsErrorException; import java.io.File; import java.io.IOException; import java.util.List; +import java.util.logging.ConsoleHandler; +import java.util.logging.Level; +import java.util.logging.Logger; import static rife.bld.dependencies.Repository.*; import static rife.bld.dependencies.Scope.compile; @@ -116,16 +119,25 @@ public class JokeApiBuild extends Project { } public static void main(String[] args) { + // Enable detailed logging for the extensions + var level = Level.ALL; + var logger = Logger.getLogger("rife.bld.extension"); + var consoleHandler = new ConsoleHandler(); + + consoleHandler.setLevel(level); + logger.addHandler(consoleHandler); + logger.setLevel(level); + logger.setUseParentHandlers(false); + new JokeApiBuild().start(args); } @BuildCommand(summary = "Compiles the Kotlin project") @Override public void compile() throws Exception { - var options = new CompileOptions().jvmOptions("--enable-native-access=ALL-UNNAMED"); new CompileKotlinOperation() .fromProject(this) - .compileOptions(options) + .compileOptions(new CompileOptions().verbose(true)) .execute(); } diff --git a/src/main/kotlin/net/thauvin/erik/jokeapi/JokeUtil.kt b/src/main/kotlin/net/thauvin/erik/jokeapi/JokeUtil.kt index 8315010..651844c 100644 --- a/src/main/kotlin/net/thauvin/erik/jokeapi/JokeUtil.kt +++ b/src/main/kotlin/net/thauvin/erik/jokeapi/JokeUtil.kt @@ -40,7 +40,6 @@ import org.json.JSONObject import java.io.IOException import java.net.HttpURLConnection import java.net.URI -import java.net.URL import java.util.logging.Level /** From 04e636feb44886f10121a01f1726ef6558df3b5e Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Wed, 26 Mar 2025 12:20:35 -0700 Subject: [PATCH 13/14] Add OS matrix for Ubuntu, Windows and macOS --- .github/workflows/bld.yml | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/.github/workflows/bld.yml b/.github/workflows/bld.yml index 64fbb4d..3b6da13 100644 --- a/.github/workflows/bld.yml +++ b/.github/workflows/bld.yml @@ -1,20 +1,20 @@ name: bld-ci -on: [push, pull_request, workflow_dispatch] +on: [ push, pull_request, workflow_dispatch ] env: COVERAGE_JDK: "21" - COVERAGE_KOTLIN: "2.0.0" - KOTLIN_HOME: /usr/share/kotlinc + COVERAGE_KOTLIN: "2.1.20" jobs: build-bld-project: - runs-on: ubuntu-latest - strategy: matrix: - java-version: [17, 21, 24] - kotlin-version: [1.9.25, 2.1.20] + java-version: [ 17, 21, 24 ] + kotlin-version: [ 1.9.25, 2.0.21, 2.1.20 ] + os: [ ubuntu-latest, windows-latest, macos-latest ] + + runs-on: ${{ matrix.os }} steps: - name: Checkout source repository @@ -39,11 +39,13 @@ jobs: - name: Remove pom.xml if: success() && matrix.java-version == env.COVERAGE_JDK && matrix.kotlin-version == env.COVERAGE_KOTLIN + && matrix.os == 'unbuntu-latest' run: rm -rf pom.xml - name: SonarCloud Scan uses: sonarsource/sonarcloud-github-action@master if: success() && matrix.java-version == env.COVERAGE_JDK && matrix.kotlin-version == env.COVERAGE_KOTLIN + && matrix.os == 'unbuntu-latest' env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} From ad99c4c838f8a5220973b8ed6fb00607d7a575c1 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Wed, 26 Mar 2025 12:27:19 -0700 Subject: [PATCH 14/14] Fix typo --- .github/workflows/bld.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/bld.yml b/.github/workflows/bld.yml index 3b6da13..007e63a 100644 --- a/.github/workflows/bld.yml +++ b/.github/workflows/bld.yml @@ -39,13 +39,13 @@ jobs: - name: Remove pom.xml if: success() && matrix.java-version == env.COVERAGE_JDK && matrix.kotlin-version == env.COVERAGE_KOTLIN - && matrix.os == 'unbuntu-latest' + && matrix.os == 'ubuntu-latest' run: rm -rf pom.xml - name: SonarCloud Scan uses: sonarsource/sonarcloud-github-action@master if: success() && matrix.java-version == env.COVERAGE_JDK && matrix.kotlin-version == env.COVERAGE_KOTLIN - && matrix.os == 'unbuntu-latest' + && matrix.os == 'ubuntu-latest' env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}