From a516c60974a454af616a55f743defe7e77e082bf Mon Sep 17 00:00:00 2001 From: Tyler Crawford <91682066+tcrawford-figure@users.noreply.github.com> Date: Wed, 16 Oct 2024 16:52:55 -0400 Subject: [PATCH] feat(build,docs): bootstrap build, clarify docs (#157) --- build.gradle.kts | 25 ------------------------- docs/for-major-version.md | 16 +++++++++++++--- settings.gradle.kts | 1 + 3 files changed, 14 insertions(+), 28 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 1b1a985..35f7c7f 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -40,7 +40,6 @@ plugins { } group = "com.figure.gradle.semver" -version = "2.0.1" val testImplementation: Configuration by configurations.getting @@ -68,24 +67,6 @@ dependencies { functionalTestImplementation(libs.testkit.support) } -@DisableCachingByDefault -abstract class WriteVersionToFile : DefaultTask() { - @get:Input - abstract val versionProperty: Property - - init { - group = "build" - description = "Writes the project version to build/semver/semver.properties" - } - - @TaskAction - fun writeVersion() { - val versionFile = File("build/semver/semver.properties") - versionFile.parentFile.mkdirs() - versionFile.writeText("version=${versionProperty.get()}") - } -} - tasks { withType().configureEach { compilerOptions { @@ -112,7 +93,6 @@ tasks { check { dependsOn("detekt") - dependsOn("writeVersionToFile") } withType().configureEach { @@ -135,11 +115,6 @@ tasks { description = "Check all code using configured linters. Runs 'spotlessCheck'" dependsOn("spotlessCheck") } - - // Temporary solution until this plugin can be bootstrapped with itself - register("writeVersionToFile") { - versionProperty = project.version.toString() - } } idea { diff --git a/docs/for-major-version.md b/docs/for-major-version.md index cd00092..435e822 100644 --- a/docs/for-major-version.md +++ b/docs/for-major-version.md @@ -21,10 +21,20 @@ Latest tag: `v2.0.0` Latest v1 tag: `v1.5.9` ???+ note "Important Note" - If no stage or modifier is provided, a default of `auto` used. +If no stage or modifier is provided, a default of `auto` used. | Command | Next Version | |-------------------------------------------------------------------------------------|--------------| | `./gradlew -Psemver.forMajorVersion=1` | 1.5.10 | -| `./gradlew -Psemver.forMajorVersion=1` -Psemver.modifier=minor | 1.6.0 | -| `./gradlew -Psemver.forMajorVersion=1` -Psemver.modifier=minor -Psemver.modifier=rc | 1.6.0-rc.1 | +| `./gradlew -Psemver.forMajorVersion=1 -Psemver.modifier=minor` | 1.6.0 | +| `./gradlew -Psemver.forMajorVersion=1 -Psemver.modifier=minor -Psemver.modifier=rc` | 1.6.0-rc.1 | + +### Suggested Workflow + +1. Identify and checkout the latest tag for the major version you want to + target. +2. Create a new branch for your changes off the tag (e.g. `release/v1.x`). +3. Make your changes and commit them to your new branch. +4. Execute gradle build, publish, and release steps with + `-Psemver.forMajorVersion=` to target the historical + major version line. diff --git a/settings.gradle.kts b/settings.gradle.kts index 8329285..b03216f 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -30,6 +30,7 @@ dependencyResolutionManagement { plugins { id("com.gradle.develocity") version "3.18.1" + id("com.figure.gradle.semver") version "2.0.1" id("org.gradle.toolchains.foojay-resolver-convention") version "0.8.0" }