+100 On Mon, Jan 18, 2016 at 10:35 AM, <[email protected]> wrote:
> Hi all, > > Please find below a proposal for a new parent POM for Jenkins Plugins. > > Motivation > > The main driver to propose a revision of the parent plugin POM is to > decouple this artifact from the Jenkins Core: > > - > > Simplifying the mechanism to build and test a plugin against different > core versions. > - > > Decoupling build-related aspects, such as static analysis tools, JRE > signatures, etc. from the baseline core versions, as they are totally > independent concerns, reducing the need to include otherwise common > configuration in each plugin POM just because we want to support and older > baseline. > > > One use case that would greatly benefit from this change is for example, > jenkins#1530 <https://github.com/jenkinsci/jenkins/pull/1530>, where it > is necessary to propose API changes in core and matching plugin usages. The > current plugins/pom.xml does not work if you mvn deploy a SNAPSHOT > revision. Plugin Compatibility Testing can also benefit from this change. > > Approach > > As stated above the approach is based in making the plugin parent POM > independent of the main Jenkins core project, and performing the following > actions: > > - > > Make the Jenkins Core version to use configurable via a property, so > that a simple mvn -Djenkins.version=xxxx hpi:run is enough to compile > and run a plugin with a different core version. > - > > Make the Jenkins Test Harness version to use also configurable (the > default being the same Jenkins core version), for those cases that may need > it, such as copyartifact#76 > <https://github.com/jenkinsci/copyartifact-plugin/pull/76>. > - > > Reduce the number of Maven plugin pinned versions to those really used. > - > > Reduce the number of number of elements (versions, etc) overridable > via properties to those that have a specific reason, setting the values to > those intended to be used. There’s no reason to make everything overridable > as the parent pom evolution is now independent of the baseline Jenkins Core > versions. > > > Other aspects included: > > - > > Default configuration for findbugs, including the possibility of > automatically activating exclusions, and a property to define if findbug > errors should break the build (default true). > - > > JRE signature verification configured to the Java level defined for > the build (using a property as well). > - > > Regarding releases: > - > > Launching javadoc:javadoc in the prepare phase, in order to avoid > the inconvenience “stricter” Java 8 javadoc breaking builds in the > release > phase. > - > > Skipping tests in the release phase, cutting release build times > for plugins with a great number of tests. > - > > General cleanup. > > > Ok, show me the code > > The current proposal is being pushed to > https://github.com/andresrc/plugin-pom. It is not deployed to any > repository yet, so in order to test it a local install is required. The > artifactId is intentionally changed to avoid confusion. JIRA issue > [JENKINS-32493] <https://issues.jenkins-ci.org/browse/JENKINS-32493> has > been filed. > > Some plugins have been used to verify the current proposal, including: > > - > > Branch-API: https://github.com/jenkinsci/branch-api-plugin/pull/25 > - > > Copyartifact: https://github.com/jenkinsci/copyartifact-plugin/pull/78 > - > > Workflow: https://github.com/jenkinsci/workflow-plugin/pull/303 > - > > Script Security: > https://github.com/jenkinsci/script-security-plugin/pull/36 > - > > Support Core: https://github.com/jenkinsci/support-core-plugin/pull/53 > > > There is also an update on the Maven archetype at > https://github.com/jenkinsci/maven-hpi-plugin/pull/27. > > Next Steps > > After collecting feedback from the community and if there’s certain > consensus about going forward the next steps would be: > > - > > Create a repository for the artifact in jenkinsci. > - > > Decide the final artifact maven coordinates. > - > > Perform a release. > - > > Update the documentation (wiki, etc.) > - > > Upgrade some plugins to use the new POM in order to drive adoption. > - > > Upgrade to PCT to support it. > > > Thanks! > > -- > 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 on the web visit > https://groups.google.com/d/msgid/jenkinsci-dev/a0668ee9-908d-42c1-9b18-a98751869572%40googlegroups.com > <https://groups.google.com/d/msgid/jenkinsci-dev/a0668ee9-908d-42c1-9b18-a98751869572%40googlegroups.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > -- Robert Sandell *Software Engineer* *CloudBees Inc.* -- 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 on the web visit https://groups.google.com/d/msgid/jenkinsci-dev/CALzHZS2EAbk6%2BjW9bCQ2ow1RtFKdEaz%3DU0-YP9sHWn3etunraw%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
