Hudson CI Packaging and Integration

Registered by James Page on 2010-10-13

Hudson provides a flexible, scalable continuous integration tool-set; As the open-source CI tool of choice for Java developers, Ubuntu needs to support this stack.

Hudson also has use cases outside of Java development (including Python development) through the large number of plugins available for the tool-set.

Blueprint information

Status:
Complete
Approver:
Robbie Williamson
Priority:
High
Drafter:
James Page
Direction:
Approved
Assignee:
James Page
Definition:
Approved
Series goal:
Accepted for natty
Implementation:
Implemented
Milestone target:
milestone icon ubuntu-11.04-beta-1
Started by
Robbie Williamson on 2010-11-09
Completed by
Robbie Williamson on 2011-04-28

Related branches

Sprints

Whiteboard

Update (08/03/2011):
 * Various misc updates to jenkins package in PPA - see http://javacruft.wordpress.com/2011/03/02/jenkins-for-ubuntu-call-for-testing
 * Plugin packaging approach developed (warning: not elegant by any means) - https://wiki.ubuntu.com/ServerTeam/Jenkins/JenkinsPluginPackaging
 * ssh-slaves, bazaar and url-change-trigger plugins packaged.
 * Dependency analysis of ec2-plugin completed

Previous Update:
 * Hudson and Jenkins has now gone separate ways; Hudson is technically the fork as Jenkins is the rename.
 * Split in terms of key supporters: Maven founder has stuck with Oracle, however project founder and majority of community are sticking with Jenkins.
 * Ubuntu packaging will align to Jenkins (polled in ubuntu-users) as this does not have the same trademark issues which would make it hard to get this into Debian longer term.
 * Current status; Jenkins 1.396 package now available in ppa:hudson-ubuntu/testing. This is predominately built from source with the following non-source builds using to produce this build, rather than being used at runtime:
   * txw2 - source build but bundles dependent JAR files.
   * forehead - used way down the dependency chain; no source available but can probably be removed.
   * htmlunit - used for HTML unit testing in some dependencies; currently a binary package needs to be transitioned to build from source.
 * The current Jenkins build does not run the unit tests or the larger integration testing module.
 * The current Jenkins build does not build and include the Maven2,3 plugins
 * Plugin downloads are not currently disabled.

Summary Objectives for Packaging:
 * Base hudson package build from source located in PPA
   * Disabling testing may significantly reduce dependencies.
   * Disable plugin management through the user interface.
   * Input from upstream where dependencies have been forked (-hudson).
 * hudson-slave package (to ease installation of dependencies)
 * hudson-tomcat package to integrate with tomcat.
 * Selected plugins built from source located in PPA
   * bzr plugin
   * uec/ec2 plugin (to be replaced by jcloud plugin when it exists)
   * git plugin
   * ssh slave plugin
   * url monitor plugin
   * launchpad plugin when it exists
   * code coverage (cobertura) plugin

Launchpad Teams:
 * https://launchpad.net/~hudson-ubuntu-users - For users
 * https://launchpad.net/~hudson-ubuntu - For maintainers

