Oleg Nenashev
05/16/2025, 9:38 AMAarav Mahajan
05/16/2025, 1:53 PMAarav Mahajan
05/18/2025, 11:49 PMOleg Nenashev
05/26/2025, 1:05 PMAarav Mahajan
05/31/2025, 10:38 AMrahulsom
06/03/2025, 6:53 PMAarav Mahajan
06/04/2025, 11:57 PMjenkins-gradle-convention-plugin
.
I have sent you the invite for the same.
I spent some time today, figuring out the overall structure for the project. As we are aiming for multi-module architecture, tried to implement that into 4 modules:
1. core/ : will contain the actual Gradle Convention plugin logic (Jenkins-specific DSL + tasks etc.)
2. quality/ : (Spotbugs, Checkstyle etc. would be implemented here)
3. publishing/ : will contain Maven publish + signing etc. tasks
4. integration/ : dedicated test source set for Teat Harness and other tests....
---
Kindly have a look. My thought process, is like the 'core' module would be the baseline that is necessary for all projects, and other modules are optional and independently scalable.Aarav Mahajan
06/08/2025, 12:28 PMAarav Mahajan
06/08/2025, 12:31 PMAarav Mahajan
06/08/2025, 12:34 PMOleg Nenashev
06/10/2025, 6:22 PMsghill
06/10/2025, 6:40 PMOleg Nenashev
06/16/2025, 5:17 PMOleg Nenashev
06/16/2025, 5:17 PMAarav Mahajan
06/16/2025, 6:05 PMrahulsom
06/17/2025, 6:47 PMOleg Nenashev
06/19/2025, 8:18 AMAarav Mahajan
06/24/2025, 1:23 PMcore
module and was about to complete it...
As a takeaway, from the last meeting, I was also trying to implement some unit/integration testing....
I went through the codebase again, I felt that were we on the right track? I felt that my current approach is going towards re-inventing the wheel rather than building upon the current jpi2 plugin...
Can you please go through the current state of the codebase, and offer some guidance on my current approach?
I have till now completed, build-logic, api and core module (ongoing).
For the last 1-2 days, I was pondering how to proceed further, and not able to make much of a progress...
Though we have a meeting scheduled today, we can further discuss this...
Thanks šOleg Nenashev
07/01/2025, 3:09 PMAarav Mahajan
07/01/2025, 3:36 PMAarav Mahajan
07/06/2025, 2:26 PMTask test plugingenerateLicenseInfo FAILEDFAILURE: Build failed with an exception. * What went wrong: Execution failed for task 'test plugingenerateLicenseInfo'.
groovy/util/XmlParser* Try:
Run with --stacktrace option to get the stack trace.
Run with --info or --debug option to get more log output.
Run with --scan to generate a Build Scan (Powered by Develocity).
Get more help at https://help.gradle.org.BUILD FAILED in 27s 30 actionable tasks: 26 executed, 4 up-to-date
Aarav Mahajan
07/06/2025, 2:28 PMAarav Mahajan
07/07/2025, 7:42 PMgooglejavaformat, eclipse()
but the issue persists with them as well..... Also some other dependencies are also similarly...
> Task test pluginspotlessJava FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task 'test pluginspotlessJava'.
> Resolved to an empty result: com.palantir.javaformatpalantir java format2.27.0
* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to generate a Build Scan (Powered by Develocity).
> Get more help at https://help.gradle.org.
BUILD FAILED in 28s
45 actionable tasks: 41 executed, 4 up-to-date
---
Upon digging in and researching about this, found that:
the JPI Plugin artifact transformation system is intercepting the Palantir dependency resolution and redirecting it to an empty configuration, like it applies special handling to dependencies (creating empty JPI variants) and when Spotless tries to use the Palantir/Google formatter, it can't access the actual implementation because it's been transformed...
Debug logs (Trim down version):
2025-07-08T004635.684+0530 [DEBUG] [org.gradle.api.internal.artifacts.ivyservice.modulecache.ResolvedArtifactCaches] Reusing in-memory cache for repo 'MavenRepo' [26c913274550a0b2221f47a0fe2d2358].
2025-07-08T004635.684+0530 [DEBUG] [org.gradle.api.internal.artifacts.ivyservice.modulecache.ResolvedArtifactCaches] Reusing in-memory cache for repo 'Gradle Central Plugin Repository' [2f8748e965ecb2135dad092e9ef808de].
2025-07-08T004635.684+0530 [DEBUG] [org.gradle.api.internal.artifacts.ivyservice.modulecache.ResolvedArtifactCaches] Reusing in-memory cache for repo 'Google' [d4e342018b23d58be902a60e67105aa1].
2025-07-08T004635.685+0530 [DEBUG] [org.gradle.api.internal.artifacts.ivyservice.modulecache.ResolvedArtifactCaches] Reusing in-memory cache for repo 'MavenRepo2' [26c913274550a0b2221f47a0fe2d2358].
2025-07-08T004635.685+0530 [DEBUG] [org.gradle.api.internal.artifacts.ivyservice.modulecache.ResolvedArtifactCaches] Reusing in-memory cache for repo 'jenkins' [7289ca9cee0a5776290616868868d0cb].
2025-07-08T004635.685+0530 [DEBUG] [org.gradle.api.internal.artifacts.ivyservice.resolveengine.graph.builder.DependencyGraphBuilder] Visiting configuration jenkins-gradle-convention-plugintest plugin1.0.0-SNAPSHOT(spotless-511660163).
2025-07-08T004635.689+0530 [DEBUG] [org.gradle.internal.resolve.caching.CrossBuildCachingRuleExecutor] Found result for rule [DefaultConfigurableRule{rule=class org.jenkinsci.gradle.plugins.jpi.JpiVariantRule, ruleParams=[]}] and key com.palantir.javaformatpalantir java format2.27.0 in cache
2025-07-08T004635.689+0530 [DEBUG] [org.gradle.api.internal.artifacts.ivyservice.ivyresolve.RepositoryChainComponentMetaDataResolver] Attempting to resolve component for com.palantir.javaformatpalantir java format2.27.0 using repositories [MavenRepo, Gradle Central Plugin Repository, Google, MavenRepo2, jenkins]
2025-07-08T004635.689+0530 [DEBUG] [org.gradle.api.internal.artifacts.ivyservice.ivyresolve.CachingModuleComponentRepository] Using cached module metadata for module 'com.palantir.javaformatpalantir java format2.27.0' in 'MavenRepo'
2025-07-08T004635.689+0530 [DEBUG] [org.gradle.api.internal.artifacts.ivyservice.ivyresolve.RepositoryChainComponentMetaDataResolver] Using com.palantir.javaformatpalantir java format2.27.0 from Maven repository 'MavenRepo'
2025-07-08T004635.689+0530 [DEBUG] [org.gradle.internal.component.model.LoggingAttributeMatchingExplanationBuilder] Candidate {org.gradle.category=library, org.gradle.libraryelements=jar, org.gradle.status=release, org.gradle.usage=java-api} doesn't have attribute org.gradle.dependency.bundling
2025-07-08T004635.689+0530 [DEBUG] [org.gradle.internal.component.model.LoggingAttributeMatchingExplanationBuilder] Candidate {org.gradle.category=library, org.gradle.libraryelements=jar, org.gradle.status=release, org.gradle.usage=java-api} doesn't have attribute org.gradle.jvm.environment
2025-07-08T004635.689+0530 [DEBUG] [org.gradle.internal.component.model.LoggingAttributeMatchingExplanationBuilder] Candidate {org.gradle.category=library, org.gradle.libraryelements=jar, org.gradle.status=release, org.gradle.usage=java-runtime} doesn't have attribute org.gradle.dependency.bundling
2025-07-08T004635.689+0530 [DEBUG] [org.gradle.internal.component.model.LoggingAttributeMatchingExplanationBuilder] Candidate {org.gradle.category=library, org.gradle.libraryelements=jar, org.gradle.status=release, org.gradle.usage=java-runtime} doesn't have attribute org.gradle.jvm.environment
2025-07-08T004635.689+0530 [DEBUG] [org.gradle.internal.component.model.LoggingAttributeMatchingExplanationBuilder] Candidate {org.gradle.category=documentation, org.gradle.depen
dency.bundling=external, org.gradle.docstype=sources, org.gradle.status=release, org.gradle.usage=java-runtime} attribute org.gradle.category value {org.gradle.category=documentation, org.gradle.status=release} doesn't requested value library
---
Kindly help me with this. I also tried clearing the local cache, build cache, rebuilding everything, but all went in vain.Aarav Mahajan
07/07/2025, 7:49 PMOleg Nenashev
07/08/2025, 6:46 PMAarav Mahajan
07/09/2025, 1:27 AMAarav Mahajan
07/15/2025, 2:05 AMOleg Nenashev
07/15/2025, 6:35 PMOleg Nenashev
07/15/2025, 6:46 PMAarav Mahajan
07/17/2025, 11:59 AM