From c5a6e2220c82cc746e14d0f852d199c835216064 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Fri, 29 Sep 2023 15:31:33 -0700 Subject: [PATCH 1/2] Updated all dependencies --- .idea/compiler.xml | 16 ++++++++++ .idea/copyright/BSD_3_Clause.xml | 2 +- .idea/copyright/profiles_settings.xml | 7 +++++ .idea/jarRepositories.xml | 30 +++++++++++++++++++ .idea/kotlinc.xml | 6 ++++ .idea/misc.xml | 8 ++++- .idea/modules.xml | 1 + .idea/modules/examples-java.main.iml | 8 +++++ .idea/scopes/Source_Code.xml | 3 ++ examples/java/gradle/build.gradle | 20 ++++++++----- .../java/com/example/ExampleVersion.java | 2 +- .../java/com/example/GeneratedVersion.java | 2 +- examples/kotlin/build.gradle.kts | 6 ++-- lib/bld/bld-wrapper.properties | 7 ++--- version.properties | 8 ----- 15 files changed, 99 insertions(+), 27 deletions(-) create mode 100644 .idea/compiler.xml create mode 100644 .idea/copyright/profiles_settings.xml create mode 100644 .idea/jarRepositories.xml create mode 100644 .idea/kotlinc.xml create mode 100644 .idea/modules/examples-java.main.iml create mode 100644 .idea/scopes/Source_Code.xml delete mode 100644 version.properties diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..40012f2 --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,16 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/copyright/BSD_3_Clause.xml b/.idea/copyright/BSD_3_Clause.xml index 956f692..025a880 100644 --- a/.idea/copyright/BSD_3_Clause.xml +++ b/.idea/copyright/BSD_3_Clause.xml @@ -1,6 +1,6 @@ - \ No newline at end of file diff --git a/.idea/copyright/profiles_settings.xml b/.idea/copyright/profiles_settings.xml new file mode 100644 index 0000000..dd82085 --- /dev/null +++ b/.idea/copyright/profiles_settings.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml new file mode 100644 index 0000000..4e9cedf --- /dev/null +++ b/.idea/jarRepositories.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/kotlinc.xml b/.idea/kotlinc.xml new file mode 100644 index 0000000..f8467b4 --- /dev/null +++ b/.idea/kotlinc.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index dbc8bc6..32dcb40 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -6,10 +6,16 @@ + + - \ No newline at end of file + diff --git a/.idea/modules.xml b/.idea/modules.xml index 55adcb9..c98f120 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -4,6 +4,7 @@ + \ No newline at end of file diff --git a/.idea/modules/examples-java.main.iml b/.idea/modules/examples-java.main.iml new file mode 100644 index 0000000..807b620 --- /dev/null +++ b/.idea/modules/examples-java.main.iml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/scopes/Source_Code.xml b/.idea/scopes/Source_Code.xml new file mode 100644 index 0000000..1753056 --- /dev/null +++ b/.idea/scopes/Source_Code.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/examples/java/gradle/build.gradle b/examples/java/gradle/build.gradle index a89c79b..6107ccf 100644 --- a/examples/java/gradle/build.gradle +++ b/examples/java/gradle/build.gradle @@ -1,7 +1,7 @@ plugins { id 'java' id 'application' - id 'com.github.ben-manes.versions' version '0.47.0' + id 'com.github.ben-manes.versions' version '0.48.0' } // ./gradlew run @@ -11,11 +11,6 @@ defaultTasks 'run' final def semverProcessor = 'net.thauvin.erik:semver:1.2.1-SNAPSHOT' -sourceCompatibility = 17 -targetCompatibility = 17 - -mainClassName = 'com.example.App' - repositories { mavenLocal() mavenCentral() @@ -27,12 +22,21 @@ dependencies { implementation semverProcessor } -tasks.withType(JavaCompile) { +java { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 +} + +application { + mainClassName = 'com.example.App' +} + +tasks.withType(JavaCompile).configureEach { options.generatedSourceOutputDirectory.set(file("${projectDir}/src/generated/java")) options.compilerArgs += ["-Asemver.project.dir=$projectDir"] } -task runExample(type: JavaExec) { +tasks.register("runExample", JavaExec) { group = 'application' classpath = sourceSets.main.runtimeClasspath mainClass.set('com.example.Example') diff --git a/examples/java/gradle/src/generated/java/com/example/ExampleVersion.java b/examples/java/gradle/src/generated/java/com/example/ExampleVersion.java index 943ebb0..f2140d0 100644 --- a/examples/java/gradle/src/generated/java/com/example/ExampleVersion.java +++ b/examples/java/gradle/src/generated/java/com/example/ExampleVersion.java @@ -9,7 +9,7 @@ import java.util.Date; public final class ExampleVersion { public static final String PROJECT = "Java Example"; - public static final Date BUILDDATE = new Date(1692564205424L); + public static final Date BUILDDATE = new Date(1696019617021L); public static final String VERSION = "8.4.97-alpha+T800"; /** diff --git a/examples/java/gradle/src/generated/java/com/example/GeneratedVersion.java b/examples/java/gradle/src/generated/java/com/example/GeneratedVersion.java index 28b778b..d397944 100644 --- a/examples/java/gradle/src/generated/java/com/example/GeneratedVersion.java +++ b/examples/java/gradle/src/generated/java/com/example/GeneratedVersion.java @@ -14,7 +14,7 @@ import java.util.Date; */ public final class GeneratedVersion { public static final String PROJECT = "Java App"; -public static final Date BUILDDATE = new Date(1692564205452L); +public static final Date BUILDDATE = new Date(1696019617081L); public static final int MAJOR = 11; public static final int MINOR = 11; public static final int PATCH = 20; diff --git a/examples/kotlin/build.gradle.kts b/examples/kotlin/build.gradle.kts index 9c52a47..6a714d9 100644 --- a/examples/kotlin/build.gradle.kts +++ b/examples/kotlin/build.gradle.kts @@ -1,8 +1,8 @@ plugins { id("application") - id("com.github.ben-manes.versions") version "0.47.0" - kotlin("jvm") version "1.9.0" - kotlin("kapt") version "1.9.0" + id("com.github.ben-manes.versions") version "0.48.0" + kotlin("jvm") version "1.9.10" + kotlin("kapt") version "1.9.10" } // ./gradlew diff --git a/lib/bld/bld-wrapper.properties b/lib/bld/bld-wrapper.properties index dd33837..675f518 100644 --- a/lib/bld/bld-wrapper.properties +++ b/lib/bld/bld-wrapper.properties @@ -1,10 +1,9 @@ bld.downloadExtensionJavadoc=false bld.downloadExtensionSources=true -bld.extension-pmd=com.uwyn.rife2:bld-pmd:0.9.2 -bld.extension-jacoco=com.uwyn.rife2:bld-jacoco-report:0.9.0 -bld.extension-testng=com.uwyn.rife2:bld-testng:0.9.1-SNAPSHOT bld.extension-exec=com.uwyn.rife2:bld-exec:0.9.0-SNAPSHOT -bld.repositories=MAVEN_CENTRAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES +bld.extension-jacoco=com.uwyn.rife2:bld-jacoco-report:0.9.1-SNAPSHOT +bld.extension-pmd=com.uwyn.rife2:bld-pmd:0.9.3-SNAPSHOT +bld.repositories=MAVEN_LOCAL,MAVEN_CENTRAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES bld.downloadLocation= bld.sourceDirectories= bld.version=1.7.2 diff --git a/version.properties b/version.properties deleted file mode 100644 index 3966686..0000000 --- a/version.properties +++ /dev/null @@ -1,8 +0,0 @@ -#Generated by the Semver Plugin for Gradle -#Sun May 02 21:54:48 PDT 2021 -version.buildmeta= -version.major=1 -version.minor=2 -version.patch=1 -version.prerelease=SNAPSHOT -version.semver=1.2.1-SNAPSHOT From dc27cb86e5a24e1ec50b0a98b1c4f09086998db6 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Fri, 29 Sep 2023 16:18:50 -0700 Subject: [PATCH 2/2] Cleanup before new release --- .github_changelog_generator | 1 + CHANGELOG.md | 6 +++- README.md | 18 ++++++----- .../net/thauvin/erik/semver/Constants.java | 2 -- .../javax.annotation.processing.Processor | 32 ------------------- .../thauvin/erik/semver/VersionInfoTest.java | 2 +- 6 files changed, 17 insertions(+), 44 deletions(-) create mode 100644 .github_changelog_generator diff --git a/.github_changelog_generator b/.github_changelog_generator new file mode 100644 index 0000000..13dd68d --- /dev/null +++ b/.github_changelog_generator @@ -0,0 +1 @@ +future-release=1.2.1 diff --git a/CHANGELOG.md b/CHANGELOG.md index 41eb07d..bc6224f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,9 +1,13 @@ # Changelog -## [1.2.1](https://github.com/ethauvin/semver/tree/1.2.1) (2021-04-29) +## [1.2.1](https://github.com/ethauvin/semver/tree/1.2.1) (2023-09-29) [Full Changelog](https://github.com/ethauvin/semver/compare/1.2.0...1.2.1) +**Implemented enhancements:** + +- Move from Gradle to bld [\#7](https://github.com/ethauvin/semver/issues/7) + **Fixed bugs:** - NPE with Java 12 and Kotlin 1.3.30 [\#1](https://github.com/ethauvin/semver/issues/1) diff --git a/README.md b/README.md index c13ec3d..0469a21 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,11 @@ -# Semantic Version Annotation Processor +# Semantic Version Annotation Processor [![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) [![Java](https://img.shields.io/badge/java-17%2B-blue)](https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html) -[![bld](https://img.shields.io/badge/1.7.1-FA9052?label=bld&labelColor=2392FF)](https://rife2.com/bld) +[![bld](https://img.shields.io/badge/1.7.2-FA9052?label=bld&labelColor=2392FF)](https://rife2.com/bld) [![release](https://img.shields.io/github/release/ethauvin/semver.svg)](https://github.com/ethauvin/semver/releases/latest) -[![Maven Central](https://maven-badges.herokuapp.com/maven-central/net.thauvin.erik/semver/badge.svg)](https://maven-badges.herokuapp.com/maven-central/net.thauvin.erik/semver) [![Nexus Snapshot](https://img.shields.io/nexus/s/net.thauvin.erik/semver?label=snapshot&server=https%3A%2F%2Foss.sonatype.org%2F)](https://oss.sonatype.org/content/repositories/snapshots/net/thauvin/erik/semver/) +[![Maven Central](https://img.shields.io/maven-central/v/net.thauvin.erik/semver.svg)](https://central.sonatype.com/artifact/net.thauvin.erik/semver) [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=ethauvin_semver&metric=alert_status)](https://sonarcloud.io/dashboard?id=ethauvin_semver) [![GitHub CI](https://github.com/ethauvin/semver/actions/workflows/gradle.yml/badge.svg)](https://github.com/ethauvin/semver/actions/workflows/gradle.yml) @@ -17,6 +17,7 @@ An [annotation processor](https://docs.oracle.com/javase/8/docs/api/javax/annota This processor was inspired by Cédric Beust's [version-processor](https://github.com/cbeust/version-processor) and works well in conjunction with the [__Semantic Version Plugin for Gradle__](https://github.com/ethauvin/semver-gradle). ## Table of Contents + - [Examples](#examples) - [Template](#template) - [Default Template](#default-template) @@ -33,7 +34,7 @@ This processor was inspired by Cédric Beust's [version-processor](https://githu ## Examples -* Using annotation elements: +- Using annotation elements: ```java import net.thauvin.erik.semver.Version; @@ -44,7 +45,7 @@ public class A { } ``` -* Or using a [properties](hhttps://github.com/ethauvin/semver/blob/master/examples/java/version.properties) file: +- Or using a [properties](hhttps://github.com/ethauvin/semver/blob/master/examples/java/version.properties) file: ```java import net.thauvin.erik.semver.Version; @@ -220,8 +221,8 @@ public class ExampleBuild extends Project { } } ``` -Please look at [ExamapleBuild](https://github.com/ethauvin/semver/blob/master/examples/java/bld/src/bld/java/com/example/ExampleBuild.java) in the [examples/java/bld](https://github.com/ethauvin/semver/tree/master/examples/java/bld) directory for a sample. +Please look at [ExampleBuild](https://github.com/ethauvin/semver/blob/master/examples/java/bld/src/bld/java/com/example/ExampleBuild.java) in the [examples/java/bld](https://github.com/ethauvin/semver/tree/master/examples/java/bld) directory for a sample. It also shows how to incorporate the generated code into the `source tree`, more information is also available [here](https://forum.uwyn.com/post/36). ## Gradle @@ -239,7 +240,7 @@ dependencies { compileOnly 'net.thauvin.erik:semver:1.2.1-SNAPSHOT' } -tasks.withType(JavaCompile) { +tasks.withType(JavaCompile).configureEach { options.compilerArgs += [ "-Asemver.project.dir=$projectDir" ] } ``` @@ -255,7 +256,7 @@ Please look at [build.gradle](https://github.com/ethauvin/semver/blob/master/exa In order to also incorporate the generated source code into the `source tree`, add the following to [build.gradle](https://github.com/ethauvin/semver/blob/master/examples/java/build.gradle): ```gradle -tasks.withType(JavaCompile) { +tasks.withType(JavaCompile).configureEach { options.generatedSourceOutputDirectory.set(file("${projectDir}/src/generated/java")) } ``` @@ -276,6 +277,7 @@ open class Main { // ... } ``` + The [Kotlin default template](https://github.com/ethauvin/semver/blob/master/src/main/resources/semver-kt.mustache) implements the same static fields and functions as the [Java template](#default-template). Please look at the [examples/kotlin](https://github.com/ethauvin/semver/tree/master/examples/kotlin) project for a [build.gradle.kts](https://github.com/ethauvin/semver/blob/master/examples/kotlin/build.gradle.kts) sample. diff --git a/src/main/java/net/thauvin/erik/semver/Constants.java b/src/main/java/net/thauvin/erik/semver/Constants.java index 8dbc3d5..a8bc374 100644 --- a/src/main/java/net/thauvin/erik/semver/Constants.java +++ b/src/main/java/net/thauvin/erik/semver/Constants.java @@ -137,13 +137,11 @@ public final class Constants { * The kotlin type. */ public static final String KOTLIN_TYPE = "kt"; - /** * The argument used to specify the project location. */ public static final String SEMVER_PROJECT_DIR_ARG = "semver.project.dir"; - /** * Disables the default constructor. */ diff --git a/src/main/resources/META-INF/services/javax.annotation.processing.Processor b/src/main/resources/META-INF/services/javax.annotation.processing.Processor index 5ae1016..44488e0 100644 --- a/src/main/resources/META-INF/services/javax.annotation.processing.Processor +++ b/src/main/resources/META-INF/services/javax.annotation.processing.Processor @@ -1,33 +1 @@ -# -# javax.annotation.processing.Processor -# -# Copyright (c) 2016-2023, Erik C. Thauvin (erik@thauvin.net) -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# -# Redistributions of source code must retain the above copyright notice, this -# list of conditions and the following disclaimer. -# -# Redistributions in binary form must reproduce the above copyright notice, -# this list of conditions and the following disclaimer in the documentation -# and/or other materials provided with the distribution. -# -# Neither the name of this project nor the names of its contributors may be -# used to endorse or promote products derived from this software without -# specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -# - net.thauvin.erik.semver.VersionProcessor diff --git a/src/test/java/net/thauvin/erik/semver/VersionInfoTest.java b/src/test/java/net/thauvin/erik/semver/VersionInfoTest.java index 0ebbbf5..2abb01a 100644 --- a/src/test/java/net/thauvin/erik/semver/VersionInfoTest.java +++ b/src/test/java/net/thauvin/erik/semver/VersionInfoTest.java @@ -34,7 +34,7 @@ package net.thauvin.erik.semver; import org.junit.jupiter.api.Test; -import java.util.Date; // NOPMD +import java.util.Date; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue;