Hi all,

Thanks for your comments.

After some adaptations for the jenkins test harness split and some of the 
comments received I've deployed a first snapshot a there is already a 
plugin CI build done using the experimental POM: 
https://github.com/jenkinsci/branch-api-plugin/pull/25

As stated in the first post, the next steps include:

   - Decide the final artifact maven coordinates: following the criteria 
   used in jenkins-test-harness, we could keep the same groupId / artifactId 
   than before and bump version to 2.0.
   - Create a repository in the jenkinsci GitHub org (by someone with 
   permissions forking the existing one).
      - Adapt the pom to the final SCM coordinates.
   - Perform a release. 
   - Update the documentation: I have already identified the wiki pages to 
   modify.


Thanks,

Andrés

 

On Monday, January 18, 2016 at 10:35:44 AM UTC+1, [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/a21ab9f3-2371-4893-a89e-5fe4cfaa0daf%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to