Work items for natty-alpha-3:
[james-page] evaluate effort in each packaging approach (build from source, build runtime from source) : DONE
[james-page] setup teams and mailing list for users and maintainers : DONE
Package libembedded-rhino-debugger-java 1.2 (https://hudson.dev.java.net/svn/hudson/trunk/hudson/lib/embedded-rhino-debugger/): DONE
Package libforehead-java 1.0-beta-5 (unable to find source for this project) binary package: DONE
Package libhudson-htmlunit-core-js-java 2.6-hudson-1 (http://github.com/hudson/core-js) binary package: DONE
Package libhudson-htmlunit-java 2.6-hudson-2 (http://github.com/hudson/htmlunit) binary package: DONE
Package libmaven2.1-interceptor-java 1.2 (https://hudson.dev.java.net/svn/hudson/trunk/hudson/extras/maven2.1-interceptor/): DONE
Package libmetainf-services-java 1.1 (http://metainf-services.dev.java.net): DONE
Package libmock-javamail-java 1.7 (https://mock-javamail.dev.java.net/): DONE
Package libaccess-modifier-annotation-java 1.0 (http://github.com/kohsuke/access-modifier/tree/access-modifier-1.0): DONE
Package libakuma-java 1.2 (https://akuma.dev.java.net/): DONE
Package libanimal-sniffer-java 1.2 (http://animal-sniffer.dev.java.net/): DONE
Package libmaven-antrun-extended-plugin-java 1.41 (http://java.net/projects/maven-antrun-extended-plugin): DONE
Package libmaven-stapler-plugin-java (http://stapler.dev.java.net/): DONE
Package libanimal-sniffer-annotation-java 1.0 (http://mojo.codehaus.org/animal-sniffer/animal-sniffer-annotations/): DONE
Package libannotation-indexer-java 1.2 (https://hudson.dev.java.net/svn/hudson/trunk/hudson/lib/annotation-indexer/): DONE
Package libargs4j-java 2.0.16 (http://args4j.dev.java.net): DONE
Package libcommons-jelly-java 1.1 (http://svn.apache.org/viewvc/commons/proper/jelly/tags): DONE
Package libhudson-commons-jelly-java 1.1-hudson-20100305 (https://github.com/hudson/jelly): DONE
Package libcommons-jelly-tags-xml 1.0 (http://svn.apache.org/viewvc/commons/proper/jelly/tags/): DONE
Package libcommons-jelly-tags-fmt 1.0 (http://svn.apache.org/viewvc/commons/proper/jelly/tags/): DONE
Package libcommons-jelly-tags-define 1.0.1-hudson-20071021 (http://github.com/hudson/jelly): DONE
Package libcrypto-util-java 1.0 (https://hudson.dev.java.net/svn/hudson/trunk/hudson/lib/crypto-util/): DONE
Package libembedded_su4j-java 1.1 (http://github.com/kohsuke/embedded_su4j): DONE
Package libgraph-layouter-java 1.0 (https://graph-layouter.dev.java.net/): DONE
Package libguava-java r06 (http://code.google.com/p/guava-libraries) active ITP in debian: DONE
Package libjsr305-java 0.1+svn50 (http://code.google.com/p/jsr-305) active ITP in debian: DONE
Package libjcaptcha-java 1.0-RC6(now 2.0-alpha1) (http://jcaptcha.sourceforge.net/): DONE
Package libkohsuke-jinterop-java 2.0.6-kohsuke-1 (https://github.com/kohsuke/jinterop): DONE
Package libjinterop-proxy 1.1 (https://github.com/kohsuke/jinterop-proxy): DONE
Package libjinterop-wmi-java 1.0 (https://hudson.dev.java.net/svn/hudson/trunk/hudson/extras/jinterop-wmi/): DONE
Package libjstl-java 1.1.0 (https://jstl.dev.java.net/ | http://jakarta.apache.org/taglibs/doc/standard-doc/intro.html): DONE
Package liblibpam4j-java 1.2 (https://libpam4j.dev.java.net/): DONE
Package liblibzfs-java 0.5 (https://zfs.dev.java.net/): DONE
Package liblocalizer-java 1.12 (http://localizer.dev.java.net): DONE
Package libmemory-monitor-java 1.3 (https://hudson.dev.java.net/svn/hudson/trunk/hudson/extras/memory-monitor/): DONE
Package librobust-http-client-java 1.0 (https://robust-http-client.dev.java.net/): DONE
Package libsezpoz-java 1.8 (https://sezpoz.dev.java.net/): DONE
Package libstapler-adjunct-timeline-java 1.2 (http://stapler.dev.java.net): DONE
Package libstapler-java 1.152 (http://stapler.dev.java.net): DONE
Package libmaven-jellydoc-plugin-java (https://maven-jellydoc-plugin.dev.java.net/): DONE
Package libtextile-j-java (now part of mylyn) binary package: DONE
Package libhudson-dom4j-java 1.6.1-hudson-3 (https://github.com/hudson/dom4j): DONE
Package libtask-reactor-java 1.2 (https://hudson.dev.java.net/svn/hudson/trunk/hudson/lib/task-reactor/): DONE
Package libtiger-types-java 1.3 (http://tiger-types.dev.java.net): DONE
Package libtrilead-putty-extension-java 1.0 (https://trilead-putty-extension.dev.java.net/): DONE
Package libhudson-trilead-ssh2-java build212-hudson-6 (https://github.com/hudson/trilead-ssh2) : DONE
Package libtxw2-java 20070624 (https://txw.dev.java.net/): DONE
Package libwindows-remote-command-java 1.0 (https://hudson.dev.java.net/svn/hudson/trunk/hudson/lib/windows-remote-command/): DONE
Package libwinp-java 1.14 (https://winp.dev.java.net/): DONE
Package libbridge-method-annotator-java 1.2 (http://github.com/infradna/bridge-method-injector.git): DONE
Update packaging for libezmorph-java to generate maven artifacts: DONE
Update packaging for libjson-java to generate maven artifacts: DONE
Update packaging for libcommons-jexl-java to generate maven artifacts: DONE
Update packaging for libjhlabs-filters-java to generate maven artifacts: DONE
Update packaging for jmdns to generate maven artifacts: DONE
Update packaging for libjfreechart-java to generate maven artifacts: DONE
Update packaging for libjna-posix-java to generate maven artifacts: DONE
Update packaging for libjcommon-java to generate maven artifacts: DONE
Package libhudson-xstream-java 1.3.1-hudson-8 (https://github.com/hudson/xstream): DONE
Package libhudson-json-java 2.1-rev6 (https://github.com/jenkinsci/json-lib/): DONE
Update packaging for xom to generate maven artifacts: DONE
Update packaging for jettison to generate maven artifacts: DONE
Update packaging for woodstox to generate maven artifacts (not change in Debian for this don't submit): DONE
Update packaging for joda-time to generate maven artifacts: DONE
Update packaging for libspring-securitry-2.0-java to generate maven artifacts: DONE
Update packaging for libspring-ldap-java to generate maven artifacts: DONE
Package libhudson-commons-jexl 1.1-hudson-20090508 (https://github.com/hudson/jexl): DONE
Package libmaven-jetty-plugin 6.1.24 (package overlay on-top of main jetty package in distro): DONE
Package libmaven-hpi-plugin (may do this as binary package as does not ship in Hudson): DONE
Package acegi-security 1.0.7 (http://acegi-security.org): DONE
Package hudson-executable-war: DONE
Package hudson-winstone (http://github.com/jenkinsci/winstone): DONE
Package jenkins 1.396 (http://hudson.dev.java.net) : DONE
Push all new packages to ubuntu-hudson testing PPA: DONE

Work items for ubuntu-11.04-beta-1:
Package jenkins-slave 1.396 : DONE
Package jenkins-tomcat 1.396 : DONE
Develop approach to packaging Hudson plugins: DONE
Package bazaar-1.16 plugin (https://github.com/jenkinsci/bazaar-plugin): DONE
Package ssh-slaves-0.14 plugin (https://github.com/jenkinsci/ssh-slaves-plugin): DONE
Package url-change-trigger-1.2 plugin (hhttps://github.com/jenkinsci/url-change-trigger-plugin): DONE
Package libsubversion-java 1.11 plugin (https://github.com/jenkinsci/subversion-plugin): POSTPONED
Package jenkins-svnkit 1.3.4-hudson-2 (http://github.com/jenkinsci/svnkit): POSTPONED
Package ec2-1.10 plugin (https://github.com/jenkinsci/ec2-plugin): DONE
Package typica (http://code.google.com/p/typica/) <- ec2-plugin: DONE
Package java-xmlbuilder (http://code.google.com/p/java-xmlbuilder/) <- jets3t: DONE
Package git-0.7.3 plugin (https://github.com/jenkinsci/git-plugin): POSTPONED
Package cobertura-1.0 plugin (https://github.com/jenkinsci/cobertura-plugin): POSTPONED

(?)

Work Items