From 617dd01e1d0e2b19dcd5bf717c3e32c0d7096b46 Mon Sep 17 00:00:00 2001 From: codestech <56263050+Codestech1@users.noreply.github.com> Date: Thu, 27 Aug 2026 12:10:01 +0200 Subject: [PATCH 1/2] feat(module-descriptor|gradle): add module descriptor to the library; bump libraries and Gradle; make all libraries transitive; make SLF4J both a compile-time and runtime dependency --- build.gradle.kts | 13 ++++--------- gradle/libs.versions.toml | 8 ++++---- gradle/wrapper/gradle-wrapper.properties | 2 +- src/main/java/module-info.java | 12 ++++++++++++ 4 files changed, 21 insertions(+), 14 deletions(-) create mode 100644 src/main/java/module-info.java diff --git a/build.gradle.kts b/build.gradle.kts index e9bded2..85e4df8 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,7 +1,7 @@ import java.time.Year plugins { - java + `java-library` alias(libs.plugins.indraLicenserSpotless) alias(libs.plugins.mavenPublish) } @@ -17,18 +17,13 @@ repositories { } dependencies { - compileOnly(libs.jspecify) - compileOnly(libs.jetbrainsAnnotations) - compileOnly(libs.slf4j) + api(libs.slf4j) + compileOnlyApi(libs.jspecify) + compileOnlyApi(libs.jetbrainsAnnotations) testImplementation(libs.junitJupiter) testRuntimeOnly(libs.junitPlatformLauncher) } -configurations { - // Required as we do not use any SLF4J implementation for tests but the logger api is required at runtime - testRuntimeOnly.get().extendsFrom(compileOnly) -} - java { toolchain.languageVersion.set(JavaLanguageVersion.of(javaVersion)) withJavadocJar() diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 13e36b5..1248216 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,9 +1,9 @@ [versions] -jspecify = "1.0.0" +jspecify = "1.0.1" jetbrainsAnnotations = "26.1.0" -slf4j = "2.0.1" -junit = "6.1.1" -indra = "4.0.0" +slf4j = "2.0.18" +junit = "6.1.3" +indra = "4.1.0" mavenPublish = "0.37.0" [libraries] diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index a351597..c42672d 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-9.6.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.7.1-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/src/main/java/module-info.java b/src/main/java/module-info.java new file mode 100644 index 0000000..54953c7 --- /dev/null +++ b/src/main/java/module-info.java @@ -0,0 +1,12 @@ +/** + * A Java library making modular programming easier. + */ +module net.hypejet.modules { + requires transitive org.slf4j; + requires static transitive org.jetbrains.annotations; + requires static transitive org.jspecify; + + exports net.hypejet.modules; + exports net.hypejet.modules.annotation; + exports net.hypejet.modules.exception; +} \ No newline at end of file From 73967b01200fae884b10c5e23ff37d252f7ec90b Mon Sep 17 00:00:00 2001 From: codestech <56263050+Codestech1@users.noreply.github.com> Date: Thu, 27 Aug 2026 12:10:30 +0200 Subject: [PATCH 2/2] chore(gradle): increment the project version to `1.0.5-SNAPSHOT` --- build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index 85e4df8..c86778b 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -9,7 +9,7 @@ plugins { val javaVersion = 25 group = "net.hypejet" -version = releaseTag() ?: "1.0.4-SNAPSHOT" +version = releaseTag() ?: "1.0.5-SNAPSHOT" description = "A Java library making modular programming easier" repositories {