diff --git a/CHANGELOG.md b/CHANGELOG.md index 42550af..d913bb8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [unreleased] +### Changed + +- Use cthing-projectversion library `ProjectVersion` object for project version + ## [3.0.0] - 2024-04-14 ### Added diff --git a/README.md b/README.md index 561e72e..9fa5820 100644 --- a/README.md +++ b/README.md @@ -94,9 +94,9 @@ This project is released on the [Maven Central repository](https://central.sonat Perform the following steps to create a release. - Commit all changes for the release -- In the `build.gradle.kts` file - - Ensure that `baseVersion` is set to the version for the release. The project follows [semantic versioning](https://semver.org/). - - Set `isSnapshot` to `false` +- In the `build.gradle.kts` file, edit the `ProjectVersion` object + - Set the version for the release. The project follows [semantic versioning](https://semver.org/). + - Set the build type to `BuildType.release` - Commit the changes - Wait until CI builds the release candidate - Run the command `mkrelease xmlwriter ` @@ -109,9 +109,9 @@ Perform the following steps to create a release. - Wait for the new release to be available on Maven Central - In a browser, go to the project on GitHub - Generate a release with the tag `` -- In the build.gradle.kts file - - Increment the `baseVersion` patch number - - Set `isSnapshot` to `true` +- In the build.gradle.kts file, edit the `ProjectVersion` object + - Increment the version patch number + - Set the build type to `BuildType.snapshot` - Update the `CHANGELOG.md` with the changes in the release and prepare for next release changes - Update the `Usage` section in the `README.md` with the latest artifact release version - Commit these changes diff --git a/build.gradle.kts b/build.gradle.kts index 6902676..3b62ee4 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,5 +1,7 @@ import com.github.spotbugs.snom.Confidence import com.github.spotbugs.snom.Effort +import org.cthing.projectversion.BuildType +import org.cthing.projectversion.ProjectVersion import java.text.SimpleDateFormat import java.util.* @@ -18,12 +20,16 @@ plugins { alias(libs.plugins.versions) } -val baseVersion = "3.0.1" -val isSnapshot = true +buildscript { + repositories { + mavenCentral() + } + dependencies { + classpath(libs.cthingProjectVersion) + } +} -val isCIServer = System.getenv("CTHING_CI") != null -val buildNumber = if (isCIServer) System.currentTimeMillis().toString() else "0" -version = if (isSnapshot) "$baseVersion-$buildNumber" else baseVersion +version = ProjectVersion("3.0.1", BuildType.snapshot) group = "org.cthing" description = "A simple yet highly configurable XML writing library." @@ -204,7 +210,8 @@ publishing { } } - val repoUrl = if (isSnapshot) findProperty("cthing.nexus.snapshotsUrl") else findProperty("cthing.nexus.candidatesUrl") + val repoUrl = if ((version as ProjectVersion).isSnapshotBuild) + findProperty("cthing.nexus.snapshotsUrl") else findProperty("cthing.nexus.candidatesUrl") if (repoUrl != null) { repositories { maven { diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 6fd7d43..8bb50d5 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -14,6 +14,7 @@ versions = { id = "com.github.ben-manes.versions", version = "0.51.0" } apiGuardian = "org.apiguardian:apiguardian-api:1.1.2" assertJ = "org.assertj:assertj-core:3.25.3" cthingAnnots = "org.cthing:cthing-annotations:1.0.0" +cthingProjectVersion = "org.cthing:cthing-projectversion:1.0.0" escapers = "org.cthing:escapers:1.0.0" jsr305 = "com.google.code.findbugs:jsr305:3.0.2" junitApi = { module = "org.junit.jupiter:junit-jupiter-api", version.ref = "junit" }