Hello Jenkins Developers! 👋

I am very excited to announce the *Jenkins Gradle Convention Plugin 
<https://github.com/aaravmahajanofficial/jenkins-gradle-convention-plugin>* 
— a Kotlin-first, convention-based Gradle plugin that standardizes and 
simplifies building Jenkins plugins with Gradle. This plugin extends and 
builds upon the well-established gradle-jpi-plugin 
<https://github.com/jenkinsci/gradle-jpi-plugin>, adding conventions, 
opinionated defaults, and integrations that bring Gradle-based Jenkins 
plugins closer to Maven parity (hosting compliance, testing, quality gates) 
with an idiomatic Gradle experience.

This plugin is being developed as part of my Google Summer of Code 2025 
project, in collaboration with the Gradle and Kotlin Foundation. My mentors 
for this project are 
Oleg Nenashev <https://github.com/oleg-nenashev>, Steve Hill 
<https://github.com/sghill> and Rahul Somasunderam 
<https://github.com/rahulsom>.

For more details, checkout Project Proposal Page 
<https://kotlinlang.org/docs/gsoc-2025.html#gradle-convention-plugin-for-developing-jenkins-plugins-easy-to-hard-90-hrs-to-350-hrs>
 
and Gradle Community Project Page 
<https://community.gradle.org/events/gsoc/2025/jenkins-plugins-toolchain/>.

PS: A newer “JPI2” variant of the Gradle JPI Plugin was introduced by Rahul 
and Steve, adding support for Gradle 8+ and improved dependency handling.


*Background & Motivation*In late 2022 the community discussed 
<https://groups.google.com/g/jenkinsci-dev/c/lHQAiEepBiw?pli=1> the 
limitations of Gradle for Jenkins plugin hosting and automation. New OSS 
plugins built with Gradle were temporarily blocked until the hosting 
requirements were met, and maintainers called for help to close the gaps in 
the Gradle toolchain. This plugin and the wider GSoC’25 effort are direct 
follow-ups to that discussion.


*What my plugin brings today*
1. First-class support for the Jenkins BOM, plus support for other 
ecosystem BOMs like netty, jetty, jackson, sl4j etc.

2. Industry-standard code-quality tools like Spotless, Spotbugs, PMD, 
Checkstyle, Detekt, JaCoCo/Kover, OWASP deps check etc.; all wired up with 
defaults alligned to Jenkins ecosystem

3. Corrects and enriches the generated plugin manifest (e.g., developers, 
licenses, SCM, plugin metadata), aligning with Maven defaults and Jenkins 
publishing(update-center) expectations

4. Superior DX: version-catalogs, concise DSL to reduce boilerplate

5. Zero-Config Setup: just apply my plugin from Gradle Plugin Portal 
<https://plugins.gradle.org/plugin/io.github.aaravmahajanofficial.jenkins-gradle-convention-plugin/>
 
in your `build.gradle.kts` and you are ready-to-go :)


*Native Gradle Support in Jenkins PCT*One of the major deliverables for 
this project, is enabling Gradle-built plugins to be tested in the same way 
as Maven-built ones.

I have suggested a patch for this in this PR 
<https://github.com/jenkinsci/plugin-compat-tester/pull/795>.


*Next Steps*The Jenkins Gradle Convention Plugin is an important step 
toward making Gradle a first-class citizen in Jenkins plugin development, 
closing long-standing gaps identified in prior community discussions. 
While still under active development as part of GSoC’25, it already 
provides a usable foundation with conventions, BOM mgmt., quality gates, 
and PCT integration.

I invite all the Jenkins community developers to try it out, provide 
feedback, and help refine it into a stable toolchain that benefits all 
Gradle-based Jenkins plugin maintainers.
Contributions, real-world testing, and discussions are very welcome :)

Source code is available in official GitHub repository 
<https://github.com/aaravmahajanofficial/jenkins-gradle-convention-plugin>.

Best wishes,
Aarav Mahajan <https://github.com/aaravmahajanofficial/>


-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion visit 
https://groups.google.com/d/msgid/jenkinsci-dev/f19757be-284a-4e83-81eb-5c8a471f7912n%40googlegroups.com.

Reply via email to