From 1d4495435e6c21f085442621253da34cb6c2c04b Mon Sep 17 00:00:00 2001 From: Oleg Golberg Date: Tue, 5 May 2026 14:13:38 -0400 Subject: [PATCH 1/2] Ignore .kotlin session files buildSrc/build.gradle.kts adds ../shared-build-logic as a Kotlin source dir, so the Kotlin compiler creates buildSrc/.kotlin/sessions/*.salive during the settings phase. Without .kotlin in .gitignore, JGit reports the tree as dirty during Reckon's clean check, so the tag-is-current rebuild branch (Reckoner.java:122) is skipped and a SNAPSHOT falls out instead. That broke the 0.0.17 release with "Task 'publishToSonatype' not found". Generated with Claude Code --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 1b7fa1d..f9f55ad 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ local.properties build out .gradle +.kotlin .idea *.iml From 7ff8de041f30ee5048d8da89712b06f3d23fbeee Mon Sep 17 00:00:00 2001 From: Oleg Golberg Date: Tue, 5 May 2026 14:25:25 -0400 Subject: [PATCH 2/2] Pass -Preckon.stage=final in the release workflow Short-circuits Reckon's clean check: the final-stage branch in Reckoner.reckonTargetVersion returns the target normal directly, before ever reaching the rebuild branch that requires isClean(). Defensive against future tools dropping untracked cache dirs into the tree during the settings phase. Generated with Claude Code --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index eb71239..5d0bcc4 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -18,7 +18,7 @@ jobs: distribution: corretto java-version: 17 - name: Publish - run: ./gradlew publishToSonatype closeAndReleaseSonatypeStagingRepository publishPlugins --stacktrace --no-daemon + run: ./gradlew -Preckon.stage=final publishToSonatype closeAndReleaseSonatypeStagingRepository publishPlugins --stacktrace --no-daemon env: PGP_KEY: ${{ secrets.PGP_KEY }} PGP_PASSWORD: ${{ secrets.PGP_PASSWORD }}