From 5186372f70791c7fd3b6b9b7e3a5a850806c1704 Mon Sep 17 00:00:00 2001 From: Jurgen Hildebrand Date: Mon, 1 Jun 2026 09:13:17 +0200 Subject: [PATCH 1/5] Add plugin-publish metadata for validate-only --- build.gradle | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/build.gradle b/build.gradle index f7490dd..b48bbf1 100644 --- a/build.gradle +++ b/build.gradle @@ -1,5 +1,6 @@ plugins { id 'java-gradle-plugin' + id 'com.gradle.plugin-publish' version '2.1.1' id 'maven-publish' id 'signing' id 'org.owasp.dependencycheck' version '10.0.3' @@ -21,12 +22,16 @@ dependencies { } gradlePlugin { + website = 'https://github.com/jurgenei/gradle-python-plugin' + vcsUrl = 'https://github.com/jurgenei/gradle-python-plugin.git' + plugins { pythonRunner { id = 'name.jurgenei.gradle.python' implementationClass = 'name.jurgenei.gradle.python.PythonRunnerPlugin' displayName = 'Python Runner Plugin' description = 'Run Python scripts with per-project virtual environment and requirements caching.' + tags = ['python', 'virtualenv', 'automation', 'script-runner'] } } } From 26184048648be883fbcb262693f3beef642cccc2 Mon Sep 17 00:00:00 2001 From: Jurgen Hildebrand Date: Tue, 2 Jun 2026 10:37:45 +0200 Subject: [PATCH 2/5] docs: refresh plugin portal badge and link --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 8132270..076b8cd 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,7 @@ ![Conformance](https://img.shields.io/badge/Conformance-Check--All%20Passing-brightgreen) +[![Plugin Portal](https://img.shields.io/gradle-plugin-portal/v/name.jurgenei.gradle.python?label=Plugin%20Portal)](https://plugins.gradle.org/plugin/name.jurgenei.gradle.python) [![Test](https://github.com/jurgenei/gradle-python-plugin/actions/workflows/test.yml/badge.svg)](https://github.com/jurgenei/gradle-python-plugin/actions/workflows/test.yml) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) @@ -19,6 +20,7 @@ Run Python scripts from Gradle with isolated virtual environments and optional d - Plugin ID: `name.jurgenei.gradle.python` - Java package: `name.jurgenei.gradle.python` - Registered task: `PythonRunnerTask` +- Plugin Portal page: https://plugins.gradle.org/plugin/name.jurgenei.gradle.python ## Requirements From 79d57599f73747cc84740e0c18c06383bd59365d Mon Sep 17 00:00:00 2001 From: Jurgen Hildebrand Date: Tue, 2 Jun 2026 12:12:39 +0200 Subject: [PATCH 3/5] Avoid mavenLocal publication coordinate collision --- build.gradle | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index b48bbf1..cddd81c 100644 --- a/build.gradle +++ b/build.gradle @@ -9,7 +9,7 @@ plugins { } group = 'name.jurgenei.gradle' -version = '0.1.0' +version = '0.1.1' repositories { mavenCentral() @@ -40,6 +40,7 @@ publishing { publications { mavenJava(MavenPublication) { from components.java + artifactId = 'gradle-python-plugin-impl' pom { name = 'Python Plugin' From f0fe386aa135353225b468cf600831d647803421 Mon Sep 17 00:00:00 2001 From: Jurgen Hildebrand Date: Tue, 2 Jun 2026 15:18:38 +0200 Subject: [PATCH 4/5] Add JaCoCo coverage workflow aligned with gradle-antlr-plugin --- build.gradle | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/build.gradle b/build.gradle index eb6cdf9..28a35c3 100644 --- a/build.gradle +++ b/build.gradle @@ -1,6 +1,7 @@ plugins { id 'java-gradle-plugin' id 'com.gradle.plugin-publish' version '2.1.1' + id 'jacoco' id 'maven-publish' id 'signing' id 'org.owasp.dependencycheck' version '10.0.3' @@ -177,3 +178,48 @@ tasks.named('check') { dependsOn tasks.named('jacocoTestCoverageVerification') } +jacoco { + toolVersion = '0.8.12' +} + +tasks.named('test') { + finalizedBy tasks.named('jacocoTestReport') +} + +tasks.named('jacocoTestReport') { + dependsOn tasks.named('test') + classDirectories.setFrom(files(sourceSets.main.output.classesDirs)) + sourceDirectories.setFrom(files(sourceSets.main.allSource.srcDirs)) + reports { + xml.required = true + html.required = true + csv.required = false + } +} + +tasks.named('jacocoTestCoverageVerification') { + dependsOn tasks.named('jacocoTestReport') + classDirectories.setFrom(files(sourceSets.main.output.classesDirs)) + sourceDirectories.setFrom(files(sourceSets.main.allSource.srcDirs)) + violationRules { + rule { + element = 'BUNDLE' + limit { + counter = 'LINE' + value = 'COVEREDRATIO' + minimum = 0.20 + } + } + } +} + +tasks.register('coverage') { + group = 'verification' + description = 'Runs tests, generates JaCoCo report, and verifies minimum coverage threshold.' + dependsOn tasks.named('jacocoTestCoverageVerification') +} + +tasks.named('check') { + dependsOn tasks.named('jacocoTestCoverageVerification') +} + From 72160667557ca723f76c5b34b2bdea6cd8ccf8fe Mon Sep 17 00:00:00 2001 From: Jurgen Hildebrand Date: Tue, 2 Jun 2026 15:50:51 +0200 Subject: [PATCH 5/5] Fix duplicate coverage task registration in build script --- build.gradle | 40 ---------------------------------------- 1 file changed, 40 deletions(-) diff --git a/build.gradle b/build.gradle index 28a35c3..d30197a 100644 --- a/build.gradle +++ b/build.gradle @@ -141,46 +141,6 @@ jacoco { toolVersion = '0.8.12' } -tasks.named('jacocoTestReport') { - dependsOn tasks.named('test') - classDirectories.setFrom(sourceSets.main.output.classesDirs) - sourceDirectories.setFrom(sourceSets.main.allSource.srcDirs) - reports { - xml.required = true - html.required = true - csv.required = false - } -} - -tasks.named('jacocoTestCoverageVerification') { - dependsOn tasks.named('jacocoTestReport') - classDirectories.setFrom(sourceSets.main.output.classesDirs) - sourceDirectories.setFrom(sourceSets.main.allSource.srcDirs) - violationRules { - rule { - element = 'BUNDLE' - limit { - counter = 'LINE' - value = 'COVEREDRATIO' - minimum = 0.0 - } - } - } -} - -tasks.register('coverage') { - group = 'verification' - description = 'Runs tests, generates JaCoCo report, and verifies minimum coverage threshold.' - dependsOn tasks.named('jacocoTestCoverageVerification') -} - -tasks.named('check') { - dependsOn tasks.named('jacocoTestCoverageVerification') -} - -jacoco { - toolVersion = '0.8.12' -} tasks.named('test') { finalizedBy tasks.named('jacocoTestReport')