From c4b2e42f9f77bcd96b49ec3931e80080d55c6337 Mon Sep 17 00:00:00 2001 From: Fabian Barney Date: Mon, 1 Jun 2026 01:14:31 +0200 Subject: [PATCH] Prepare #193 v0.6.1 release --- .github/workflows/release.yml | 61 +++++++++++++++++++------------- CHANGELOG.md | 16 +++++++++ README.md | 64 +++++++++++++++++----------------- cli/pom.xml | 2 +- core/pom.xml | 2 +- gradle-plugin/build.gradle.kts | 2 +- gradle-plugin/pom.xml | 2 +- maven-plugin/pom.xml | 2 +- pom.xml | 2 +- 9 files changed, 90 insertions(+), 63 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d6a17ec..45239af 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -56,6 +56,40 @@ jobs: -Dcentral.skipPublishing=true -pl .,cli,maven-plugin -am deploy + - name: Create GitHub release draft + env: + GH_TOKEN: ${{ github.token }} + shell: bash + run: | + version="${GITHUB_REF_NAME#v}" + awk -v version="${version}" ' + $1 == "##" && $2 == version { + found = 1 + } + found { + if ($1 == "##" && $2 != version) { + exit + } + print + } + END { + if (!found) { + exit 1 + } + } + ' CHANGELOG.md > release-notes.md + test -s release-notes.md + if gh release view "${GITHUB_REF_NAME}" >/dev/null 2>&1; then + is_draft="$(gh release view "${GITHUB_REF_NAME}" --json isDraft --jq .isDraft)" + if [ "${is_draft}" != "true" ]; then + echo "GitHub release ${GITHUB_REF_NAME} already exists and is not a draft." >&2 + exit 1 + fi + gh release edit "${GITHUB_REF_NAME}" --title "${GITHUB_REF_NAME}" --notes-file release-notes.md --draft + else + gh release create "${GITHUB_REF_NAME}" --verify-tag --draft --title "${GITHUB_REF_NAME}" --notes-file release-notes.md + fi + - name: Publish Maven artifacts env: MAVEN_CENTRAL_TOKEN_USERNAME: ${{ secrets.MAVEN_CENTRAL_TOKEN_USERNAME }} @@ -90,34 +124,11 @@ jobs: working-directory: gradle-plugin run: ./gradlew publishPlugins -Pgradle.publish.key="${GRADLE_PUBLISH_KEY}" -Pgradle.publish.secret="${GRADLE_PUBLISH_SECRET}" - - name: Create GitHub release + - name: Publish GitHub release env: GH_TOKEN: ${{ github.token }} shell: bash - run: | - version="${GITHUB_REF_NAME#v}" - awk -v version="${version}" ' - $1 == "##" && $2 == version { - found = 1 - } - found { - if ($1 == "##" && $2 != version) { - exit - } - print - } - END { - if (!found) { - exit 1 - } - } - ' CHANGELOG.md > release-notes.md - test -s release-notes.md - if gh release view "${GITHUB_REF_NAME}" >/dev/null 2>&1; then - gh release edit "${GITHUB_REF_NAME}" --title "${GITHUB_REF_NAME}" --notes-file release-notes.md - else - gh release create "${GITHUB_REF_NAME}" --title "${GITHUB_REF_NAME}" --notes-file release-notes.md - fi + run: gh release edit "${GITHUB_REF_NAME}" --draft=false --latest - name: Clean up imported GPG home if: always() diff --git a/CHANGELOG.md b/CHANGELOG.md index 7362cfa..ea67301 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,22 @@ ## Unreleased +## 0.6.1 - 2026-06-01 + +### Fixed + +- Stopped lambda-body decision nodes from inflating the enclosing source method's complexity and ignored javac synthetic lambda coverage methods during attribution. +- Treated ambiguous same-line overload coverage collisions as unavailable instead of assigning coverage to the wrong source method. + +### Changed + +- Documented the current anonymous-class scope explicitly: anonymous-class methods are not reported as first-class rows and their body complexity is not folded into the enclosing method. +- Expanded CI with granular NullAway and SpotBugs gates across modules, plus release-preflight cache priming for SpotBugs. + +### Dependencies + +- Updated compatible Java test and analysis tooling while keeping the JUnit version aligned with current CI compatibility. + ## 0.6.0 - 2026-05-24 ### Added diff --git a/README.md b/README.md index 06375e5..f7170b4 100644 --- a/README.md +++ b/README.md @@ -131,7 +131,7 @@ mvn -B -pl cli -am -DskipTests package From the project root you want to analyze: ```bash -java -jar cli/target/crap-java-cli-0.6.0.jar +java -jar cli/target/crap-java-cli-0.6.1.jar ``` ## CLI @@ -163,27 +163,27 @@ Value-taking long options may also be written with inline assignment, such as Examples: ```bash -java -jar cli/target/crap-java-cli-0.6.0.jar --help -java -jar cli/target/crap-java-cli-0.6.0.jar -java -jar cli/target/crap-java-cli-0.6.0.jar --changed -java -jar cli/target/crap-java-cli-0.6.0.jar --build-tool gradle -java -jar cli/target/crap-java-cli-0.6.0.jar --build-tool=maven -java -jar cli/target/crap-java-cli-0.6.0.jar --format json -java -jar cli/target/crap-java-cli-0.6.0.jar --format none --junit-report target/crap-java/TEST-crap-java.xml -java -jar cli/target/crap-java-cli-0.6.0.jar --format json --output target/crap-java/report.json -java -jar cli/target/crap-java-cli-0.6.0.jar --failures-only=false --format json -java -jar cli/target/crap-java-cli-0.6.0.jar --omit-redundancy=false --format json -java -jar cli/target/crap-java-cli-0.6.0.jar --agent -java -jar cli/target/crap-java-cli-0.6.0.jar --agent --format junit --output target/crap-java/TEST-crap-java-primary.xml -java -jar cli/target/crap-java-cli-0.6.0.jar --junit-report target/crap-java/TEST-crap-java.xml -java -jar cli/target/crap-java-cli-0.6.0.jar --threshold 6 -java -jar cli/target/crap-java-cli-0.6.0.jar --threshold=6 -java -jar cli/target/crap-java-cli-0.6.0.jar --exclude 'module-a/**' --exclude-class '.*MapperImpl$' -java -jar cli/target/crap-java-cli-0.6.0.jar --exclude='module-a/**' --exclude-class='.*MapperImpl$' -java -jar cli/target/crap-java-cli-0.6.0.jar --source-root src/java --source-root src/main/java17 -java -jar cli/target/crap-java-cli-0.6.0.jar --build-tool maven module-a/src/main/java/demo/Sample.java -java -jar cli/target/crap-java-cli-0.6.0.jar src/main/java/demo/Sample.java -java -jar cli/target/crap-java-cli-0.6.0.jar module-a module-b +java -jar cli/target/crap-java-cli-0.6.1.jar --help +java -jar cli/target/crap-java-cli-0.6.1.jar +java -jar cli/target/crap-java-cli-0.6.1.jar --changed +java -jar cli/target/crap-java-cli-0.6.1.jar --build-tool gradle +java -jar cli/target/crap-java-cli-0.6.1.jar --build-tool=maven +java -jar cli/target/crap-java-cli-0.6.1.jar --format json +java -jar cli/target/crap-java-cli-0.6.1.jar --format none --junit-report target/crap-java/TEST-crap-java.xml +java -jar cli/target/crap-java-cli-0.6.1.jar --format json --output target/crap-java/report.json +java -jar cli/target/crap-java-cli-0.6.1.jar --failures-only=false --format json +java -jar cli/target/crap-java-cli-0.6.1.jar --omit-redundancy=false --format json +java -jar cli/target/crap-java-cli-0.6.1.jar --agent +java -jar cli/target/crap-java-cli-0.6.1.jar --agent --format junit --output target/crap-java/TEST-crap-java-primary.xml +java -jar cli/target/crap-java-cli-0.6.1.jar --junit-report target/crap-java/TEST-crap-java.xml +java -jar cli/target/crap-java-cli-0.6.1.jar --threshold 6 +java -jar cli/target/crap-java-cli-0.6.1.jar --threshold=6 +java -jar cli/target/crap-java-cli-0.6.1.jar --exclude 'module-a/**' --exclude-class '.*MapperImpl$' +java -jar cli/target/crap-java-cli-0.6.1.jar --exclude='module-a/**' --exclude-class='.*MapperImpl$' +java -jar cli/target/crap-java-cli-0.6.1.jar --source-root src/java --source-root src/main/java17 +java -jar cli/target/crap-java-cli-0.6.1.jar --build-tool maven module-a/src/main/java/demo/Sample.java +java -jar cli/target/crap-java-cli-0.6.1.jar src/main/java/demo/Sample.java +java -jar cli/target/crap-java-cli-0.6.1.jar module-a module-b ``` The CLI writes only the requested primary report format to stdout unless @@ -244,12 +244,12 @@ rely on properties. ## Distribution -The current `0.6.0` release ships through Maven Central, with the Gradle Plugin Portal as the primary Gradle plugin channel: +The current `0.6.1` release ships through Maven Central, with the Gradle Plugin Portal as the primary Gradle plugin channel: -- `media.barney:crap-java-core:0.6.0` -- `media.barney:crap-java-cli:0.6.0` -- `media.barney:crap-java-maven-plugin:0.6.0` -- Gradle plugin id `media.barney.crap-java` version `0.6.0` +- `media.barney:crap-java-core:0.6.1` +- `media.barney:crap-java-cli:0.6.1` +- `media.barney:crap-java-maven-plugin:0.6.1` +- Gradle plugin id `media.barney.crap-java` version `0.6.1` ### Gradle Plugin Portal @@ -257,7 +257,7 @@ Apply the plugin in `build.gradle(.kts)`: ```kotlin plugins { - id("media.barney.crap-java") version "0.6.0" + id("media.barney.crap-java") version "0.6.1" } ``` @@ -313,14 +313,14 @@ Then apply the same plugin id in `build.gradle(.kts)`: ```kotlin plugins { - id("media.barney.crap-java") version "0.6.0" + id("media.barney.crap-java") version "0.6.1" } ``` The marker publication lives at -`media.barney.crap-java:media.barney.crap-java.gradle.plugin:0.6.0` and +`media.barney.crap-java:media.barney.crap-java.gradle.plugin:0.6.1` and resolves to the implementation artifact -`media.barney:crap-java-gradle-plugin:0.6.0`. +`media.barney:crap-java-gradle-plugin:0.6.1`. ### Maven Central @@ -351,7 +351,7 @@ Add the plugin: media.barney crap-java-maven-plugin - 0.6.0 + 0.6.1 diff --git a/cli/pom.xml b/cli/pom.xml index 5c792e8..1aef110 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -6,7 +6,7 @@ media.barney crap-java-parent - 0.6.0 + 0.6.1 crap-java-cli diff --git a/core/pom.xml b/core/pom.xml index 928e6df..d3d9097 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -6,7 +6,7 @@ media.barney crap-java-parent - 0.6.0 + 0.6.1 crap-java-core diff --git a/gradle-plugin/build.gradle.kts b/gradle-plugin/build.gradle.kts index 99d03b3..9e2d397 100644 --- a/gradle-plugin/build.gradle.kts +++ b/gradle-plugin/build.gradle.kts @@ -21,7 +21,7 @@ plugins { } group = "media.barney" -version = "0.6.0" +version = "0.6.1" repositories { mavenCentral() diff --git a/gradle-plugin/pom.xml b/gradle-plugin/pom.xml index ce287dc..8e07f6a 100644 --- a/gradle-plugin/pom.xml +++ b/gradle-plugin/pom.xml @@ -6,7 +6,7 @@ media.barney crap-java-parent - 0.6.0 + 0.6.1 pom diff --git a/maven-plugin/pom.xml b/maven-plugin/pom.xml index 84f4371..999ecd9 100644 --- a/maven-plugin/pom.xml +++ b/maven-plugin/pom.xml @@ -6,7 +6,7 @@ media.barney crap-java-parent - 0.6.0 + 0.6.1 maven-plugin diff --git a/pom.xml b/pom.xml index 90a6258..7ef1f6a 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ media.barney crap-java-parent - 0.6.0 + 0.6.1 pom crap-java Parent