+1000 (-Djenkins.version, that single feature worth the change)

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.
>



-- 
Antonio Muñiz
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/CAJc7kzT%2BXpf0ktLYoNmLV5o%2Bq8eJiKaU4e5Feb2Sp8Leiby5hw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to